Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA:Liste d'une police avec son numéro de caractère Chr()

7 réponses
Avatar
Emile63
Bonjour =C3=A0 tous,
Je cherche une petite proc=C3=A9dure qui liste dans une feuille Xl toutes l=
es occurences d'une police d'=C3=A9criture (boucle), afin de les identifier=
et pouvoir les r=C3=A9utiliser dans des cas sp=C3=A9cifiques.

' With Cells(1, 1)
' .Value =3D Chr(215)
' .Font.Name =3D "Segoe UI Symbol"
' End With=20

Dans le cas ci-dessus, toutes les valeurs existante, avec son caract=C3=A8r=
e respectif de la font Segoe UI Symbol.=20

Je vous remercie d'avance pour votre aide.
Emile

7 réponses

Avatar
MichD
Le 31/05/19 à 04:38, Emile63 a écrit :
Bonjour à tous,
Je cherche une petite procédure qui liste dans une feuille Xl toutes les occurences d'une police d'écriture (boucle), afin de les identifier et pouvoir les réutiliser dans des cas spécifiques.
' With Cells(1, 1)
' .Value = Chr(215)
' .Font.Name = "Segoe UI Symbol"
' End With
Dans le cas ci-dessus, toutes les valeurs existante, avec son caractère respectif de la font Segoe UI Symbol.
Je vous remercie d'avance pour votre aide.
Emile

Bonjour,
Attention, ce n'est qu'un exemple. Ta question ne spécifie pas ce que tu
veux faire avec les cellules qui correspondent à ce que tu cherches.
Prends le temps de lire la procédure et de l'adapter avant de la lancer!
'-------------------------------------
Sub TrouverFormat()
Dim Rg As Range, C As Range
Dim LeCellFormat As CellFormat
Set LeCellFormat = Application.FindFormat
'Détermine les caractéristiques
'du format de cellule recherché.
With LeCellFormat
.Clear 'S'assurer d'effacer les critères
'des anciennes recherches
.Font.Name = "Segoe UI Symbol"
'La liste pourrait être plus longue ...
End With
'Détermine la plage de cellules où s'effectue
'la recherche
With Worksheets("Feuil1") 'Nom de la feuille à définir
'si tu veux faire la recherche dans toute la feuille
Set Rg = .UsedRange
'Pour limiter la recherche à une colonne particulière
'Set Rg = .Range("A:A")
End With
Application.EnableEvents = False
Application.ScreenUpdating = False
'Trouve la cellule ayant le bon format pour
'y effectuer une ou des opérations quelconques...
With Rg
Set C = .Find(What:="", SearchFormat:=True)
If Not C Is Nothing Then
adr = C.Address
Do
'Le code que tu veux exécuter avec la cellule trouvée
'Copier le contenu de la cellule dans la cellule
'3 colonnes à droite
If C <> "" Then
C.Copy C.Offset(, 3)
End If
'pour passer à la cellule suivante ...
Set C = .Find(What:="", after:=C, SearchFormat:=True)
Loop Until C.Address = adr
End If
End With
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
'-------------------------------------
MichD
Avatar
Emile63
... Car avec la formule : R(LIGNE())
Ca s'arrête à 255 alors que certaines polices comptent bien plus de caractères.
Avatar
MichD
A ) Tu veux faire cela pour une plage de cellules ou seulement une cellule?
B ) Tu veux appliquer la procédure à chaque caractère d'une cellule de
la plage déterminée?
Par conséquent, pour le premier caractère d'une cellule, tu aurais en
colonne A, toutes les caractéristiques de ce caractère, la colonne B
avec le deuxième caractère...etc et ce pour chacune des cellules d'une
plage de cellules.
Énumère les caractéristiques que tu veux obtenir:
1 - Le caractère en question
B - Son code ASCII
C - Le nom de la police
D - La grosseur des caractères
E - Caractère gras ou non
F - Italique ou non
F - Souligné ou pas
G - Majuscule ou non
Est-ce que tu veux ajouter d'autres caractéristiques que tu veux
obtenir? Si oui, ajoute-les à la liste.
MichD
Avatar
MichD
Le 31/05/19 à 07:59, MichD a écrit :
A ) Tu veux faire cela pour une plage de cellules ou seulement une cellule?
B ) Tu veux appliquer la procédure à chaque caractère d'une cellule de
la plage déterminée?
Par conséquent, pour le premier caractère d'une cellule, tu aurais en
colonne A, toutes les caractéristiques de ce caractère, la colonne B
avec le deuxième caractère...etc et ce pour chacune des cellules d'une
plage de cellules.
Énumère les caractéristiques que tu veux obtenir:
1 - Le caractère en question
B - Son code ASCII
C - Le nom de la police
D - La grosseur des caractères
E - Caractère gras ou non
F - Italique ou non
F - Souligné ou pas
G - Majuscule ou non
Est-ce que tu veux ajouter d'autres caractéristiques que tu veux
obtenir? Si oui, ajoute-les à la liste.
MichD

Un fichier exemple ici :
https://www.cjoint.com/c/IEFmLHcARvj
Tu peux ajouter toutes les caractéristiques possibles pour un caractère
donné dans le code. Tu peux aussi effectuer une boucle sur une plage de
cellules.
MichD
Avatar
Jacquouille
re
Et ce qui est marrant dans ton fichier:
si je fais =code(a256 ) ...jusque code(650 et plus), j'obtiens 63 comme n°
de chr ... ????
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"Emile63" a écrit dans le message de groupe de discussion :
Bonsoir, Michel et Jacques,
Merci pour votre support.
J'ai ajouté un onglet au classeur avec ce que je souhaiterais et une
explication plus détaillée.
J'ai trouvé une macro (d'après Chip Pearson, mpep) qui fait à peu près ce
que je souhaitais mais n'arrive toujours pas au résultat escompté. :(
https://www.cjoint.com/c/IEFtgOJhcUN
Ca m'ennuie de ne pas arriver à générer ces caractères avec VBA
Je pourrais y arriver avec un copier / coller par le biais d'une cellule
intermédiaire, mais ce n'est pas très propre..
Avatar
MichD
Le 31/05/19 à 15:16, Emile63 a écrit :
Bonsoir, Michel et Jacques,
Merci pour votre support.
J'ai ajouté un onglet au classeur avec ce que je souhaiterais et une explication plus détaillée.
J'ai trouvé une macro (d'après Chip Pearson, mpep) qui fait à peu près ce que je souhaitais mais n'arrive toujours pas au résultat escompté. :(
https://www.cjoint.com/c/IEFtgOJhcUN
Ca m'ennuie de ne pas arriver à générer ces caractères avec VBA
Je pourrais y arriver avec un copier / coller par le biais d'une cellule intermédiaire, mais ce n'est pas très propre..

Certains caractères n'ont pas une représentation graphique dans la
feuille de calcul - Excel ou Word :
VBA.Constants Chr Comments
vbCr Chr(13) Carriage return character
vbLf Chr(10) Linefeed character
vbCrLf Chr(13) + Chr(10) Carriage return - linefeed combination
vbNewLine Chr(13) + Chr(10) New line character
vbNullChar Chr(0) Character having a value of 0.
vbNullString String having value 0 Not the same as a zero-length string
(""); used for calling external procedures.
Cannot be passed to any DLL's
vbTab Chr(9) Tab character
vbBack Chr(8) Backspace character
vbFormFeed Chr(12) Word VBA Manual - manual page break ?
vbVerticalTab Chr(11) Word VBA Manual - manual line break (Shift + Enter)
Le caractère "2" (Code(2) n'a pas une représentation graphique dans
Excel. Je ne saurais te dire à quoi il sert. Regarde à cette adresse :
http://www.vbforums.com/showthread.php?186046-How-to-declare-a-Const-Chr(2)
MichD
Avatar
Emile63
Bonjour,
bien, comme apparament y'a pas vraiment de solutions, j'ai opté pour u n discret copier/coller avec VBA, et le caractère est correctement rep ris.
Je vous remercie tous pour votre aide et vous souhaite un très bon wee k-end. ;)
Emile