Copiar y pegar datos en excel

Hola, muy agradecida de antemano por la respuesta que me puedas ofrecer.
Tengo la siguiente macro:
Sub copia_valores()
'
' Macro2 Macro
' Acceso directo: CTRL+j
'
    ActiveCell.Offset(1, 0).Select
    Do While Not IsEmpty(ActiveCell)
        If ActiveCell.Offset(0, -1) = "x" Then
            Selection.Copy
            ActiveCell.Offset(0, 1).Select
            Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                :=False, Transpose:=False
            ActiveCell.Offset(0, -1).Select
        End If
        ActiveCell.Offset(1, 0).Select
    Loop
    Application.CutCopyMode = False
End Sub
Al ejecutar la macro, ubicándome previamente en una celda (de la fila C), copia y pega a valores en la fila DE, siempre y cuando haya una "x" en la fila B.
Lo que necesito es adicionar lo siguiente, (Un Contador),
que la macro, ademas de hacer esta rutina, en la columna E, me lleve la cuenta incrementando de 1 en 1, con la misma condición que utiliza al pegar las fechas a valores en DE, es decir, siempre que en B haya una "x", sume 1 y tengo otra condición pero no se como explicar, más bien expongo el problema que se daría, necesito que sume una sola vez por cada cambio de fecha, porque: que pasa si por error, ¿se ejecuta 2 veces la macro el mismo día? , me aparecería 1+1=2, y si sigo por error, seria 1+1+1=3, entonces, pienso que tambien debería estar validado por la fecha. (Salvo mejor parecer)
lo que pretendo luego, es filtrar datos, utilizando las variables de repeticiones (columna E) y anticuamiento de fechas (debo crear una columna adicional donde reste la fecha de hoy menos la de la columna D).
Debo aclarar que no se casi nada de macros :(, la macro que colgué, me fue brindada muy gentilmente, y me es de muchísima utilidad, pero ahora necesito una modificación, además, es por ello que no se los términos que uds podrían emplear para explicar, mil disculpas si no se entiende, he tratado de hacer lo mejor que he podido para que me puedas ayudar.
SAludos,
Silvia

1 respuesta

Respuesta
' Macro2 Macro
' Acceso directo: CTRL+j
'
dim Contador as integer
Contador = 0
    ActiveCell.Offset(1, 0).Select
    Do While Not IsEmpty(ActiveCell)
        If ActiveCell.Offset(0, -1) = "x" Then
            Selection.Copy
            ActiveCell.Offset(0, 1).Select
            Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                :=False, Transpose:=False
             Contador = Contador + 1
            ActiveCell.Offset(0, -1).Select
        End If
        ActiveCell.Offset(1, 0).Select
    Loop
    Application.CutCopyMode = False
End Sub
El anterior código simplemente tiene la variable que deseabas pero en cuanto al tema de lo de la no repetición no me es muy claro. ¿En qué casos se corre la macro? Dime más info.
Recuerda visitar www.ayconcol.com son expertos en el tema ellos también responden de forma gratuita directamente en la web o por todo-expertos en un pequeño espacio en la página principal, si querés aprender más puedes ingresar en www.ayconcol.com/foro creas usuario y todo y listo! Si deseas ellos también elaboran aplicativos, páginas web y soporte a computadores a un costo muy bajo!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas