** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - Primera fila, error en tiempo de ejecución
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoPrimera fila, error en tiempo de ejecución

 Responder Responder
Autor
Mensaje Invertir el orden de clasificación
Checolin Ver desplegable
Habitual
Habitual
Avatar

Unido: 29/Octubre/2009
Localización: Mexico
Estado: Sin conexión
Puntos: 100
Enlace directo a este mensaje Tema: Primera fila, error en tiempo de ejecución
    Enviado: 06/Septiembre/2013 a las 23:49
David, buenas tardes, gracias por tu respuesta, concisa y con seso Wink, no necesitaba más.
 
Agradeciendote nuevmente tu ayuda me despido.
 
Les pido de favor si cierran el hilo.
 
Saludos
Cuando Dios nos mande inspiración es mejor que nos encuentre trabajando.
Arriba
sdgm Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 21/Abril/2005
Localización: Guatemala
Estado: Sin conexión
Puntos: 906
Enlace directo a este mensaje Enviado: 06/Septiembre/2013 a las 21:27
Hola, Sergio.
 
¿Y si empiezas el proceso a partir de la fila 2?  Te sugeriría agregar una línea antes de iniciar el ciclo.  Algo como:
 
Range("G2").select
Do Until ActiveCell.Offset(0, -1).Value = ""
 
 
Cordialmente, David
Arriba
Checolin Ver desplegable
Habitual
Habitual
Avatar

Unido: 29/Octubre/2009
Localización: Mexico
Estado: Sin conexión
Puntos: 100
Enlace directo a este mensaje Enviado: 06/Septiembre/2013 a las 19:12

Hola a todos, el día de hoy quiero preguntarles como resolver el siguiente problema que se me presenta al correr un procedimiento, explicaré mi problema.

En una hoja de Excel, en la columna "G" voy buscando un valor en cada celda hacía abajo y en caso de encontrarlo hago una comparación entre valor que se encuentra en la misma fila pero en la columna "C" contra el valor de la celda que está en la fila superior misma columna "C", es decir, si encuentro el valor en la celda G5 comparo el valor de las celdas C5=C4, hecho esto realizo otras acciones. Algo que se me olvidaba mencionar es que los valores de las celdas los almaceno en variables.
 
Pues bien, el problema es que como inicio desde la celda G1 al momento de asignar los valores a las variables cuando ejecuta la línea con la instrucción de que almacene el valor que se encuentra en la celda "C?" se produce un error "1004" en tiempo de ejecución, definido por la aplicación o el objeto y esto debe de ser porque no existe una fila antes de la fila 1, por eso es que puse "C?".
 
El código que estoy utilizando es el siguiente.
 
Public Sub ElimReversalRetiro2()
 
Dim dlbCasilla1 As Double, _
dlbCasilla2 As Double, _
dlbCasilla3 As Double, _
dlbCasilla4 As Double, _
dlbCasilla5 As Double, _
dlbCasilla6 As Double
 
Do Until ActiveCell.Offset(0, -1).Value = ""
 
dlbCasilla1 = ActiveCell.Offset(0, -4).Value
dlbCasilla2 = ActiveCell.Offset(-1, -4).Value
dlbCasilla3 = ActiveCell.Offset(0, 1).Value
dlbCasilla4 = ActiveCell.Offset(-1, 1).Value
dlbCasilla5 = ActiveCell.Offset(1, -4).Value
dlbCasilla6 = ActiveCell.Offset(1, 1).Value
If Borrareverso(ActiveCell.Value) Then
If dlbCasilla1 = dlbCasilla2 And _
dlbCasilla3 = dlbCasilla4 Then
Range(Selection, ActiveCell.Offset(-1, 0)).Select
Selection.EntireRow.Delete
ActiveCell.Offset(-1, 0).Activate
ElseIf dlbCasilla1 = dlbCasilla5 And _
dlbCasilla3 = dlbCasilla6 Then
Range(Selection, ActiveCell.Offset(1, 0)).Select
Selection.EntireRow.Delete
ActiveCell.Offset(-1, 0).Activate
ElseIf dlbCasilla1 <> dlbCasilla2 And _
dlbCasilla3 = dlbCasilla4 Then
ActiveCell.Offset(-1, -4).FormulaR1C1 = (dlbCasilla2 - dlbCasilla1)
Selection.EntireRow.Delete
ActiveCell.Offset(-1, 0).Activate
ElseIf dlbCasilla1 <> dlbCasilla5 And _
dlbCasilla3 = dlbCasilla6 Then
ActiveCell.Offset(1, -4).FormulaR1C1 = (dlbCasilla5 - dlbCasilla1)
Selection.EntireRow.Delete
ActiveCell.Offset(-1, 0).Activate
End If
End If
dlbCasilla1 = 0
dlbCasilla2 = 0
dlbCasilla3 = 0
dlbCasilla4 = 0
dlbCasilla5 = 0
dlbCasilla6 = 0
ActiveCell.Offset(1, 0).Activate
Loop
Range("A1").Select
End Sub
 
Nota: Borrareverso es una función que me ayudó a realizar SDGM, gracias nuevamente.
 
La línea que puse en color rojo es donde se da el error pues como comenté, este valor está fuera de la hoja de Excel.
 
Pido de su ayuda para ver si me indican como puedo controlar esto ya que no sé como hacerlo, las pruebas que estuve haciendo durante el desarrollo fueron en filas intermedias por lo que no tuve el problema.
 
Agradeciendo de antemano su ayuda reciban un saludo.
 
Cuando Dios nos mande inspiración es mejor que nos encuentre trabajando.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable