Excel - buscar celda vacía ¿Después de celda ocupada e insertar un dato externo?

Hola!!!

Debo ingresar pagos mensuales realizados por los socios.
Cuando un socio deudor (Juan debe marzo) quiere abonar, debo
buscar en la fila donde se cargan los pagos,(c2:f2) cual es el mes que debe
(estaría en blanco=e2) y el dato que escribo en la celda a1, debe cargarse en
e2 y no en cualquier celda de la fila 2.
EJ:
En A1 Debo Cargar El Pago (10$)

¿Cual es la formula que necesito? Creo que es una consulta para identificar al socio, que dentro debe tener una consulta para verificar los campos vacíos en la fila, y a su vez, buscar el primero que se encuentre en blanco... Por favor!!! Ayuda!!!

Muchas Gracias!!!

1 respuesta

Respuesta
1

Para esto necesitas un código o macro que identifique la 1er col libre ... pero además como también necesita identificar el 'socio' lo ideal es que en lugar de ingresar el dato en A1 lo ingreses en la fila que corresponda, en este caso en A2.

Comentame si esto es posible para que te desarrolle el código.

Hola! gracias por responder.

En realidad la celda que aquí figura como A1, está en otra hoja, que es donde realizo la consulta que me trae todos los datos de 1 socio exclusivamente.

El caso es que, si quiere abonar su deuda, yo pueda ingresar el pago desde allí, y que automáticamente la macro busque en la hoja Datos, q es similar a la que muestro en la imagen, identifique cual es el mes que adeuda y coloque allí el importe indicado.

La planilla original consta de fechas en una fila hasta el año 2020 y la lista de socios está preparada para 1000.

Espero haber sido más clara en la explicación.

Te agradezco mucho!

Entonces solo falta que me digas en qué celda de esa 'otra hoja' aparece el nombre del socio o en su defecto dejá también la imagen.

Sdos

Elsa

Que Bueno!

La hoja se llama Consulta y la celda es P23.

Gracias!

La rutina entonces se coloca en el Editor (podes acceder presionando juntas las teclas ALT y F11), seleccionando con doble clic en el objeto HOJA 'Consulta' y allí pegá lo sgte:

Private Sub Worksheet_Change(ByVal Target As Range)
'x Elsamatilde
'se controla lo ingresado en celda A1 de hoja Consulta
If Target.Address(False, False) <> "A1" Then Exit Sub
'si se borra el contenido de la celda no se ejecuta
If Target.Value = "" Then Exit Sub
'si la celda P23 está vacía:
If Range("P23") = "" Then
 MsgBox "No se encuentra nombre de socio en celda.", , "ERROR"
 Range("A1") = ""
 Exit Sub
End If
'busca el dato ubicado en celda P23
socio = Range("P23").Value
Set busco = Sheets("Datos").Range("B2:B10000").Find(socio, LookIn:=xlValues, lookat:=xlWhole)
'si encuentra el socio busca la 1er col libre desde atrás hacia delante
If Not busco Is Nothing Then
 colx = Sheets("Datos").Range("IV" & busco.Row).End(xlToLeft).Column + 1
 'allí coloco el importe
 Sheets("Datos").Cells(busco.Row, colx) = Target.Value
Else
 MsgBox "No se encontró el 'socio' en hoja Datos. ", , "ERROR"
End If
'limpio la celda A1 - OPCIONAL
Range("A1") = ""
End Sub

Se ejecuta cada vez que ingreses un valor en A1 de hoja Consulta.

Tengo el libro de ejemplo x si lo necesitas. Copiá el correo que aparece en mi sitio que dejo al pie y no olvides indicarme el tema que nos ocupa.

Hola Elsa, tu macro funcionó perfectamente y logró lo que yo quería.

Realmente sos una genia!

Te envío una consulta por correo con el libro original para que me ayudes un poquito más si es posible.

Muchísimas Gracias!!!

Con mucho gusto, pero finalizá esta consulta y dejá la nueva en el tablón (podes indicar que es para mí) y así la tomo también, junto con la muestra que me envíes por correo.

Tu respuesta fue rápida y muy fácil la explicación para implementar la macro. Realmente fue muy fácil.

Elsa Matilde sos una Genia!!!

Muchísimas Gracias!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas