Sumar si repetidos

Buenas noches Dam,

Continuo con un pequeño error que no se solucionar, y es que según la macro que me ayudastes, hice esta copia, pero no consigo que si no encuentra el valor repetido en solo la columna "A" me salte a la celda siguiente.

Si encuentra el repetido, perfecto suma los totales, elimina datos en "A" y "D" y se queda en la misma celda para recibir nuevos datos, pero ocurre lo mismo si no hay repetido, osea se queda en la misma celda a pesar de tener valor.

Se que algo hago mal pero no se como arreglarlo.

Te adjunto el código

Private Sub CommandButton1_Click()
Range("D4").Select 'selecciona el rango (en este caso la celda) "D3"
Do While Not IsEmpty(ActiveCell) 'encuentra la ultima celda con datos
ActiveCell.Offset(1, 0).Select 'en la ultima celda con datos, muévete una fila abajo
Loop 'bucle
ActiveCell.Value = Val(TextBox1) 'copia el contenido del textbox1 a la celda activa
ActiveCell.Offset(0, 1).Select 'muévete en la misma fila, una columna a la derecha
ufila = ActiveCell.Row
For i = 3 To ufila - 1
If Cells(i, "A") = Cells(ufila, "A") Then
Cells(i, "D") = Cells(i, "D") + Cells(ufila, "D")
Application.EnableEvents = False
Cells(ufila, "A") = ""
Cells(ufila, "D") = ""
Application.EnableEvents = True
i = ufila
End If
Next
ActiveCell.Offset(0, -4).Select
Unload Me
End Sub

Muchas gracias, y espero no abusar de tu paciencia

1 Respuesta

Respuesta
1

Esta no es mi macro, lo sé por la letra, jajaja, no en serio, no es mi macro, y lo sé porque no me gusta usar el Do While.

Pero, creo que el error es porque estás comparando la celda A-i con la A-ufila

If Cells(i, "A") = Cells(ufila, "A")

En la A-ufila creo que está en blanco, porque el valor del textbox1 lo pusiste en la D-ufila

ActiveCell.Value = Val(TextBox1) 'copia el contenido del textbox1 a la celda activa

Si quieres que el valor del textbox se guarde en la última celda de la columna A, tienes que cambiar esta línea

Range("D4").Select 'selecciona el rango (en este caso la celda) "D3"

Tienes que poner

Range("A4").Select

Saludos. Dam

Hola Dam

Me explique mal, la parte que tú hiciste era desde ufila = ActiveCell.Row hastaNext,y en la hoja que está puesto funciona correctamente, el problema es en esta nueva hoja, si se repite un registro en la columna "A" suma las filas que coinciden y borra la fila anterior repetida, esta parte funciona perfectamente si se repite suma y se posiciona en la celda que ha dejado vacía, pero si no se repite un registro en columna "A" debería pasar a la celda vacía de la columna "A" de la fila siguiente, y lo que hace es quedarse en la misma celda con datos.

Si crees conveniente te envío el fichero y lo compruebas.

Saludos

Juan Pedro

Probaste con los cambios que te puse

Buenas,

Si, utilice los cambios, pero no quiero que me ponga los datos del textbox1 en la columna "A".

Yo pongo un dato en la columna "A" y el textbox1 me pide una cantidad para poner en la columna "D", si en la columna "A" se repite un dato suma los valores de la columna "D" y los unifica en una sola fila.

Cuando unifica las filas se posiciona en la siguiente celda vacía de la columna "A" pero cuando el registro no está repetido no pasa a la fila siguiente de la columna "A".

Gracias por tu paciencia

Puedes enviarme un archivo con ejemplos y con la macro para hacer pruebas.

Ahí explícame paso a paso qué debo hacer para llegar al problema, y con comentarios y con colores dime cuál es el resultado que esperas.

Hola Dam,

te acabo de enviar el archivo.

Saludos

Te regresé el archivo

Saludos. Dam
Si es lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas