"Analyser" les polices disponibles

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

  • Polices.xlsm
    283.8 KB · Affichages: 88

gosselien

XLDnaute Barbatruc
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
 

job75

XLDnaute Barbatruc
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:

chris

XLDnaute Barbatruc
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...
 

dionys0s

XLDnaute Impliqué
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:

Statistiques des forums

Discussions
312 088
Messages
2 085 201
Membres
102 816
dernier inscrit
bolivier