Es muy fácil obtener el listado de los formatos de celdas personalizadas con el botón derecho del ratón y click en "Formato de celdas..." como se ve en la imagen:
Lo que no es tan fácil es que ese listado se obtenga en Excel. Lo único que he encontrado en la Web es:
Basándome en la idea expuesta en el texto del enlace, por Leo Heuser, he conseguido la siguiente macro que proporciona una solución para la falta flagrante de accesibilidad en VBA para manipular los formatos de número personalizados. Para ello, se hackea el cuadro de diálogo "Formato de celdas" con la función SendKeys. Espero que os guste.
Option Explicit
Sub ListaFormatosPersonalizados()
Dim GuardaFormato As Variant
Dim Contador As Long
Dim sCelda As String
sCelda = "B1" 'Buffer de la celda auxiliar
If MsgBox("Obtiene la lista de los formatos personalizados", vbOKCancel) _
= vbCancel Then Exit Sub
With Worksheets.Add
.Move after:=Worksheets(Worksheets.Count)
.Name = "FormatosPersonalizados"
.Activate
End With
With Range("A1")
.Value = "Lista de los formatos personalizados"
.Font.Bold = True
Range(sCelda).Select
.Offset(1, 0).Value = Range(sCelda).NumberFormatLocal
Contador = 2
Do
GuardaFormato = Range(sCelda).NumberFormatLocal
SendKeys "{tab 3}{down}{enter}"
Application.Dialogs(xlDialogFormatNumber).Show GuardaFormato
.Offset(Contador, 0).Value = Range(sCelda).NumberFormatLocal
Contador = Contador + 1
Loop Until Range(sCelda).NumberFormatLocal = GuardaFormato
.Offset(Contador - 1, 0).Value = ""
End With
With Range("A1:A" & Contador - 1)
.EntireColumn.AutoFit
.HorizontalAlignment = xlLeft
.NumberFormat = "@"
End With
MsgBox "Nº de formatos personalizados = " & Contador - 2
End Sub
[/CODE]
Con la que se obtiene la lista deseada en la hoja "FormatosPersonalizados":
[TABLE=width: 340]
[TR]
[TD][b]Lista de los formatos personalizados[/b][/TD]
[/TR]
[TR]
[TD]Estándar[/TD]
[/TR]
[TR]
[TD]0[/TD]
[/TR]
[TR]
[TD]0,00[/TD]
[/TR]
[TR]
[TD]#.##0[/TD]
[/TR]
[TR]
[TD]#.##0,00[/TD]
[/TR]
[/TABLE]
...
Featured Replies
Archivado
Este tema está ahora archivado y está cerrado a más respuestas.
Es muy fácil obtener el listado de los formatos de celdas personalizadas con el botón derecho del ratón y click en "Formato de celdas..." como se ve en la imagen:
Lo que no es tan fácil es que ese listado se obtenga en Excel. Lo único que he encontrado en la Web es:
[DBOX]http://www.j-walk.com/ss/excel/eee/eee007.txt[/DBOX]
Basándome en la idea expuesta en el texto del enlace, por Leo Heuser, he conseguido la siguiente macro que proporciona una solución para la falta flagrante de accesibilidad en VBA para manipular los formatos de número personalizados. Para ello, se hackea el cuadro de diálogo "Formato de celdas" con la función SendKeys. Espero que os guste.
Con la que se obtiene la lista deseada en la hoja "FormatosPersonalizados":
[TABLE=width: 340]
[TR]
[TD][b]Lista de los formatos personalizados[/b][/TD]
[/TR]
[TR]
[TD]Estándar[/TD]
[/TR]
[TR]
[TD]0[/TD]
[/TR]
[TR]
[TD]0,00[/TD]
[/TR]
[TR]
[TD]#.##0[/TD]
[/TR]
[TR]
[TD]#.##0,00[/TD]
[/TR]
[/TABLE]
...