Hola amigos, soy nueva en este foro, mi problema es que me han ayudado a realizar una macro en VBA que es para lo siguiente: tengo 300 hojas en un libro de excel desde la 1 a la 300, y la macro desarrollada es para reunir algunos datos de todos los clientes en una sola hoja, o sea, reunir en una hoja, nombre, zona, Compania, Producto.
Pero cada vez que intento ejecutar esta macro me dice que falta sub o function, yo no entiendo porque me da error, me han dicho que esta bien.
Aclaro que tengo excel 2002 y Windows XP.
La macro es esta si alguien le encuentra algo para que no me funcione le agradezco muchoooo
A lomejor alguine conoce otra forma menos complicada de consolidar los datos en una sola hoja....
Saludos a todos,
Maria Ines
Private iClienteIndex As Integer
Const sHomeSheet = "Sheet1"
Sub ConsolidandoDatos()
Dim iSheetITem As Integer
Dim iActiveSheet As Integer
iActiveSheet = Worksheets(sHomeSheet).Index
iClienteIndex = 0
For iSheetITem = 1 To ActiveWorkbook.Sheets.Count
If iActiveSheet <> iSheetITem Then
iClienteIndex = iClienteIndex + 1
sNombre = ActiveWorkbook.Sheets.Item(iSheetITem).Range("A1").Value
sZona = ActiveWorkbook.Sheets.Item(iSheetITem).Range("B1").Value
sCompania = ActiveWorkbook.Sheets.Item(iSheetITem).Range("C1").Value
sProducto = ActiveWorkbook.Sheets.Item(iSheetITem).Range("D1").Value
Call DatosPorCliente(iSheetITem, sNombre, sZona, sCompania, sProducto)
End If
Next
MsgBox "Datos consolidados!!!"
End Sub
Sub DatosPorCliente(ByVal iActiveSheet As Integer, ByVal sNombre As String,
ByVal sZona As String, ByVal sCompania As String, ByVal sProducto As String)
ActiveWorkbook.Sheets.Item(sHomeSheet).Range("A5").Offset(iClienteIndex,
0).Value = sNombre
ActiveWorkbook.Sheets.Item(sHomeSheet).Range("A5").Offset(iClienteIndex,
1).Value = sZona
ActiveWorkbook.Sheets.Item(sHomeSheet).Range("A5").Offset(iClienteIndex,
2).Value = sCompania
ActiveWorkbook.Sheets.Item(sHomeSheet).Range("A5").Offset(iClienteIndex,
3).Value = sProducto
End Sub