Hola buenos días, estoy haciendo una macro con el cual traigo los datos de diferentes libros y de ahí extraigo datos, según la hoja que necesito.
mi macro actualmente funciona. indicando directamente el nombre del libro al que quiero hacer referencia.
Set l2 = Workbooks("Bd_Sunny1.xlsm")
pero como trabajo con diferentes archivos y datos me gustaría poner en la celda U1 del libro1 el nombre del archivo al cual quiero hacer referencia, y no estar modificando mi macro a cada momento.
Mi libro1 (L1) es donde esta la macro y L2 es el libro de donde buscare los datos.
trate de hace referencia de esta manera.
nA = l1.Sheets("Contenido").Range("U1").Value (esta escrito en celda el nombre del archivo)
Pero me marca error de no coinciden los tipos y me marca en amarillo:
Set l2 = Workbooks(nA) (aqui he puesto el libro) y nombrado en libro1
Espero me puedan guiar para mejorar esta parte.
este es la estructura de mi macro:
Sub TraerDatosLib()
Dim Ws As Worksheet
Dim l1 As Workbook
'Dim l2 As Worksheet
Dim l2 As Workbook
Dim nA As String ' si debo corregir
'-------
Set l1 = ThisWorkbook
Set h1 = l1.ActiveSheet
Set l2 = Workbooks(nA) 'que referencie el archivo la celda U1 del libro 1
'Set l2 = Workbooks("Bd_SunnyGrand1.xlsm")'cuando pongo el nombre de manera directa
'-- nA libro diferente nombrado en celda U1 y hb nombre de la hoja que buscara en libro2
nA = l1.Sheets("Contenido").Range("U1").Value 'en la celda del libro 1 va el nombre del libro al que hare referencia
hb = l1.Sheets("Contenido").Range("U4").Value
'---
ok = False
For Each Ws In l2.Worksheets
If Ws.Name = (hb) Then
ok = True
Exit For
End If
Next Ws
Hola buenos días, estoy haciendo una macro con el cual traigo los datos de diferentes libros y de ahí extraigo datos, según la hoja que necesito.
mi macro actualmente funciona. indicando directamente el nombre del libro al que quiero hacer referencia.
Set l2 = Workbooks("Bd_Sunny1.xlsm")
pero como trabajo con diferentes archivos y datos me gustaría poner en la celda U1 del libro1 el nombre del archivo al cual quiero hacer referencia, y no estar modificando mi macro a cada momento.
Mi libro1 (L1) es donde esta la macro y L2 es el libro de donde buscare los datos.
trate de hace referencia de esta manera.
nA = l1.Sheets("Contenido").Range("U1").Value (esta escrito en celda el nombre del archivo)
Pero me marca error de no coinciden los tipos y me marca en amarillo:
Set l2 = Workbooks(nA) (aqui he puesto el libro) y nombrado en libro1
Espero me puedan guiar para mejorar esta parte.
este es la estructura de mi macro:
Sub TraerDatosLib()
Dim Ws As Worksheet
Dim l1 As Workbook
'Dim l2 As Worksheet
Dim l2 As Workbook
Dim nA As String ' si debo corregir
'-------
Set l1 = ThisWorkbook
Set h1 = l1.ActiveSheet
Set l2 = Workbooks(nA) 'que referencie el archivo la celda U1 del libro 1
'Set l2 = Workbooks("Bd_SunnyGrand1.xlsm")'cuando pongo el nombre de manera directa
'-- nA libro diferente nombrado en celda U1 y hb nombre de la hoja que buscara en libro2
nA = l1.Sheets("Contenido").Range("U1").Value 'en la celda del libro 1 va el nombre del libro al que hare referencia
hb = l1.Sheets("Contenido").Range("U4").Value
'---
ok = False
For Each Ws In l2.Worksheets
If Ws.Name = (hb) Then
ok = True
Exit For
End If
Next Ws
If ok Then ' si existe
Muchas gracias