Experto: Por favor necesito macro en excel

Experto: Tengo una columna en excel en donde aparece No. Cedula del vendedor y abajo de este No. Aparece las ventas del vendedor (Fecha, Valor vendido). La macro debe copiar para cada venta el No. De Cedula del vendedor, es decir, debe aparecer: No. Cedula, Fecha, Valor Vendido. Cada vez que cambie el No. Cedula (vendedor), la macro debe ir comparando hacia abajo de la columna hasta encontrar una nueva cedula y volver a copiar esta nueva cedula en las ventas realizadas por este nuevo vendedor y así sucesivamente hasta el último vendedor. Gracias
Tenemos n vendedores
No. Cedula:
93121 Luis Buendia
                Fecha Venta Valor Vendido
                xxxxxxxxxxxxx zzzzzzzzzz
                 xxxxxxxxxxxxx zzzzzzzzzzz
                xxxxxxxxxxxxx zzzzzzzzzz
                 xxxxxxxxxxxxx zzzzzzzzzzz
93122 Pedro Perez
                Fecha Venta Valor Vendido
                xxxxxxxxxxxxx zzzzzzzzzz
                 xxxxxxxxxxxxx zzzzzzzzzzz
Después de correr la macro debe quedar:
93121 Luis Buendia
                Fecha Venta Valor Vendido
93121 xxxxxxxxxxxxx zzzzzzzzzz
93121 xxxxxxxxxxxxx zzzzzzzzzzz
93121 xxxxxxxxxxxxx zzzzzzzzzz
93121 xxxxxxxxxxxxx zzzzzzzzzzz
93122 Pedro Perez
                Fecha Venta Valor Vendido
93122 xxxxxxxxxxxxx zzzzzzzzzz
93122 xxxxxxxxxxxxx zzzzzzzzzzz

1 Respuesta

Respuesta
1
En lugar de una macro yo pondría una fórmula, siguiendo tu ejemplo en D2 pondría:=SI(Y(A2="", C2>0), D1, A2)
Revisa y dime si te funciona.
Experto: No me funciona. La fórmula o macro debe ir automáticamente comparando los números de cedula y cuando cambia, debe asumir este nuevo valor y así ir bajando sucesivamtenhasta recorrer la tabla:; 93121 compara con 93122, luego 93122 con la próxima cedula.
Como conclusión, es como agregar en el detalle (para cada venta) una columna donde apareceza el No. de cedula del vendedor
                     A B C
                     93121 Luis Buendia
                     Fecha Venta Valor Vendido
                xxxxxxxxxxxxx zzzzzzzzzz
                 xxxxxxxxxxxxx zzzzzzzzzzz
                xxxxxxxxxxxxx zzzzzzzzzz
                 xxxxxxxxxxxxx zzzzzzzzzzz
93122 Pedro Perez
                Fecha Venta Valor Vendido
                xxxxxxxxxxxxx zzzzzzzzzz
                 xxxxxxxxxxxxx zzzzzzzzzzz
Después de correr la macro debe quedar:

93121 Luis Buendia
                Fecha Venta Valor Vendido
93121 xxxxxxxxxxxxx zzzzzzzzzz
93121 xxxxxxxxxxxxx zzzzzzzzzzz
93121 xxxxxxxxxxxxx zzzzzzzzzz
93121 xxxxxxxxxxxxx zzzzzzzzzzz
93122 Pedro Perez
                Fecha Venta Valor Vendido
93122 xxxxxxxxxxxxx zzzzzzzzzz
93122 xxxxxxxxxxxxx zzzzzzzzzzz
Ok, esta macro hace lo que necesitas, ya la probé y funciona
Sub completa()
Dim Comprobar, Contador
Comprobar = True: Contador = 0 ' Inicializa variables.
a = InputBox("Ingresar el número de fila en la que inicia")
Do ' Bucle externo.
Do While Contador < 65000 ' Bucle interno.
Contador = Contador + 1 ' Incrementa el contador.
If Range("A" & a).Value = "" And Range("B" & a).Value = "" And Range("C" & a).Value = "" Then
Comprobar = False ' Establece el valor a False.
End If
If Range("A" & a).Value <> "" Then
b = Range("A" & a).Value
Else
If Range("B" & a).Value <> "Fecha Venta" Then
Range("A" & a).Value = b
End If
End If
a = a + 1
Exit Do ' Sale del bucle interno.
Loop
Loop Until Comprobar = False ' Sale inmediatamente del bucle externo.
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas