Copiar datos a una columna y si se repite no copiarla

Hola amigos estoy en apuros y necesito su ayuda mi problema es el siguiente a ver si aprendo a explicarlo
en la hoja "FACTURA"
Tengo un forma para facturar localizo los productos por medio de buscarV hasta aquí no tengo problemas, pero he visto por youtube que hay manera que solamente ingresando el ID del producto cuando le dan enter se copia a la columna correspondiente a "ID" y seguidamente coloca un 1 en la columna "cantidad", duespues cuando vuelven a ingresar el mismo código ya no se copia sino que solamente registra cuantas veces ingresas dicho ID en cantidad
alguien me puede ayudar aquí he buscado todos los macros que he utilizado en mi libro pero no encuentro uno para ente problema y estoy en apuros
Ejemplo
En la Celda B7 quiero introducir en ID(por ejemplo AH-105)
Y después al darle enter que me copie el ID en la columna A a partir de la linea 13 y me coloque un 1 en la columna B a partir de la linea 13
y si un decir vuelvo a introducir el mismo ID en la celda B7 en vez de copiarlo que me sume en la columna B13 las veces que sea ingresado
y si introduzco un ID distinto que me lo copie en la siguiente fila y que me repita el proceso
el rango que utilizo son
    ID Cantidad
A13:A35 B13:B35
De antemano muchas gracias por su ayuda

1 Respuesta

Respuesta
1
Lo que quieres hacer es difícil de conseguir mediante el uso de funciones, sólo.
Lo que has visto en YouTube debe ser una solución basada en macros. En este caso, yo te sugiero la siguiente:
1. Crea un botón desde el menu "formularios"
2. Asocia este código:
Sub Button1_Click()
  Dim FilaInicio As Integer
  Dim Codigo As String
  FilaInicio = 13
  'captura el valor de la celda de ingreso
  Codigo = LCase(Cells(7, 2).Value)
  If Codigo = "" Then Exit Sub
  'borra la celda para nuevo ingreso
  Cells(7, 2).Value = ""
  'buca el código en la columna A
  'si no lo encuentra, busca la primera posición libre
  While Cells(FilaInicio, 1) <> Codigo And Cells(FilaInicio, 1) <> Empty
    FilaInicio = FilaInicio + 1
  Wend
  'imprime código en columna A
  Cells(FilaInicio, 1).Value = Codigo
  'imprime el valor acumulado en la columna B
  Cells(FilaInicio, 2).Value = Cells(FilaInicio, 2) + 1
End Sub
Ahora, cuando ingreses un valor en la celda B7 lo añadirá a la columna A si no existía antes. Si ya estaba, acumulará el número de veces que ha sido ingresado en la columna B.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas