29/07/2010, 15:49
|
| | Fecha de Ingreso: julio-2010
Mensajes: 8
Antigüedad: 14 años, 6 meses Puntos: 0 | |
Problema con macro de Excel Hola compañeros, hoy me surgio un gran problema ya que despues de tratar por mucho tiempo mi codigo no funciona. Lo que quiero es pasar informacion a partir de id's entre dos libros de excel. Mi idea es recorrer todos los id's con un do while. El proceso es sencillo, busca el primer id y copia su numero, de ahi copia los datos necesario para despues abrir el otro libro buscar el id que tiene guardado y pegar los datos. Por alguna razon me da error 91 cuando busca el id. Por favor ayudenme que es para mi servicio social y ya no se que hacer. Les pego mi codigo simplificado para que me ayuden.
totallibro = Application.ThisWorkbook.Name
casalibro = Application.GetOpenFilename
Workbooks.Open casalibro
casalibro = Application.ActiveWorkbook.Name
'Nos situamos en la celda con el primer dato
Sheets("CLASES 1").Select
Range("A7").Select
'Hasta que no encuentre una fila vacía...
Do While Not IsEmpty(ActiveCell)
If ActiveCell.Offset(1, 0).Value = "" Then
'puse este exit do para que cuando llegue al espacio en blanco termine
Exit Do
End If
'---------------------------------------------------------------------------------------
'primera hoja
Dim id As String, valor As String, total As String
id = ActiveCell.Text
[A:A].Find(What:=id, LookIn:=xlValues, LookAt:= _
xlPart).Activate
'---------------------------------------------------------------------------------------
Dim clasefor As String, horafor As String
'copia los datos
total = "CLASES - FORMACIÓN HUMANA"
x = hojacasa(total)
clasefor = ActiveCell.Text
'---------------------------------------------------------------------------------------
'segunda hoja
'buscamos el id que queremos
Workbooks(totallibro).Activate
Sheets("CAPACITACION").Select
[A:A].Find(What:=id, LookIn:=xlValues, LookAt:= _
xlPart).Activate
'su fila
Dim fila As String, dato As String
dato = ActiveCell.Address
fila = Mid(dato, InStr(dato, "$") + 3)
'copia los datos
mesclasereli = mesclasereli & fila
Range(mesclasereli).FormulaR1C1 = Val(clasereli) + Val(Range(mesclasereli).Text)
meshorareli = meshorareli & fila
Range(meshorareli).FormulaR1C1 = Val(horareli) + Val(Range(meshorareli).Text)
'---------------------------------------------------------------------------------------
Workbooks(casalibro).Activate
Sheets("CLASES 1").Select
[A:A].Find(What:=id, LookIn:=xlValues, LookAt:= _
xlPart).Activate
x = meses()
'movernos un espacio
ActiveCell.Offset(1, 0).Select
Loop
Workbooks(casalibro).Close
Workbooks(totallibro).Activate
Exit Sub
Espero me puedan ayudar. |