Agregar dos columnas en una lista desplegable

Para Dante Amor

Cómo puedo hacer para agregar dos columnas en una lista desplegable de todas las celdas de una columna pero que solo me cargue el dato de la primera columna?

1 respuesta

Respuesta
2

No entendí muy bien, ¿quieres agregar 2 columnas pero que solo cargue la primer columna?

Podrías enviarme tu archivo y me explicas con ejemplos, comentarios e imágenes lo que necesitas.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Diana Carolina Marin Gomez” y el título de esta pregunta.

Tengo una primera hoja con códigos y descripciones y la segunda hoja tengo una columna con lista desplegable, lo que necesito es que esa lista desplegable me muestre los códigos con su respectiva descripción pero cuando la escoja solo me coloque el código,

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

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu segunda hoja)
  4. 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

.

Perfecto, solo una cosa como hago para que no puedan digitar nada en estas celdas?

Buenas tardes, ya le envíe el archivo a su correo con los problemas que tengo, muchas gracias por su colaboración

Esta semana he trabajado con usted, inicialmente hicimos un botón que genera el txt con comas pero cuando le ingrese el código de la lista desplegable me daño el código del botón me colaboras por favor

Para que no puedan digitar en esas celdas tendrías que bloquear la celda y después proteger la hoja, pero eso corresponde a otro tema.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas