Saltar al contenido

Formato de celda reflejado en macro vba


Omar M.

Recommended Posts

publicado

Buenas!!! De nuevo acudiendo por ayuda, quisiera saber si existe alguna manera de que el formato que tiene una celda en una hoja de excel se vea reflejado en una macro VBA, por ejemplo: si una celda tiene el fondo de color amarillo y el texto de color rojo, al ejecutar la macro y busqué este dato se vea reflejado el mismo formato de color de fondo y color de texto

publicado

'

Suponiendo que quieras obtener/establecer colores y fuente de la ceda B12, por ejemplo:


Range("B12").Select
Relleno = Activecell.InteriorColor
Fuente = Activecell.Font.Name
ColorTexto = Activecell.Font.Color
Tamaño = Activecell.Font.Size[/CODE]

'

publicado

Fijate que tengo una macro que me busca los datos de una persona y me los refleja en el formulario de VBA pero hay algunas celdas que tienen establecidos ciertos colores de fondo, pero no siempre es la misma celda, ya que varía dependiendo la persona que elijó para la busqueda, te adjunto un archivo para que veas un ejemplo, ojalá me puedas ayudar....

Dropbox - Control de Pagos.xlsm

publicado

Para no tener que subir el archivo entero, te dejo solo el procedimiento que he modificado.

Private Sub Estudiante_Change()
If Estudiante.ListIndex = -1 Then 'No existe el estudiante
Curso = Empty
Horario = Empty
Saldo = Empty
For y = 5 To 55
Controls("Pago" & y).Value = Empty
Controls("Pago" & y).BackColor = vbWhite
Controls("Pago" & y).ForeColor = vbBlack
Next
Else
x = Estudiante.ListIndex + 4
Curso = Hoja2.Range("A" & x)
Horario = Hoja2.Range("B" & x)
Saldo = Hoja2.Range("D" & x)
For y = 5 To 55
Controls("Pago" & y).Value = Hoja2.Cells(x, y).Value
Controls("Pago" & y).BackColor = Hoja2.Cells(x, y).Interior.Color
Controls("Pago" & y).ForeColor = Hoja2.Cells(x, y).Font.Color
Next
End If
End Sub
[/CODE]

publicado
Para no tener que subir el archivo entero, te dejo solo el procedimiento que he modificado.

Private Sub Estudiante_Change()
If Estudiante.ListIndex = -1 Then 'No existe el estudiante
Curso = Empty
Horario = Empty
Saldo = Empty
For y = 5 To 55
Controls("Pago" & y).Value = Empty
Controls("Pago" & y).BackColor = vbWhite
Controls("Pago" & y).ForeColor = vbBlack
Next
Else
x = Estudiante.ListIndex + 4
Curso = Hoja2.Range("A" & x)
Horario = Hoja2.Range("B" & x)
Saldo = Hoja2.Range("D" & x)
For y = 5 To 55
Controls("Pago" & y).Value = Hoja2.Cells(x, y).Value
Controls("Pago" & y).BackColor = Hoja2.Cells(x, y).Interior.Color
Controls("Pago" & y).ForeColor = Hoja2.Cells(x, y).Font.Color
Next
End If
End Sub
[/CODE]

Muchas gracias por la ayuda, solo una duda más y si el formato de la celda lo coloca la función de "Formato Condicional" ¿Funcionaría igual?

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.