Viñetas en Excel

30/04/2004 - 22:58 por msfromuy | Informe spam
Hola a todos,
estoy intentando crear un texto tipo viñetas en una celda,
alguien tiene alguna idea que me pueda ayudar al respecto?
saludos
 

Leer las respuestas

#1 Héctor Miguel
01/05/2004 - 11:34 | Informe spam
hola !

... crear un texto tipo viñetas ... alguna idea ... al respecto?



no es muy comun 'pedirle' a excel que haga labores 'propias' de un procesador de textos :))
- una alternativa es usando la aplicacion [de windows] 'mapa de caracteres'
- otra [pudiera ser] combinando {Alt}+teclado_numerico [p.e. {Alt}+0187 = »] =>segun la fuente<- otra [seria] seleccionando un[os] carcter[es] inicial[es] de la celda y aplicarles una fuente -p.e.- Wingding-
- una mas... los ejemplos por macros que te expongo al final ;)

saludos,
hector.
== son una serie de procedimientos que podrias usar +/- como sigue: =-> seleccionas un rango de celdas =>con textos<= y ejecutas la macro
te 'ofrece' hasta 3 'niveles de indentacion' [o... 4, si dejas el primero SIN 'viñetas']
los procedimientos 'privados' =>requieren<= algunos parmetros:
puedes 'pasarlos' [directamente] a las macros... o 'hacer referencia' a celdas que los 'contengan' ;)
=> los parametros [que use] son:
Accion [cadena de texto] => "Aplicar" o... "Quitar"
Tipo [cadena de texto] => [3 tipos de viñetas]: "Sol" o... "Objetivo" o... "Marca" [por 'omision' aplica el 1°]
QuitarTodo [booleano] => True o False... [0 o 1] [por 'omision' es False]
=> si usas [como accion] "quitar" y NO especificas 'True' [para 'QuitarTodo'] =>'suben de nivel' :))
'mejor'... corre pruebas y... ¿comentas?
en un modulo de codigo 'normal' ==Dim Celda As Range
Sub Viñetas()
' AplicarViñetas "Aplicar", "Objetivo"
AplicarViñetas [a1], [b1], [c1]
End Sub
Private Sub AplicarViñetas( _
ByVal Accion As String, _
Optional ByVal Tipo As String = "sol", _
Optional ByVal QuitarTodo As Boolean = False)
Dim Viñeta As String: Application.ScreenUpdating = False
Select Case LCase(Tipo)
Case "objetivo": Viñeta = "¤"
Case "marca": Viñeta = "þ"
Case Else: Viñeta = "®"
End Select
Select Case LCase(Accion)
Case "aplicar": Aplicar Viñeta
Case "quitar"
If QuitarTodo Then RetirarViñetas Else NivelAnterior
End Select
End Sub
Private Sub Aplicar(ByVal Viñeta As String)
For Each Celda In Selection
If Application.IsText(Celda) And Not Celda.HasFormula Then
Select Case Left(Celda, 6)
Case " --® ", " --¤ ", " --þ ", " -" & Viñeta & " "
Celda = " --" & Viñeta & " " & Mid(Celda, 7)
Celda.Characters(5, 1).Font.Name = "Wingdings"
Case " -® ", " -¤ ", " -þ ", " " & Viñeta & " "
Celda = " -" & Viñeta & " " & Mid(Celda, 7)
Celda.Characters(4, 1).Font.Name = "Wingdings"
Case " ® ", " ¤ ", " þ "
Celda = " " & Viñeta & " " & Mid(Celda, 7)
Celda.Characters(3, 1).Font.Name = "Wingdings"
Case Else
Celda = " " & Viñeta & " " & Celda
Celda.Characters(3, 1).Font.Name = "Wingdings"
End Select: End If: Next
End Sub
Private Sub RetirarViñetas()
For Each Celda In Selection
If Application.IsText(Celda) And Not Celda.HasFormula Then
If Left(Celda, 2) = " " And Mid(Celda, 6, 1) = " " Then
Celda = Mid(Celda, 7)
End If: End If: Next
End Sub
Private Sub NivelAnterior()
For Each Celda In Selection
If Application.IsText(Celda) And Not Celda.HasFormula Then
Select Case Left(Celda, 6)
Case " --® ": Celda = " -® " & Mid(Celda, 7)
Celda.Characters(4, 1).Font.Name = "Wingdings"
Case " -® ": Celda = " ® " & Mid(Celda, 7)
Celda.Characters(3, 1).Font.Name = "Wingdings"
Case " ® ": Celda = Mid(Celda, 7)
Case " --¤ ": Celda = " -¤ " & Mid(Celda, 7)
Celda.Characters(4, 1).Font.Name = "Wingdings"
Case " -¤ ": Celda = " ¤ " & Mid(Celda, 7)
Celda.Characters(3, 1).Font.Name = "Wingdings"
Case " ¤ ": Celda = Mid(Celda, 7)
Case " --þ ": Celda = " -þ " & Mid(Celda, 7)
Celda.Characters(4, 1).Font.Name = "Wingdings"
Case " -þ ": Celda = " þ " & Mid(Celda, 7)
Celda.Characters(3, 1).Font.Name = "Wingdings"
Case " þ ": Celda = Mid(Celda, 7)
End Select: End If: Next
End Sub

Preguntas similares