Foros del Web » Soporte técnico » Ofimática »

Problema con macro de Excel

Estas en el tema de Problema con macro de Excel en el foro de Ofimática en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 29/07/2010, 15:49
 
Fecha de Ingreso: julio-2010
Mensajes: 8
Antigüedad: 14 años, 4 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.
  #2 (permalink)  
Antiguo 30/07/2010, 09:01
Avatar de Monimo  
Fecha de Ingreso: noviembre-2007
Ubicación: Mexico Df
Mensajes: 742
Antigüedad: 17 años
Puntos: 69
Respuesta: Problema con macro de Excel

'buscamos el id que queremos
Workbooks(totallibro).Activate
Sheets("CAPACITACION").Select
[A:A].Find(What:=id, LookIn:=xlValues, LookAt:= _
xlPart).Activate


que pasa si el id que buscas no esta en cualquiera de las hojas??? debes incluir una validación de que hacer si no lo encuentra ya q al no encontrarlo no le asigna ningun valor al rango, o celda q se activa y por eso da ese error.
__________________
La verdad es que lo que no quisiera dejar de hacer nunca (a parte de comer) es programar
  #3 (permalink)  
Antiguo 30/07/2010, 18:10
 
Fecha de Ingreso: julio-2010
Mensajes: 8
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Problema con macro de Excel

Muchas gracias Monimo. ¿Me puedes dar un ejemplo de la validacion por favor?
  #4 (permalink)  
Antiguo 02/08/2010, 08:08
Avatar de Monimo  
Fecha de Ingreso: noviembre-2007
Ubicación: Mexico Df
Mensajes: 742
Antigüedad: 17 años
Puntos: 69
Respuesta: Problema con macro de Excel

dim cellfinds as range



buscamos el id que queremos
Workbooks(totallibro).Activate
Sheets("CAPACITACION").Select

set cellfinds =[A:A].Find(What:=id, LookIn:=xlValues, LookAt:= _
xlPart).Activate
if not cellfinds is nothing then

'y ya q haga lo que sigue
end if


se tiene q hacer cada q busque, o sea cada que utilices el "Find" porque si no lo encuenta no habrá celda activa e irás arrastrando una variable "not set" o sea vacía...
__________________
La verdad es que lo que no quisiera dejar de hacer nunca (a parte de comer) es programar

Última edición por Monimo; 02/08/2010 a las 14:31
  #5 (permalink)  
Antiguo 02/08/2010, 16:03
 
Fecha de Ingreso: julio-2010
Mensajes: 8
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Problema con macro de Excel

Ok muchas gracias lo voy a probar.

Etiquetas: excel, macro
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:42.