Reparar macro que busca, encuentra, copia y pega

Hola
No se mucho del tema, pero teníamos una macro que buscaba en la hoja "índice" en la columna "v" la palabra "cerrado" si la encontraba, copiaba el renglón completo en una hoja llamada "contratos cerrados" en el último renglón disponible, por algún motivo le falta texto a la instrucción y no sé cómo reparar la macro, sigue buscando, y al encontrar copia y pega pero solo el primer registro ya no busca los siguientes campos y por lo tanto ya no copia todos los renglones que contienen la palabra "Cerrado" y solo escribe en el mismo renglón ya no avanza
¿Me puede ayudar?
De antemano muchas gracias, dejo el texto que aún queda
Sub Copia_Pega()
sheets("indice").Select
    Range("v2:v1000").Select
    Cells.Find(What:="Cerrado", After:=ActiveCell, LookIn:= _
        xlValues, LookAt:=xlValue, SearchOrder:=xlByRows, SearchDirection:= _
        xlDown, MatchCase:=True, SearchFormat:=False).Activate
        ActiveCell.EntireRow.Copy Destination:=sheets("Contratos cerrados").Range("A

1 Respuesta

Respuesta
1
Dime si necesitas toda la macro para que haga lo que requieres o solo la parte del código para que se repita la misma macro varias veces, si es lo segundo te invito a que presiones F1 en la pantalla del visual y escribas la palabra Do, así encontrarás un ejemplo muy bien explicado de su funcionalidad y lo cual te serviría para lo que necesitas
Hola experto
De antemano muchísimas gracias por responder
Pensé que era el segundo caso y comencé a realizar pruebas con el comando DO pero como no domino el tema se me cicla, aunque ya intente con Do Exit y If con then, siempre que la corro sigue y sigue y sigue, no se como detenerla cuando llegue al último renglón registrado, quise hacerlo yo mismo con tus instrucciones pero no pude
Creo que si necesito toda la macro
De nuevo gracias
Pues si tienes definidas las veces de repetición en luagar de do podrías utilizar For, sin embargo te comento que la manera de controlarlo sería conociendo tus datos, pensaría yo que se debería detener cuando ya encuentre una celda vacía, yo al menos lo controlo regularmente así:
Dim Comprobar, Contador
Comprobar = True: Contador = 0    ' Inicializa variables.
Do    ' Bucle externo.
    Do While Contador < 65000    ' Bucle interno.
        Contador = Contador + 1    ' Incrementa el contador.
        If Range("A" & Contador).Value = 0 Then   ' Si la condición es verdadera.
            Comprobar = False    ' Establece el valor a False.
        Else
        If Range("A" & Contador).Value + 1 = Range("A" & Contador + 1).Value Or Range("A" & Contador + 1).Value = 0 Then
        Else
        Rows(Contador + 1).Select
        Selection.Insert Shift:=xlDown
        Range("A" & Contador + 1).Value = Range("A" & Contador).Value + 1
        Range("B" & Contador + 1).Value = Range("A" & Contador).Value + 2
        End If
            Exit Do    ' Sale del bucle interno.
        End If
    Loop
Loop Until Comprobar = False    ' Sale inmediatamente
End Sub
Esta es una macro para revisar una secuencia y cuando hay un salto lo corrige. Pero te sirve de ejemplo para que veas la funcionalidad de Do
Hola experto
Muchísimas gracias por tu aporte, he observado que la mayoría de los expertos amablemente nos dan la solución a nuestros problemas, lo que es una gran contribución y es lo que casi todos necesitamos de manera urgente para continuar con nuestras tareas.
Pero particularmente te estoy adicionalmente agradecido porque te tomaste el tiempo y la intención de ayudarme a aprender, a generar mis propias respuestas, eso es invaluable y demuestra la nobleza y gran calidad humana en ti.
Con tu ayuda pude resolver mi problema, gracias!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas