Visual Basic - Proyecto en Visual Basic 5

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Proyecto en Visual Basic 5

Publicado por Carlos (9 intervenciones) el 24/03/2017 16:59:25
Buenos días

Necesito crear una aplicación donde pueda juntar las hojas de varios libros en un archivo nuevo.
Tenía una macro que hacía ese proceso.
Copíe las líneas de código de esa macro a un proyecto en Visual Basic 5 para que se ejecute presionando un botón.
Lamentablemente me sale un error:
Error 1004. Fallo en el método "ThisWorkbook" del objeto "_Global"
La línea de código que tiene el problema es:
Directorio = ThisWorkbook.Path

Las líneas de código del programa son:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
' Dim Directorio, NombreLibro As String
Dim Directorio As String
Dim ContadorFicheros As String
Dim Unidos As Workbook
Dim K, NumHojas As Integer
Dim Libro As Workbook
 
Private Sub Command1_Click()
 
Directorio = ThisWorkbook.Path
ContadorFicheros = Dir$(Directorio + "\*.*")
 
'Crea el libro que contendrá a todos los demás
Application.SheetsInNewWorkbook = 1
Set Unidos = Application.Workbooks.Add
 
Do While ContadorFicheros <> "" And UCase(ContadorFicheros) <> "UNIR.XLS"
    Workbooks.Open filename:=Directorio & "\" & ContadorFicheros
    Set Libro = Workbooks(ContadorFicheros)
    NumHojas = Libro.Worksheets.Count
    For K = 1 To NumHojas
        Libro.Worksheets(K).Copy after:=Unidos.Worksheets(Unidos.Worksheets.Count)
'       NombreLibro = Replace(Libro.Name, ".xls", "")
'       Unidos.Worksheets(Unidos.Worksheets.Count).Name = NombreLibro & "_" & Libro.Worksheets(K).Name
        Unidos.Worksheets(Unidos.Worksheets.Count).Name = Libro.Worksheets(K).Name
    Next K
    Workbooks(ContadorFicheros).Close
    ContadorFicheros = Dir$
Loop
Unidos.Worksheets(2).Select
With Unidos
    .SaveAs filename:=Directorio & "\" & "unidos.xls"
    .Close
End With
End Sub

Por favor, les agradecería encarecidamente puedan ayudarme. Es un asunto de suma urgencia.
Les adjunto los archivos correspondientes: La Macro y el Proyecto en Visual Basic.

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Proyecto en Visual Basic 5

Publicado por Carlos (9 intervenciones) el 24/03/2017 20:24:49
Hola Andrés.

Gracias por responder.

Respecto a tu indicación ya tengo activada la referencia: Microsoft Excel 12.0 Object Library.

¿abrá otra referencia que debo activar?

Agradezco, de antemano, tu valiosa colaboración.

Atentamente,
Carlos Díaz.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Proyecto en Visual Basic 5

Publicado por Andres Leonardo (1798 intervenciones) el 24/03/2017 20:33:11
Entendi lo que pasa es que estas llamando a l aruta .. .pero esa ruta no es del excel

Si no qu edeberia ser de la app


1
Directorio = App.Path

Ahora deberas abrir uno a uno

lo que vi que si falta es la referencia a la microsoft Scripting runtime
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 119
Ha disminuido 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Proyecto en Visual Basic 5

Publicado por Christian (713 intervenciones) el 26/03/2017 05:17:40
No el app.path es de visual y es donde se ejecuta la aplicación. Tu problema es que el método thisworkbook lo estás usando antes de declarar el objeto.
Acordate como básico al momento de usar automatización tanto de excel como de word.

1: crear el objeto
2: abrir
3: usar
4: cerrar
5: eliminar objeto

Con solo la referencia de excel alcanza scripting lo usas para otra cosa.
Mañana si puedo le hecho un vistazo al código.
Otra muy buena opción es grabar la macro en excel con lo que querés hacer y después es más facil.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 119
Ha disminuido 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Proyecto en Visual Basic 5

Publicado por Christian (713 intervenciones) el 26/03/2017 20:26:29
Te adjunto el proyecto para unir dos excel.
La idea es que en el path desde donde ejecutes la aplicacion haya un archivo union.xls. Despues puse un explorador de archivos para que puedas seleccionar los archivos a procesar.

Espero te sirva la solucion.

Saludos.-
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar