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

Liste des polices

21 réponses
Avatar
please-no-spam-jm.velo
Bonjour,

Existe t'il un moyen de lister les polices utilisées dans un classeur,
et/ou éventuellement de remplacer une police par une autre dans tout
le classeur ?

(Manip dans Excel ou par VBA)

D'avance Merci

Jean-Marc VELO
CHAMPAGNE INFORMATIQUE

10 réponses

1 2 3
Avatar
Frédéric Sigonneau
Ave AV,

L'aide d'Excel 2002 indique bien que l'objet Characters possède bien une
propriété Count... Comme ça ne passe pas chez toi, il se peut bien que cela ait
été, en son temps, une nouveauté d'Excel 2002 :)
Avec ta proposition, le reste du code s'exécute sans problème ?

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Ave FS,

Perso, (xl2000) cette ligne :
"For i = 1 To cell.Characters.Count"
me renvoie (logiquement ce me semble) une erreur !

Ne vaudrait-il pas mieux :
"For i = 1 To Len(cell)" ?

AV


Avatar
Denis Michon
Bonjour Frédéric,


T = Range("A1").Characters.count n'est pas applicable à excel 2002 pour obtenir le nombre de caractères dans une
cellule.

S = Range("A1").Characters N'est pas applicable pour retrouver dans la variable S la chaîne de caractères dans la
cellule A1.


Lorsque "Characters" est associé à un objet Range, Characters est une propriété de l'objet Range qui renvoie ( on
devrait plutôt dire délimite parce qu'elle ne renvoie rien dans une variable par exemle) une plage de caractères que
contient cette cellule. Cette plage est définie par les paramètres Start , Length.

RAnge("A1").Characters(Start, Length)

En passant par la propriété "Characters", nous avons accès à une étendue de caractères auxquelles il est possible
d'appliquer un format couleur, police ... comme dans l'exemple suivant :

with RAnge("A1").Characters(5, 8)
.font.bold=true
.font.name = "Arial"
.font.size = 14
.font.indexcolor = 25
end with

Pour obtenir le nombre de caractères d'une cellule, il y a comme AV l'a dit, la fonction Len(Range("A1"))


Pour pouvoir utiliser "Characters" comme une méthode, il faut l'utiliser avec l'objet "TextFrame". C'est seulement
lorsque "Characters" est utilsé comme méthode que l'on peut lui associé la méthode "Count", Comme dans l'exemple suivant
:

Une zone de texte dans la feuille1

Worksheets("Feuil1").Shapes("Zone de texte 1").TextFrame.Characters.Count


Et maintenant 2 façons d'évaluer le nombre de caractères contenu dans un commentaire. Selon la façon dont on définit le
même objet (dans ce cas c'est un commentaire ) la procédure va être différente :

' La méthode characters n'est pas disponible ,

Dim g As COMMENT, r As Integer
Set g = Range("A1").Comment
r = Len(g.Text)

' La méthode characters est disponible
Dim A As TEXTBOX, Nb As Integer
Set A = Range("A1").Comment.Shape.OLEFormat.Object
Nb = A.Characters.Count

Dim g As SHAPE, r As Integer
Set g = Range("A1").Comment.Shape
r = g.OLEFormat.Object.Characters.Count


Salutations!








"Frédéric Sigonneau" a écrit dans le message de news:
Ave AV,

L'aide d'Excel 2002 indique bien que l'objet Characters possède bien une
propriété Count... Comme ça ne passe pas chez toi, il se peut bien que cela ait
été, en son temps, une nouveauté d'Excel 2002 :)
Avec ta proposition, le reste du code s'exécute sans problème ?

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Ave FS,

Perso, (xl2000) cette ligne :
"For i = 1 To cell.Characters.Count"
me renvoie (logiquement ce me semble) une erreur !

Ne vaudrait-il pas mieux :
"For i = 1 To Len(cell)" ?

AV


Avatar
Frédéric Sigonneau
Bonsoir Denis,


T = Range("A1").Characters.count n'est pas applicable à excel 2002 pour obtenir le nombre de caractères dans une
cellule.


Bien sûr que si !!! En tout cas sur ma version d'Excel (2002 basique sans SP ni
rien) !
Cette petite proc donne les résultats attendus :

Sub test()
T = Range("A1").Characters.Count
MsgBox T
End Sub

D'ailleurs, quand je saisis le point après Range("A1") Characters fait partie
des choix proposés...

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !

S = Range("A1").Characters N'est pas applicable pour retrouver dans la variable S la chaîne de caractères dans la
cellule A1.

Lorsque "Characters" est associé à un objet Range, Characters est une propriété de l'objet Range qui renvoie ( on
devrait plutôt dire délimite parce qu'elle ne renvoie rien dans une variable par exemle) une plage de caractères que
contient cette cellule. Cette plage est définie par les paramètres Start , Length.

RAnge("A1").Characters(Start, Length)

En passant par la propriété "Characters", nous avons accès à une étendue de caractères auxquelles il est possible
d'appliquer un format couleur, police ... comme dans l'exemple suivant :

with RAnge("A1").Characters(5, 8)
.font.bold=true
.font.name = "Arial"
.font.size = 14
.font.indexcolor = 25
end with

Pour obtenir le nombre de caractères d'une cellule, il y a comme AV l'a dit, la fonction Len(Range("A1"))

Pour pouvoir utiliser "Characters" comme une méthode, il faut l'utiliser avec l'objet "TextFrame". C'est seulement
lorsque "Characters" est utilsé comme méthode que l'on peut lui associé la méthode "Count", Comme dans l'exemple suivant
:

Une zone de texte dans la feuille1

Worksheets("Feuil1").Shapes("Zone de texte 1").TextFrame.Characters.Count

Et maintenant 2 façons d'évaluer le nombre de caractères contenu dans un commentaire. Selon la façon dont on définit le
même objet (dans ce cas c'est un commentaire ) la procédure va être différente :

' La méthode characters n'est pas disponible ,

Dim g As COMMENT, r As Integer
Set g = Range("A1").Comment
r = Len(g.Text)

' La méthode characters est disponible
Dim A As TEXTBOX, Nb As Integer
Set A = Range("A1").Comment.Shape.OLEFormat.Object
Nb = A.Characters.Count

Dim g As SHAPE, r As Integer
Set g = Range("A1").Comment.Shape
r = g.OLEFormat.Object.Characters.Count

Salutations!

"Frédéric Sigonneau" a écrit dans le message de news:
Ave AV,

L'aide d'Excel 2002 indique bien que l'objet Characters possède bien une
propriété Count... Comme ça ne passe pas chez toi, il se peut bien que cela ait
été, en son temps, une nouveauté d'Excel 2002 :)
Avec ta proposition, le reste du code s'exécute sans problème ?

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Ave FS,

Perso, (xl2000) cette ligne :
"For i = 1 To cell.Characters.Count"
me renvoie (logiquement ce me semble) une erreur !

Ne vaudrait-il pas mieux :
"For i = 1 To Len(cell)" ?

AV




Avatar
Denis Michon
Bonsoir Frédéric,

Oups !!! Tu as raison Frédéric, en faisant mon petit test, la feuille active n'était pas la bonne !!! ;-))

Toutes mes excuses.

Pendant qu'on y est :

Sans égard au nombre de caractères (même vide) contenus dans la cellule A1

ww = Range("A1").Characters(2, 5).Count renvoie ww = 1

ww = Range("A1:A2").Characters(2, 5).Count renvoie ww = 2


Dans ce cas particulier, la méthode "Count" décompte quoi ?
Quelle interprétation donnée à la variable WW ?


Merci de ta collaboration.


Salutations!




"Frédéric Sigonneau" a écrit dans le message de news:
Bonsoir Denis,


T = Range("A1").Characters.count n'est pas applicable à excel 2002 pour obtenir le nombre de caractères dans une
cellule.


Bien sûr que si !!! En tout cas sur ma version d'Excel (2002 basique sans SP ni
rien) !
Cette petite proc donne les résultats attendus :

Sub test()
T = Range("A1").Characters.Count
MsgBox T
End Sub

D'ailleurs, quand je saisis le point après Range("A1") Characters fait partie
des choix proposés...

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !

S = Range("A1").Characters N'est pas applicable pour retrouver dans la variable S la chaîne de caractères dans la
cellule A1.

Lorsque "Characters" est associé à un objet Range, Characters est une propriété de l'objet Range qui renvoie ( on
devrait plutôt dire délimite parce qu'elle ne renvoie rien dans une variable par exemle) une plage de caractères que
contient cette cellule. Cette plage est définie par les paramètres Start , Length.

RAnge("A1").Characters(Start, Length)

En passant par la propriété "Characters", nous avons accès à une étendue de caractères auxquelles il est possible
d'appliquer un format couleur, police ... comme dans l'exemple suivant :

with RAnge("A1").Characters(5, 8)
.font.bold=true
.font.name = "Arial"
.font.size = 14
.font.indexcolor = 25
end with

Pour obtenir le nombre de caractères d'une cellule, il y a comme AV l'a dit, la fonction Len(Range("A1"))

Pour pouvoir utiliser "Characters" comme une méthode, il faut l'utiliser avec l'objet "TextFrame". C'est seulement
lorsque "Characters" est utilsé comme méthode que l'on peut lui associé la méthode "Count", Comme dans l'exemple
suivant

:

Une zone de texte dans la feuille1

Worksheets("Feuil1").Shapes("Zone de texte 1").TextFrame.Characters.Count

Et maintenant 2 façons d'évaluer le nombre de caractères contenu dans un commentaire. Selon la façon dont on définit
le

même objet (dans ce cas c'est un commentaire ) la procédure va être différente :

' La méthode characters n'est pas disponible ,

Dim g As COMMENT, r As Integer
Set g = Range("A1").Comment
r = Len(g.Text)

' La méthode characters est disponible
Dim A As TEXTBOX, Nb As Integer
Set A = Range("A1").Comment.Shape.OLEFormat.Object
Nb = A.Characters.Count

Dim g As SHAPE, r As Integer
Set g = Range("A1").Comment.Shape
r = g.OLEFormat.Object.Characters.Count

Salutations!

"Frédéric Sigonneau" a écrit dans le message de news:
Ave AV,

L'aide d'Excel 2002 indique bien que l'objet Characters possède bien une
propriété Count... Comme ça ne passe pas chez toi, il se peut bien que cela ait
été, en son temps, une nouveauté d'Excel 2002 :)
Avec ta proposition, le reste du code s'exécute sans problème ?

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Ave FS,

Perso, (xl2000) cette ligne :
"For i = 1 To cell.Characters.Count"
me renvoie (logiquement ce me semble) une erreur !

Ne vaudrait-il pas mieux :
"For i = 1 To Len(cell)" ?

AV




Avatar
AV
Re,

Avec ta proposition, le reste du code s'exécute sans problème ?


Tout à fait : aucune erreur d'exécution

AV

Avatar
AV
Re, re

Sub test()
T = Range("A1").Characters.Count
MsgBox T
End Sub


Le test est surprenant avec XL2000 :
Cas de figures :
A1 vide --> réponse : 0 --> OK
A1 contient "abcd" --> réponse : 4 --> OK
A1 contient "Paul6" --> réponse : 5 --> OK
A1 contient "123" --> réponse : erreur 1004 !

Moralité : ça ne compte que l'alphanum !

AV

Avatar
Denis Michon
Bonsoir AV,

Ouff ! J'ai obtiens les mêmes résultats que toi avec Excel 2002.

C'est donc des demi excuses que je devrais à Frédéric ? ;-))

Me semblait que je n'avais pas rêvé ! Même s'il m'arrive d'être très distrait !


Salutations!



"AV" a écrit dans le message de news:bmvik4$t46$
Re, re

Sub test()
T = Range("A1").Characters.Count
MsgBox T
End Sub


Le test est surprenant avec XL2000 :
Cas de figures :
A1 vide --> réponse : 0 --> OK
A1 contient "abcd" --> réponse : 4 --> OK
A1 contient "Paul6" --> réponse : 5 --> OK
A1 contient "123" --> réponse : erreur 1004 !

Moralité : ça ne compte que l'alphanum !

AV

Avatar
AV
C'est donc des demi excuses que je devrais à Frédéric ? ;-))
Ou lui qui t'en doit des demies ! ;-))

A moitié vide ou à moitié plein ?

Ouff ! J'ai obtiens les mêmes résultats que toi avec Excel 2002.
Me semblait que je n'avais pas rêvé !


Ben j'ai eu aussi qques doutes car, si par hasard (ce qui a été le cas), tu
testes qu'avec de l'alphanum tout va bien et le lendemain une petite valeur num
qui traine et plouf !
C'est là que tu demandes si t'as pas berluré ...jusqu'à ce que...

AV

Avatar
Denis Michon
Bonsoir AV,

J'ai vérifié dans l'aide et elle révèle ceci à propos de l'objet Characters :

Voici un copier-coller .... et la définition est cohérente avec les résultats des tests effectués que tu as effectués.
J'avoue sincèrement n'avoir jamais porté attention à cette nuance ... ;-)

'------------------------------
Characters, objet

Voir aussi Propriétés Méthodes Événements Spécificités
Objets multiples
Characters
Font

Cet objet représente les caractères d'un objet contenant du TEXTE. L'objet Characters permet de modifier toute séquence
de caractères contenue dans une chaîne de texte.
'------------------------------


Salutations!



"AV" a écrit dans le message de news:bmvoea$6mj$
C'est donc des demi excuses que je devrais à Frédéric ? ;-))
Ou lui qui t'en doit des demies ! ;-))

A moitié vide ou à moitié plein ?

Ouff ! J'ai obtiens les mêmes résultats que toi avec Excel 2002.
Me semblait que je n'avais pas rêvé !


Ben j'ai eu aussi qques doutes car, si par hasard (ce qui a été le cas), tu
testes qu'avec de l'alphanum tout va bien et le lendemain une petite valeur num
qui traine et plouf !
C'est là que tu demandes si t'as pas berluré ...jusqu'à ce que...

AV

Avatar
sabatier
tout à fait, denis, tout à fait...
jps

Denis Michon wrote:

Bonsoir AV,

Ouff ! J'ai obtiens....

Même s'il m'arrive d'être très distrait !



1 2 3