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

Preguntas similare

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
Respuesta Responder a este mensaje
#2 anloja365
13/05/2004 - 17:06 | Informe spam
msfromuy wrote:

Gracias Héctor M.,
està¡ claro que no es bueno pedirle funciones de procesador de txt a xls,


pero en esta ocasión se trata de un requerimiento del usuario, y tu sabes que
los usuarios son muy creativos. La opción de poner un char al inicio ya la
tenà­a en cuenta, lo que querà­a era algo del tipo "escritura continua y al
Ctrl Enter agregar una vià±eta y seguir creando las mismas en la misma celda.
Luego pruebo tu código, gracias.

Te tiro otra alternativa: copiar un bloque de texto con và­à±etas desde Word


y pegarlo en eXcel.
saludos
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida