none
Macro de Excel-XP que no funcionan en Office-2010 RRS feed

  • Pregunta

  • Hola buenos dias.

    Recientemente he migrado el sistema operativo, de XP a Windows-10. Al mismo tiempo he cambiao Office-XP por Office 2010.  El problema es que algunas macros de Excel no funcionan en Office 2010.

    Esto es un ejemplo de macro que funciona en XP pero no en 2010.  El error se produce en la primera linea y no consigo solucionarlo.  

    ¿Por favor, alguien podria ayudarme? 

               

    ` AVERIGUO  CUANTOS FICHEROS HAY EN LA CARPETA  “ Analysis de Valores”

         Set fs = Application.FileSearch   ‘=> produce error 445  “el objeto no admite esta accion”

             With fs

                       .LookIn = "E:\Archivos Pedro\Analysis de Valores"

                       .Filename = "Analysis-*"

                   If .Execute > 0 Then

                       MsgBox "There were " & .FoundFiles.Count & " file(s) found."

     ' BUCLE PARA ABRIR LOS FICHEROS Y ACTUALIZARLOS

        For I = 1 To .FoundFiles.Count

             Set xl = CreateObject("Excel.Sheet")

                 xl.Application.Workbooks.Open .FoundFiles(I)

                   Range("A1").Select

                   Selection.Copy    

            Windows("Cotizaciones.xls").Activate

                Sheets("Cias_Actualizadas").Select

                  RowIndex = RowIndex + 1

                     Cells(RowIndex, 1).Select

                     ActiveSheet.Paste

    Application.GoTo Reference:=Worksheets("Cias_Actualizadas").Cells(RowIndex, 2)

          If IsError(ActiveCell) Then GoTo CerrarFichero 'No se ha encontrado cotizacion de Cia

     ‘ACTUALIZAR FICHERO Y CERRARLO

         Cotizacion = ActiveCell       

              xl.Application.Workbooks.Open .FoundFiles(I)

                 Range("x11").Select

                    Let ActiveCell = Cotizacion

             ActiveWorkbook.Save

              xl.Application.Workbooks.Open .FoundFiles(I)

                      ActiveWorkbook.Close

                  Next

             Else:   MsgBox "There were NO FILES found."

       End If

       End With

    domingo, 12 de junio de 2016 16:56

Respuestas

  • Debes usar Dir() :

    Dim FilePath 
    Dim Contador as Integer
    Dim StrDir As String

    Contador = 0
    FilePath = "E:\Archivos Pedro\Analysis de Valores"

    StrDir = Dir(FilePath & "\Analysis-*.xl*")
    Do Until str = ""
        ContaDor = Contador + 1
        Set xl = CreateObject("Excel.Sheet")
        xl.Application.Workbooks.Open FilePath & "\" & StrDir

        ' ...

        StrDir = Dir()
    Loop
    if Contador > 0 Then
        MsgBox "There were " & Contador & " file(s) found."
    Else
        MsgBox "There were NO FILES found."
    End If


    Saludos, Javier J

    • Marcado como respuesta Pedro JP martes, 14 de junio de 2016 23:11
    lunes, 13 de junio de 2016 7:01

Todas las respuestas

  • Debes usar Dir() :

    Dim FilePath 
    Dim Contador as Integer
    Dim StrDir As String

    Contador = 0
    FilePath = "E:\Archivos Pedro\Analysis de Valores"

    StrDir = Dir(FilePath & "\Analysis-*.xl*")
    Do Until str = ""
        ContaDor = Contador + 1
        Set xl = CreateObject("Excel.Sheet")
        xl.Application.Workbooks.Open FilePath & "\" & StrDir

        ' ...

        StrDir = Dir()
    Loop
    if Contador > 0 Then
        MsgBox "There were " & Contador & " file(s) found."
    Else
        MsgBox "There were NO FILES found."
    End If


    Saludos, Javier J

    • Marcado como respuesta Pedro JP martes, 14 de junio de 2016 23:11
    lunes, 13 de junio de 2016 7:01
  • Hola Javier, 

    muchas gracias por to ayuda.  Ya he conseguido hacer funcionar el programa.  Tengo todavia un pequeño problema.  Algunos ficheros interrumpen la macro. Dan "error 1004 en tiempo de ejecuciòn" y no se abren hasta que manualmente deshabilito la "Vista Protegida".  ¿ Sabes si se puede incluir en la macro alguna instruccion para deshabilitarla y no se interrumpa el programa?    

    Saludos

    Pedro JP

    martes, 14 de junio de 2016 23:21
  • Puedes controlar ese error creando una lista de ficheros que están en vista protegida y presentándola al finalizar.

    En esta página explican que es la vista protegida y como editar estos archivos:


    Saludos, Javier J

    miércoles, 15 de junio de 2016 6:52
  • Hola Javier,

    Gracias por la sugerencia. Lo intentarè. 

    Saludos, Pedro JP

    miércoles, 15 de junio de 2016 16:25