Macro según el valor de una lista desplegable modifique el formato de otra

Quiero saber si hay una Macro con la cual al seleccionar el valor de una lista desplegable cambie el formato de la celda siguiente.

Ejemplo en la columna A tengo mi lista desplegable con valores Oscar, Jazmin, Estefany. Y en mi columna B se escribira un numero pero con formato diferente si selecciona Oscar sera formato moneda, si se selecciona Jazmin el formato sera porcentaje.

1 Respuesta

Respuesta
2

Para que cada dato de la lista desplegable tome un formato distinto, te sugiero lo siguiente. Suponiendo que en la columna G tienes tus nombres de la lista desplegable, entonces en la columna H pon el formato que le corresponde a cada nombre, por ejemplo, revisa la siguiente imagen:

En la columna G tengo los nombres de la lista desplegable, para Oscar tengo el formato %, para Jazmin tengo el formato moneda, para Estefany el formato General.

Entonces, cuando en la columna A selecciones un nombre de la lista desplegable, en automático la macro pondrá el formato correspondiente en la columna B.


Pon la siguiente macro en los eventos de tu hoja

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Not Intersect(Target, Range("A2:A100")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        If Target.Value = "" Then
            Target.Offset(0, 1).NumberFormat = "General"
            Exit Sub
        End If
        Set b = Columns("G").Find(Target.Value, lookat:=xlWhole)
        If Not b Is Nothing Then
            Target.Offset(0, 1).NumberFormat = b.Offset(0, 1).NumberFormat
        End If
    End If
End Sub

Realiza los siguientes ajustes en la macro

Donde dice Range("A2:A100") cambia el 100 por la última fila con datos que tengas, si es toda la columna, entonces cambia a Range("A:A")

En donde dice Columns("G"), cambia la "G" por la columna donde tienes los nombres de tu lista desplegable.

Si tienes un Nombre para la lista desplegable, entonces cambia esta línea:

Set b = Columns("G").Find(Target.Value, lookat:=xlWhole)

Por esta línea; y cambia "Hoja2" por la hoja donde tienes los datos, cambia "nombres" por el nombre de tu lista.

Set b = Sheets("Hoja2").Range("nombres").Find(Target.Value, lookat:=xlWhole)

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 hoja)
  4. En el panel del lado derecho copia la macro


.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas