"Analyser" les polices disponibles

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

dionys0s

XLDnaute Impliqué
Bonjour tout le monde,

comme le stipule le titre, je cherche à analyser les polices disponibles dans Excel.

J'ai déjà ce qu'il me faut pour toutes les lister (cf. classeur joint). Ce que j'aimerais, c'est pouvoir exclure de cette liste toutes celles qui s'affichent mal (les polices chinoises ou bizarres par exemple...) et ne seraient donc pas "recommandées" à un utilisateur.

D'avance merci pour votre aide 🙂

(Il n'y a plus la possibilité d'utiliser les balises [Highlights=VBA] / [Highlights] ?)
 

Pièces jointes

Bonjour,

edit: oups pas vu que tu avais déjà cela.. mais je laisse si qq un en a besoin 🙂
ceci devrait convenir pour afficher toutes les polices dispo 🙂

VB:
Option Explicit

Sub ListePolices()    ' toutes les polices avec un exemple
Dim i, x
Application.ScreenUpdating = False
Sheets.Add
With Application.CommandBars.FindControl(ID:=1728)
  For x = 1 To .ListCount
    Cells(x, 1).Value = "Mon tailleur est pauvre"
    Cells(x, 1).Font.name = .List(x)
    Cells(x, 2) = Cells(x, 1).Font.name
    Cells(x, 1).Font.Size = 12
  Next
End With
End Sub
 
Re,

Si vraiment on est un gros flemmard :
Code:
Sub SupprimerPolices()
Dim t, exclu, ub As Byte, i&, x$, j As Byte, n&
With Wks4.[A1].CurrentRegion.Resize(, 3)
  .Columns(3) = ""
  t = .Value
  exclu = Array("Bookshelf*", "Marlett", "MS Reference Specialty", "MT*", "Webdings", "Wingdings*")
  ub = UBound(exclu)
  For i = 1 To UBound(t)
    x = t(i, 1)
    For j = 0 To ub
      If x Like exclu(j) Then t(i, 3) = " " '= 1 si on veut les voir
    Next
    x = UCase(Replace(Replace(Replace(Replace(Replace(x, " ", ""), ".", ""), ":", ""), "-", ""), "_", ""))
    For j = 48 To 57 'chiffres
      x = Replace(x, Chr(j), "")
    Next
    For j = 65 To 90 'lettres majuscules
      x = Replace(x, Chr(j), "")
    Next
    If x <> "" Then t(i, 3) = " " '= 1 si on veut les voir
  Next
  .Value = t
  On Error Resume Next
  With .Columns(3).SpecialCells(xlCellTypeConstants)
    n = .Count
    .EntireRow.Delete
  End With
End With
MsgBox n & " police(s) supprimée(s)..."
End Sub
A+
 
Dernière édition:
Bonjour

Excel utilise toutes les polices installées dans Windows : supprimer les polices peut gêner celui qui les utilise ailleurs que dans Excel et même mettre le souk dans Windows.
Je me souviens de suppressions qui se sont répercutées sur tous les affichages de Windows alors devenus illisibles.

On peut espérer que c'est mieux géré aujourd'hui mais comme des bugs datant du DOS réapparaissent de temps en temps, je ferais preuve de prudence...

Par ailleurs Arial unicode contient les caractères chinois, japonais etc...
 
Oui je ne comptais pas procéder par désinstallation de polices. Juste me résigner...

Par ailleurs, question qui n'apportera pas grand chose au schmilblick, mais pour satisfaire ma curiosité, dans la ligne de code suivante :
Code:
Application.CommandBars.FindControl(ID:=1728)
Quelqu'un saurait m'expliquer d'où sort le 1728 ? Qui l'a trouvé ? Où ? Quand ? Comment ? Pourquoi ? Quand est-ce qu'on mange ?
J'ai parcouru les constantes mso, impossible de trouver la valeur 1728... et ça me tarabuste.

La bonne fin de journée à tous.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour