Ir a una celda

Dispongo una tabla con todos los datos de mis clientes, en otra zona al introducir el dni en cierta celda y empleando buscarv me aparecen el resto de los datos del cliente, me gustaría que pulsando en un botón se insertara un uno en una celda de la fila de la que se han leído los datos del cliente
En cuestión.
De antemano muchas gracias.
No controlo casi nada de vb y le estaría muy agradecido por su ayuda.

1 Respuesta

Respuesta
1
Creo que puedo darle dos interpretaciones a su consulta.
La primera pareciera ser que en la base de donde se tomaron el resto de los datos del cliente, debería aparecer un 1 informando que ese cliente ya está "computado" (es decir: sus datos fueron leídos)
En este caso, opino, una función COINCIDIR ( u otro BUSCARV) podría encargarse del control, colocando un 1 por medio de tal fórmula si lo encuentra en aquella otra zona que menciona al principio de su pregunta.
Si, por ejemplo esa zona fuese el rango T4:T380, usted debería colocar en su base de datos de clientes (donde quiere que aparezca el uno) la siguiente fórmula:
=SI(ESNOD(COINCIDIR(D2,$T$4:$T$380,0)),"",1)
Siendo D2 la celda donde está el número de documento de tal cliente.
También, tenga en cuenta si usa coma o punto y coma para separar los argumentos. Yo usé "," en este ejemplo.
Una vez tipeada la primer fórmula, copiarla para el resto de los registros en esta base.
Bien, esta fórmula devolverá "" (nada) si el numero de documento de la celda D2 no estuviese presente en el rango T4:T380.
Finalmente aclaro que ESNOD() es una función que devuelve verdadero si encuentra un error del tipo #N/A (NO Disponible) es decir que el dato no fue encontrado en la base de búsqueda. El condicional SI() es el encargado de mostrar o no aquel uno, según el caso.
---
Pero tal vez esto no sea lo que necesita.
Puede ser que lo quiere es "marcar" manualmente aquellos registros leídos.
Si este -otro- fuera su pedido, el siguiente macro de VBA le permitirá poner un 1 en una celda, simplemente haciendo doble click sobre ella y, si ya tuviera un uno, la vaciaría.
Para ingresar el código en su archivo, active el editor de Visual Basic (presione Alt+F11) y busque la hoja donde quiere que esto ocurra (donde está su base). Dé doble click sobre ella.
Copie el código siguiente y péguelo en el panel desplegado a la derecha de su Editor de Visual Basic:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
If Target.Value = 1 Then
Target.ClearContents
Application.SendKeys "{ESC}"
Else
Target.Value = 1
Application.SendKeys "{ESC}"
End If
End Sub
--- (Hasta aquí)
Cierre el Editor de Visual Basic y grabe su archivo.
A partir de ahora, cada vez que usted dé doble click sobre una celda la macro dejará un 1 en ella o lo quitará si ya hubiese alguno.
Considero que cualquiera de las dos alternativas debería resolver su pregunta. Si así fuera, agradeceré un comentario y que la finalice.
Si no, pregúnteme de nuevo.
Un abrazo!
Fernando
Pd. Disculpe la demora en contestar, pero estoy muy "tapado" de trabajo.
Aclarando qué entendí mal o qué faltó.
Muchas gracias Fernando.
Mi necesidad se solventaba, con la segunda interpretación, perdón por explicarme tan mal.
Su labor es envidiable, voy a dar más vueltas a mi hoja para mejorarla y quizás le vuelva a pedir algún consejo.
Gracias desde León España

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas