Note: The other languages of the website are Google-translated. Back to English

¿Cómo insertar una lista desplegable codificada por colores en la tabla de Word?

Supongamos que tengo una tabla en mi documento de Word y ahora quiero insertar una lista desplegable codificada por colores en una columna de la tabla. Significa que cuando selecciono una opción del menú desplegable, el color de la celda se vuelve rojo y cuando selecciono otra opción en el menú desplegable, el color de la celda se vuelve verde como se muestra en la siguiente captura de pantalla. ¿Cómo podrías resolver este trabajo en un documento de Word?

Documento desplegable codificado por colores

Inserte la lista desplegable codificada por colores en un documento de Word con código VBA


Inserte la lista desplegable codificada por colores en un documento de Word con código VBA

Los siguientes pasos pueden ayudarlo a completar esta tarea según lo necesite, primero, inserte la lista desplegable y luego aplique el color para el menú desplegable. Por favor haz lo siguiente:

1. Seleccione una celda de la tabla donde desea insertar el menú desplegable y luego haga clic en Developer > Control de contenido de lista desplegable icono, vea la captura de pantalla:

documento desplegable codificado por colores 1

2. El menú desplegable se inserta en la celda específica y luego haga clic en Developer > Propiedades, ver captura de pantalla:

documento desplegable codificado por colores 2

3. En la Propiedades de control de contenido cuadro de diálogo, realice las siguientes operaciones:

(1.) Introduzca el nombre del título en el Título caja de texto;

(2.) Haga clic en Añada botón ir al Agregar opción diálogo;

(3.) En el Agregar opción cuadro de diálogo, escriba el elemento de la lista desplegable en el Nombre que se ve en la pagina caja de texto.

documento desplegable codificado por colores 3

4. Repita el Paso 3 para insertar otros elementos de la lista desplegable que necesite.

5. Después de crear la primera lista desplegable, puede copiarla y pegarla en otras celdas que necesite. Ver captura de pantalla:

documento desplegable codificado por colores 4

6. Entonces debe aplicar un código VBA, mantenga presionado el ALT + F11 teclas para abrir el Microsoft Visual Basic para aplicaciones ventana.

7. En la Microsoft Visual Basic para aplicaciones ventana, haga doble clic Este documento de Proyecto-Proyecto panel para abrir el modo y luego copie y pegue el siguiente código en el módulo en blanco.

Código de VBA: inserte la lista desplegable codificada por colores en la tabla de un documento de Word:

Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean)
With ContentControl.Range
    If ContentControl.Title = "Status" Then
        Select Case .Text
            Case "Complete"
                .Cells(1).Shading.BackgroundPatternColor = wdColorRed
            Case "In Progress"
                .Cells(1).Shading.BackgroundPatternColor = wdColorGreen
            Case "Not Start"
                .Cells(1).Shading.BackgroundPatternColor = wdColorBlue
            Case Else
                .Cells(1).Shading.BackgroundPatternColor = wdColorAutomatic
        End Select
    End If
End With
End Sub

documento desplegable codificado por colores 5

Nota:: En el código anterior, Status es el nombre del título al crear la lista desplegable, y Finalizar el proyecto, En curso, No comenzar son los elementos de la lista desplegable, puede cambiarlos por los suyos. Y también puede cambiar el color según sus necesidades.

8. Luego guarde y cierre la ventana de código, ahora, cuando seleccione un elemento de la lista desplegable, su color relativo se llenará con la celda, vea la captura de pantalla:

Documento desplegable codificado por colores


 


Herramientas de productividad de palabras recomendadas

 

Kutools para Word: más de 100 funciones avanzadas para Word, ahorre su 50% de tiempo

  • Las operaciones complicadas y repetidas se pueden realizar un solo procesamiento en segundos.
  • Inserte varias imágenes en carpetas en un documento de Word a la vez.
  • Fusiona y combina varios archivos de Word en carpetas en uno con el orden que desees.
  • Divida el documento actual en documentos separados según el encabezado, el salto de sección u otros criterios.
  • Convierta archivos entre Doc y Docx, Docx y PDF, colección de herramientas para conversiones y selección comunes, etc.

 

Comentarios (47)
5 clasificado de 5 · 1 calificaciones
Este comentario fue minimizado por el moderador en el sitio
Cuando salgo y vuelvo a abrir el programa, tengo que volver a ingresar el código VBA. ¿Cómo hago para que se guarde?
Este comentario fue minimizado por el moderador en el sitio
Hola,
Para guardar el código vba cuando abra el archivo la próxima vez, debe guardar el archivo de Word como formato de documento habilitado para macros de Word. ¡Pruébalo, espero que te pueda ayudar!
Este comentario fue minimizado por el moderador en el sitio
Hola, acabo de crear con éxito la lista desplegable y los colores según lo recomendado. Intenté agregar una fila más, así que tengo menús desplegables de 4 contra 3. Corté, pegué y cambié, pero no aparece ningún color cuando selecciono esta opción, ¿alguna idea de cómo solucionarlo?
Este comentario fue minimizado por el moderador en el sitio
Hola Pedro,
Primero, debe crear la lista desplegable en la tabla y luego *** su cuarto texto desplegable en el código como se muestra a continuación:

Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean)
With ContentControl.Range
If ContentControl.Title = "Status" Then
Select Case .Text
Case "Complete" 'First drop down item
.Cells(1).Shading.BackgroundPatternColor = wdColorRed
Case "In Progress" 'Second drop down item
.Cells(1).Shading.BackgroundPatternColor = wdColorGreen
Case "Not Start" 'Third drop down item
.Cells(1).Shading.BackgroundPatternColor = wdColorBlue
Case "New Task" 'Fourth drop down item
.Cells(1).Shading.BackgroundPatternColor = wdColorYellow
Case Else
.Cells(1).Shading.BackgroundPatternColor = wdColorAutomatic
End Select
End If
End With
End Sub


Por favor, inténtalo, ¡espero que te pueda ayudar!
Este comentario fue minimizado por el moderador en el sitio
¡Esto funcionó muy bien! Gracias. Intenté aplicar el mismo código a otro cuadro de contenido desplegable en el mismo documento y tengo problemas. No sé cómo obtener dos en la ventana de VBA. Recibo 'error de compilación, nombre ambiguo detectado: Document_ContentControlOnExit'
Este comentario fue minimizado por el moderador en el sitio
¿Puedo ingresar colores personalizados? (rgb)
Este comentario fue minimizado por el moderador en el sitio
Hola, gracias por esto. ¿Hay alguna forma de cambiar solo el color del texto y no toda la celda?
Este comentario fue minimizado por el moderador en el sitio
Hola, Shannon,
Para cambiar el color del texto en lugar del color de fondo, el siguiente código VBA puede ayudarlo, inténtelo, ¡espero que pueda ayudarlo!

Subdocumento privado_ContentControlOnExit(ByVal ContentControl como ContentControl, Cancelar como booleano)
Con ContentControl.Range
Si ContentControl.Title = "Estado" Entonces
Seleccionar caso .Texto
Caso "Completo"
.Celdas(1).Rango.Fuente.Color = wdColorRojo
Caso "En Progreso"
.Celdas(1).Rango.Fuente.Color = wdColorVerde
Caso "No arranca"
.Celdas(1).Rango.Fuente.Color = wdColorAzul
Caso Else
.Celdas(1).Rango.Fuente.Color = wdColorAutomático
Fin Seleccionar
Si terminar
End With
End Sub
Este comentario fue minimizado por el moderador en el sitio
Luchando aquí para aplicar esto como un estilo en lugar de un color o sombra.
Este comentario fue minimizado por el moderador en el sitio
¿Puedo modificar este código para que resalte cualquier opción desplegable sin enumerarlas todas?
Este comentario fue minimizado por el moderador en el sitio
En lugar de colores, ¿podríamos usar símbolos? como si el símbolo de visualización 'completado' con el código de carácter 252, si no se inició, entonces el símbolo con el código de carácter 88, etc. ¿puede compartir el código vba usando símbolos como pantalla por favor?
Este comentario fue minimizado por el moderador en el sitio
¡Hola, esto es fantástico! ¿Hay alguna manera de elegir entre muchos colores?
Este comentario fue minimizado por el moderador en el sitio
Hola Sam,
Para aplicar más color que desee, debe usar el siguiente código y cambiar el color RGB según sus necesidades:

Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean)
With ContentControl.Range
    If ContentControl.Title = "Status" Then
        Select Case .Text
            Case "Complete"
                .Cells(1).Shading.BackgroundPatternColor = RGB(255, 0, 0)
            Case "In Progress"
                .Cells(1).Shading.BackgroundPatternColor = RGB(0, 255, 64)
            Case "Not Start"
                .Cells(1).Shading.BackgroundPatternColor = RGB(0, 0, 255)
            Case Else
                .Cells(1).Shading.BackgroundPatternColor = wdColorAutomatic
        End Select
    End If
End With
End Sub


Por favor, inténtalo, ¡espero que te pueda ayudar!
Este comentario fue minimizado por el moderador en el sitio
¿Puedo colorear toda la fila correspondiente en lugar de solo una celda?
Este comentario fue minimizado por el moderador en el sitio
Hola Jericó,
El siguiente código puede ayudarlo a resolver su problema, inténtelo: (Puede configurar el color RGB según sus necesidades)

Subdocumento privado_ContentControlOnExit(ByVal ContentControl como ContentControl, Cancelar como booleano)
Con ContentControl.Range
Si ContentControl.Title = "Estado" Entonces
Seleccionar caso .Texto
Caso "Completo"
.Rows.Shading.BackgroundPatternColor = RGB(255, 0, 0)
Caso "En Progreso"
.Rows.Shading.BackgroundPatternColor = RGB(0, 255, 64)
Caso "No arranca"
.Rows.Shading.BackgroundPatternColor = RGB(0, 0, 255)
Caso Else
.Rows.Shading.BackgroundPatternColor = wdColorAutomatic
Fin Seleccionar
Si terminar
End With
End Sub
Este comentario fue minimizado por el moderador en el sitio
hola genial!!! Pero, ¿hay alguna forma de cambiar el color/texto de otra celda en la misma fila pero en una columna diferente? Por ejemplo: en lugar de cambiar el fondo de "Completo", cambie el fondo de "Proyecto-001". Ayudame por favor. Gracias por adelantado
Este comentario fue minimizado por el moderador en el sitio
Hola Jaimes,
Para resolver su problema, aplique el siguiente código:
Nota: En el código, el número 1 en las celdas del script (1) es el número de columna de la tabla, puede cambiarlo según sus necesidades.

Subdocumento privado_ContentControlOnExit(ByVal ContentControl como ContentControl, Cancelar como booleano)
Con ContentControl.Range
Si ContentControl.Title = "Estado" Entonces
Seleccionar caso .Texto
Caso "Completo"
.Rows(1).Cells(1).Shading.BackgroundPatternColor = wdColorRed
Caso "En Progreso"
.Rows(1).Cells(1).Shading.BackgroundPatternColor = wdColorGreen
Caso "No arranca"
.Rows(1).Cells(1).Shading.BackgroundPatternColor = wdColorBlue
Caso Else
.Rows(1).Cells(1).Shading.BackgroundPatternColor = wdColorAutomatic
Fin Seleccionar
Si terminar
End With
End Sub

Por favor, inténtalo, ¡espero que te pueda ayudar!
Este comentario fue minimizado por el moderador en el sitio
Hola, ¿hay alguna manera de hacer múltiples menús desplegables codificados por colores dentro de un documento? ¡Gracias!
Este comentario fue minimizado por el moderador en el sitio
¡Muchas gracias por compartir esto! Sin embargo, me estoy encontrando con una peculiaridad extraña. A veces, cuando selecciono un elemento de un menú desplegable y luego hago clic en otra parte del documento para aplicar el formato, no funciona. Selecciona la palabra adecuada del menú desplegable, pero se mantiene como texto negro normal. Tengo que deshacer antes de seleccionar algo, volver a seleccionar el elemento del menú desplegable y luego SOLO hacer clic en otro menú desplegable para que se aplique el formato. ¿Alguna idea sobre por qué está haciendo esto y cómo puedo solucionarlo?
Este comentario fue minimizado por el moderador en el sitio
Hola, he seguido los pasos varias veces pero los colores no aparecen en absoluto.
Este comentario fue minimizado por el moderador en el sitio
¡Gracias por proporcionar esto, es muy útil! Sin embargo, me he encontrado con un error. Cuando creo una nueva fila en la tabla debajo de una celda que tenía la lista desplegable, copia el color de la celda anterior en esta celda sin la lista desplegable. Si luego copio y pego la lista desplegable y cambio la opción, no cambia el color de la celda. ¿Alguien puede ayudar?
Este comentario fue minimizado por el moderador en el sitio
Hola,

Traté de crear dos listas desplegables de códigos de color en una plantilla de Word, sin embargo, aparece un mensaje de error que dice "Nombre ambiguo detectado: Document_ContentControON EXIT". ¿Podría informarme qué he hecho mal?




Subdocumento privado_ContentControlOnExit(ByVal ContentControl como ContentControl, Cancelar como booleano)

Con ContentControl.Range

Si ContentControl.Title = "Acción correctiva" Entonces

Seleccionar caso .Texto

Caso "Acción correctiva necesaria"

.Cells(1).Shading.BackgroundPatternColor = wdColorRed

Caso "No se necesitan más acciones"

.Cells(1).Shading.BackgroundPatternColor = wdColorGreen

Caso "Medida correctiva recomendada"

.Cells(1).Shading.BackgroundPatternColor = wdColorYellow

Caso Else

.Cells(1).Shading.BackgroundPatternColor = wdColorAutomatic

Fin Seleccionar

Si terminar

End With

End Sub

Subdocumento privado_ContentControlOnExit(ByVal ContentControl como ContentControl, Cancelar como booleano)

Con ContentControl.Range

Si ContentControl.Title = "Acción correctiva para cd" Entonces

Seleccionar caso .Texto

Caso "Usar una nueva curva Cd"

.Cells(1).Shading.BackgroundPatternColor = wdColorRed

Caso "Usar una curva Cd existente"

.Cells(1).Shading.BackgroundPatternColor = wdColorGreen

Caso "Comprobar la configuración y la sonda"

.Cells(1).Shading.BackgroundPatternColor = wdColorYellow

Caso Else

.Cells(1).Shading.BackgroundPatternColor = wdColorAutomatic

Fin Seleccionar

Si terminar

End With


Muchas gracias de antemano por su apoyo.
Este comentario fue minimizado por el moderador en el sitio
Hola, muchas gracias por esto. ¿Cómo incorporo el código para cambiar el color de la fuente según la selección de la lista desplegable?
Este comentario fue minimizado por el moderador en el sitio
el código de publicación original funcionó muy bien, pero quiero *** en otro cuadro desplegable, cuando intento y *** el mismo código en VB con un cambio en el valor en la sección "estado" de la siguiente línea:
Si ContentControl.Title = "Estado" Entonces
¿No funciona?
Este comentario fue minimizado por el moderador en el sitio
Hola, joni, si hay dos o más tablas de listas desplegables, solo necesita copiar y pegar el código a continuación en el código original y cambiar la referencia del texto según sus necesidades.
Si ContentControl.Title = "Estado" Entonces
Seleccionar caso .Texto
Caso "Completo"
.Cells(1).Shading.BackgroundPatternColor = wdColorRed
Caso "En Progreso"
.Cells(1).Shading.BackgroundPatternColor = wdColorGreen
Caso "No arranca"
.Cells(1).Shading.BackgroundPatternColor = wdColorBlue
Caso Else
.Cells(1).Shading.BackgroundPatternColor = wdColorAutomatic
Fin Seleccionar
Si terminar


El código completo debería ser este: Subdocumento privado_ContentControlOnExit(ByVal ContentControl como ContentControl, Cancelar como booleano)
Con ContentControl.Range
Si ContentControl.Title = "Estado" Entonces
Seleccionar caso .Texto
Caso "Completo"
.Cells(1).Shading.BackgroundPatternColor = wdColorRed
Caso "En Progreso"
.Cells(1).Shading.BackgroundPatternColor = wdColorGreen
Caso "No arranca"
.Cells(1).Shading.BackgroundPatternColor = wdColorBlue
Caso Else
.Cells(1).Shading.BackgroundPatternColor = wdColorAutomatic
Fin Seleccionar
Si terminar
Si ContentControl.Title = "Nombre" Entonces
Seleccionar caso .Texto
Caso "Lucía"
.Cells(1).Shading.BackgroundPatternColor = wdColorOrange
Caso "Skyyang"
.Cells(1).Shading.BackgroundPatternColor = wdColorYellow
Caso "Rubí"
.Cells(1).Shading.BackgroundPatternColor = wdColorBlue
Caso Else
.Cells(1).Shading.BackgroundPatternColor = wdColorAutomatic
Fin Seleccionar
Si terminar
End With
End SubPor favor intente, ¡espero que pueda ayudarlo!
Este comentario fue minimizado por el moderador en el sitio
Esto funcionó fantástico, gracias por su ayuda.
También estoy tratando de encontrar un método para lo siguiente:
Tengo dos celdas que tienen un valor numérico. En una celda separada, quiero multiplicar estos valores, si el resultado cae dentro de tres rangos numéricos establecidos, me gustaría que la celda muestre texto basado en los valores del rango.
Si la gravedad del riesgo de un peligro es 3
Este comentario fue minimizado por el moderador en el sitio
Esto fue muy útil y lo implementé con éxito. Me pregunto cómo puedo cambiar también el color del texto en la misma fila. Ya cambié el color de fondo. P.ej. el color de la fila de fondo es rojo, pero quiero que el texto sea blanco, no negro.
Este comentario fue minimizado por el moderador en el sitio
Impresionante instrucción - ¡funcionó perfectamente! ¡Gracias!
Este comentario fue minimizado por el moderador en el sitio
Hola,
¿Puede codificar con colores la siguiente columna, en lugar de la columna de la lista desplegable? Por ejemplo, no hay código de color en la columna "Estado" (solo opciones), pero ¿código de color en la columna adyacente? Gracias.
Este comentario fue minimizado por el moderador en el sitio
Puedo hacer que los colores funcionen con la lista desplegable, pero solo después de hacer clic en la etiqueta "estado". ¿Puede desaparecer la etiqueta de estado? Como creo que no se ve bien cuando se completa el documento
No hay comentarios publicados aquí todavía
Ver más
Deje sus comentarios
Publicar como invitado
×
Califica esta publicación:
0   Personajes
Ubicaciones sugeridas

Seguinos

Copyright © 2009 - www.extendoffice.com. | Reservados todos los derechos. Energizado por ExtendOffice, | Mapa del Sitio
Microsoft y el logotipo de Office son marcas comerciales o marcas comerciales registradas de Microsoft Corporation en los Estados Unidos y / o en otros países.
Protegido por Sectigo SSL