Saltar al contenido

Formato de celda reflejado en macro vba

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

Featured Replies

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
  • Autor

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
  • Autor
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?

publicado
  • Autor

Ok, esta bien, lo haré de forma manual, muchas gracias por tomarte el tiempo para ayudarme a solucionar mis dudas...

Archivado

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