Realiza lo siguiente en tu primera hoja con códigos y descripciones.
Suponiendo que en la columna A tienes los códigos y en la B las descripciones, en la columna C en la celda C2 pon la siguiente fórmula:
=A2&"-"&B2
Ejemplo:
Ahora, selecciona desde la celda C2 hasta la última fila con datos; y en el cuadro de nombres escribe la palabra "codigos"
En la segunda hoja pon las siguientes macros:
Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
If Target.Value = "" Then Exit Sub
If Target.Count > 1 Then Exit Sub
Set h = Sheets("Hoja7")
Set b = h.Columns("C").Find(Target, lookat:=xlWhole, LookIn:=xlValues)
If Not b Is Nothing Then
cod = h.Cells(b.Row, "A")
Application.EnableEvents = False
With Target.Validation
.Delete
End With
Target.Value = cod
Application.EnableEvents = True
End If
End Sub
'
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Por.Dante Amor
If Not Intersect(Target, Columns("B")) Is Nothing Then
If Target.Count > 1 Then Exit Sub
If Target.Row < 2 Then Exit Sub
With Target.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=codigos"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End If
End Sub
Cambia en la primera macro "Hoja7" por el nombre de tu primera hoja.
Cambia en la segunda macro "B" por la columna donde tienes tu lista de validación
Cambia en la segunda macro el 2 por el número donde empiezan tus datos.
Sigue las Instrucciones para poner la macro en los eventos de worksheet
- Abre tu libro de excel
- Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
- Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu segunda hoja)
- En el panel del lado derecho copia la macro
Este será el resultado, en la lista de validación verás el código y la descripción, cuando selecciones alguno, en la celda solamente quedará el código
.
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
.
Avísame cualquier duda
.