Necesito una macro en excel que seleccione los datos de las celdas adyacentes a la seleccionada

Necesito un macro en excel o la programación de que que a través de un un combo de selección me traiga los demás datos, es decir, selecciono un dato de una celda a través de micomo de selecicon, pero asu lado derecho tengo dos celdas y quiero que las traiga en otras dos diferentes celdas, esto quiere decir, que si escojo el dato "a1" automáticamente me traiga los datos de su derecha es decir "b1" y el "c1", en otras celdas. Ojala me explique.

7 Respuestas

Respuesta
1
Bueno tu pregunta no es muy clara... empecemos dedes aquí.
Supongamos que tienes en la columna A los datos de nombre, en B... Edad y en C sexo
En A1=NOMBRE, B1=EDAD y C1=SEXO
Inventate unos datos, supongamos que el A2=PEDRO, el B2=18 y el C3=Masculino
Entonces si te entendí bien, lo que quieres es que si en la celda F1 por ejemplo pones PEDRO, en G1 te traiga la edad y en H1 Sexo...
Si eso es así, en la celda G1 pon la siguiente fórmula:
=buscarv(F1,A2:C1000,2,falso) y en la H1 =buscarv(F1:A2:C1000,3,falso)
Pongo 1000 asumiendo que tu rango llega hasta la fila 1000.
Listo cada ves que en la celda F1 pongas un nombre, en las otras dos te trae su datos de al frente.
Te tendrás que pregentar que pasa si tienes dos pedros en tu base de datos que pasaría... la respuesta es que excel te trae el primero que encuentre.
Espero que esto sea lo que buscabas y no olvides calificar y cerrar esta pregunta.
BYE
Respuesta
1
Regálame tu dirección de correo electrónico y te envío un ejemplo de como podrías hacerlo, lo miras y si no entiendes algo lo resolvemos después.
Gracias por tu ayuda, mi mail es [email protected]
Mil gracias nuevamente
En este momento te estoy enviando el archivo, lo que pides está en la celda F2 basado en los datos de la columna A, y en G2 y H2 trae los datos de las columnas B y C, respectivamente, de acuerdo al valor seleccionado en la celda F2.
Revísalo y si no entiendes algo me cuentas y te explico, como ayuda puedes buscar en esta página por "Validación de datos"
Respuesta
1
Para hacer esto requieres el uso de la función buscarv.
El procedimiento es el siguiente:
Tienes una lista de tres columnas:
Número de identificación
Nombre
Fecha de nacimiento
Esta lista esta ubicada desde la celda A10 hasta la C20.
En la celda A2 ingresaras el número de identificación que quieres buscar, y quieres que en la celda B2 se despliegue el nombre que coincide con ese número y en la C" la fecha de nacimiento. Para ello utilizaras la función buscarv:
Parado en la celda B2 digitaras =buscarv(A2, A10:C20, 2,0). Lo que dice la instrucción es: Busca el valor que esta en A2 en la lista A10:C20 y si lo consigues traeme la segunda columna, tomando en cuanta que el valor sea exactamente igual.
De igual formas, en la celda C2 escribirás =buscarv(A2, A10:C10, 3,0)
Existen otras posibilidades para hacer esto, pero esta te servirá.
Gracias por tu ayuda, y creo que podría ser la solución, la situación de aquí es que mencionas una campo definido, es decir, de A2, o c2 y realizo la función de buscarv; sin embargo la situación es que a través de formulario de control, de esos que le defines de donde quieres controlar los datos, y obviamente la situación que cuando das clic en este cuadro de control te muestra todos los datos posibles a seleccionar y como te das cuentas cualquiera puedes seleccionar y no seria un campo definido sino seria variable o aleatorio, entonces en la fórmula de buscarv como quedaría, o en esta caso no funciona, y tendría que realizar una programación o insertar un código.
Seria igual, porque en la celda A2 tendrías la lista desplegable.
Respuesta
1
Si me facilitas una dirección de e-mail, te haré llegar un fichero excel con la solución de tu problema.
Respuesta
1
Si no entiendo mal, lo que vos tienes es una matriz de datos relacionados unos con otros, entonces si seleccionas un valor de una columna quieres que aparezca exactamente el dato adyacente de la matriz. Si es así yo no haría una macro, simplemente se utiliza la Validación de datos. Es decir que en la celda que vos quieres que aparezca el Combo, vas al menu Datos y seleccionas Validación de Datos, se abrirá un cuadro de dialogo, en la solapa de configuración donde dice permitir, seleccionas Lista, y en Origen de los datos pondrás la matriz de datos de origen. Bien, ya tienes validada la celda donde vos quieres que aparezca el combo con el dato origen. Ahora lo que tienes que hacer es editar la función BuscarV en la celda contigua a la celda validada. Tendrás tantas celdas con BuscarV como datos quieras que se coloquen al lado de la celda validada.
Respuesta
1
Acá te mando un modelo de la macro que pediste:
Public Sub DevolverValor()
'
' Devolver Valor
' Macro grabada el 07/06/2003 por Pablo
'
'Para que funcione hay que tener un combo de formulario el cual
'tenga configurada la propiedad Rango de entrada como A1:B5
'A partir de esta selección, la lista del combo es tomada como A1:A5
'Y luego el resultado es tomado de la columna 2 (ver función "INDICE"
'mas adelante.
'Se debe asignar esta macro al combo en la propiedad: Asignar macro..."
Dim valSel As Integer
Dim celdaRes As String
'Seteo la celda que mostrará el resultado
celdaRes = "A12"
'Limpio la celda donde muestro el resultado
Range(celdaRes).Value = ""
'Selecciono el combo correspondiente
Hoja1.Shapes("Drop Down 2").Select
'Guardo el indice del combo seleccionado
valSel = Selection.Value
'Si no se seleccionó nada salgo de la macro
If valSel < 0 Then Exit Sub
'Muestro en la celda celdaRes el dato de la segunda columna
Range(celdaRes).Formula = "=INDEX(" & Selection.ListFillRange & ", " & valSel & ",2)"
End Sub
Respuesta
1
A ver, una forma simple sería validar los valores de una celda de acuerdo a una lista que podrías ubicar más abajo y en las celdas a la derecha utilizar la función buscarV, de modo que rescate los valores de la tabla. También podrías utilizar códigos en lugar de un combo. La función buscarV toma valores de una tabla, indicando cual es la celda de referencia de la que partimos en nuestro caso la seleccionada de la lista por el combo o el código, el 2do parámetro es el rango ocupado por la tabla y el 3ro indica en que columna (1,2,3, etc)se encuentran los datos que buscas dentro de esa tabla. Existen seguramente otras soluciones si esto no te es suficiente escribe a [email protected] y te envío un ejemplo o planteamae más dudas y te buscare una solución.
Este tipo de necesidades que planteas, suelen resolverse con más frecuencia utilizando access, podrías contemlpar también esta posibilidad si lo que deseas es trabajar con muchos datos o que estén relacionados.
Atentamente.
Eduardo Alarcón
Rosario - Argentina

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas