Hay Macro,Buscar el dato de una lista/Validar/copiar/guardar a un costado del dato encontrado y repetir la operación.

¿Qué puedo hacer? Ya que son muchas tarjetas que llegan en la semana y por eso se capturan cada vez que llegan aunque se repitan lo cansado es buscar el folio y volver a capturarlo en el registro que sigue (columna) por ello ver la posibilidad de usar una sola celda y al dar enter registre el numero en donde debe ir se ponga en blanco y que me permita volver a capturar el siguiente folio.

1 Respuesta

Respuesta
2

Te dejo la macro que necesitas.

Entrá al Editor (con ALt y F11)

Seleccioná con doble clic el objeto HOJA donde vayas a trabajar y allí copiá este código:

Private Sub Worksheet_Change(ByVal Target As Range)
'x Elsamatilde
'se controla solo lo ingresado en A1
If Target.Address <> "$A$1" Then Exit Sub
'si se borra la celda no se ejecuta el resto
If Target = "" Then Exit Sub
'guarda la última celda con datos en col B
finx = Range("B" & Rows.Count).End(xlUp).Row
'se busca el dato ingresado en rango B
Set busco = ActiveSheet.Range("B9:B" & finx).Find(Target.Value, LookIn:=xlValues, lookat:=xlWhole)
    'si no lo encuentra avisa
    If busco Is Nothing Then
        MsgBox "Este registro no se encuentra en la tabla."
        Target = ""
        Target.Select
        Exit Sub
    End If
    'si lo encontró agrega el nro a la derecha en la primer col libre
    filx = busco.Row: colx = 3
    While Cells(filx, colx) <> ""
        colx = colx + 1
    Wend
    'ya tengo la col libre, allí copio el valor ingresado en A1
    Cells(filx, colx) = Target.Value
    'limpia la celda para repetir el ingreso
    Target = ""
    Target.Select
End Sub

Como no quedó claro en tu consulta hasta cuántas veces se puede registrar un nro, en mi ejemplo no tiene límite.

El bucle: While Cells(filx, colx) <> "" hará que se vayan colocando a derecha del registro encontrado.

Comentame si así es cómo lo necesitas o lo querrás acotar y en ese caso hasta cuánto.

¡Gracias! 

Lo colocare y te comentare" que tal me funciona, de antemano muchas Gracias, y espero ser de alguna ayuda en el futuro..

Buen día.

Bien, y luego de que lo pruebes y si todo está resuelto no olvides regresar aquí y valorar la respuesta para que no me siga apareciendo como 'pendiente'.

Sdos!

Saludos

Ya lo Instale y funciona muy bien muchas Gracias... y si para limitar los registros en la celda D4 colocar el texto de la cabecera del registro limite.. En ocasiones un grupo de tarjetas las limito a 4 registros, otro día a 7 y otro nuevamente a 3, es variado conforme sea la actividad...

Espero no te sea confusa mi información. Que tengas un buen día y gracias de antemano..

Realmente me ayudaste mucho en mi trabajo... espero algún día poder apoyar también seguiré en esta página a ver en que ayudo.. tnks.

El valor en celda D4 debe estar en formato de número para poder contar las columnas.

Y cambia la macro a partir de la línea del comentario

'si lo encontró agrega el nro a la derecha en la primer col libre

    'si lo encontró agrega el nro a la derecha en la primer col libre
    filx = busco.Row: colx = 3: colfin = [D4] + 2
    While Cells(filx, colx) <> "" And colx <= colfin
        colx = colx + 1
    Wend
    'ya tengo la col libre, allí copio el valor ingresado en A1
    If colx > colfin Then
        MsgBox "Ya no se pueden ingresar más tarjetas de este nro"
    Else
        Cells(filx, colx) = Target.Value
    End If
    'limpia la celda para repetir el ingreso
    Target = ""
    Target.Select
End Sub

Sdos!

¡Gracias! 

En serio!!

Muchas Gracias por tu apoyo, de que manera puedo yo ayudar también" (claro que recomendare la pagina y sobre todo tu perfil) no pensé que hubiera quien me ayudara tan rápido, y realmente podre aprovechar mi tiempo laboral para aprender de lo que es esto de los macros...

Que tu camino sea placentero en el sendero de la Vida..

Gracias..

Mauricio Meza.

Ya ayudas y mucho siendo agradecido... nos alienta a seguir en esta tarea.

Primero dedica tu tiempo libre a estudiar... ya habrá tiempo para colaborar en foros ;)

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas