Validación de datos y Celda activa

Hola ElsaMatilde !
Me preguntaba que la opción VALIDACIÓN DE DATOS solamente funcionaba sobre las celdas activa o rango seleccionado.
Ejemplo que si pongo en A1, LUIS, en B1, me ponga VENTAS, quiero aclarar que esto funciona con función BUSCARV, y BUSCAR, pero recalco lo quiero hacer de una manera diferente y he pensado en VALIDACIÓN DE DATOS, la idea es no poner fórmulas sobre la hoja de calculo, se que suena raro pero por cuestiones diversas deseo analizar otros opciones.
Asimismo quisiera saber si es posible que en una celda determinada ejemplo A1, siempre me muestre el VALOR de la celda activa, que se supone nunca será A1, y que al cambiar de celda cambie según en posición que se encuentre, ¿pregunta rara no te parece? Algo similar a lo hace la barra de fórmulas. Pero en la barra de fórmulas se muestran fórmulas si las hay, yo pretendo que vean los VALORES.
Por atención que prestes al presente mil gracias.
Recibe un fuerte abrazo
José Medina Maciel

1 Respuesta

Respuesta
1
Empiezo por la celda activa.
Para ver en A1 el valor de la celda activa, colocá en el Editor (alt+F11), en la hoja donde la necesites, la siguiente rutina:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("A1").Value = ActiveCell.Value
End Sub
Con respecto a la primera consulta, intenté, sin éxito, colocar una fórmula del tipo Buscarv en la validación de datos. Por lo tanto te desarrollé una macro, para que la pruebes. Luego de utilizar la función buscarv copia y pega el valor para que no te quede la fórmula a la vista:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim mirango As String
Dim estoy As Variant
mirango = "A1:A10"
Set estoy = Application.Intersect(Range(mirango), Target)
If Not estoy Is Nothing Then
Target.Offset(0, 1).Value = "=+VLOOKUP(RC[-1],R1C7:R6C8,2,FALSE)"
Target.Offset(0, 1).Copy
Target.Offset(0, 1).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
?con la siguiente instrucción se coloca nuevamente en la col A
Target.Select
?pero podrías pasar a la línea siguiente con esta: Target.Offset(1,0).select
End If
Set estoy = Nothing
End Sub
Con esto, cada vez que ingreso valores en la col A me coloca en la B lo que encuentra en una lista que la tengo en el rango G1:H6. La lista puede estar en un rango más alejado, en ese caso en lugar de C7 y C8 colocarás el nro.de columna que corresponda.
Espero te sea de utilidad y cualquier duda me volvés a consultar.
Hola ElsaMatilde !
He recibido tu respuesta y ya la puse en practica y las dos opciones que propones funcionan de maravilla, esto supera ampliamente lo que necesitaba.
Mil Gracias, recibe un fuerte abrazo
Jose Medina Maciel

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas