[Résolu] Créer un style en VBA

  • Initiateur de la discussion Initiateur de la discussion TooFatBoy
  • Date de début Date de début

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 !

TooFatBoy

XLDnaute Barbatruc
Bonjour,

J'ai dénombré un total de pas moins de 53 paramètres différents (répartis dans 6 catégories) pour donner à une cellule le format désiré.

Je voudrais donc savoir si je suis obligé d'affecter un par un chacun des 53 paramètres qui me sont utiles pour créer un style, ou s'il est possible d'affecter à un style tous les paramètres de format d'une cellule en une seule instruction VBA.


Merci pour vos réponses à venir.
 
Dernière édition:
Re : Créer un style en VBA

Bonjour

La question est ambiguë : d'une part il existe des styles de cellules que l'on peut modifier ou on peut en créer d'autres. Ces styles ont applicables très facilement aux cellules manuellement ou par VBA.

On ne sait si tu évoques cette fonctionnalité Excel ou si tu utilises ce terme comme synonyme de format, look, aspect...

La définition d'un style par VBA nécessitera de préciser chaque paramètre sauf éventuellement ceux par défaut... mais comme on ignore si la cellule a une mise en forme de base ou pas, la notion de défaut...

A ma connaissance pas possible en une instruction.
 
Re : Créer un style en VBA

Merci Chris pour ta réponse. 🙂


Dans mon post précédent, j'ai utilisé le mot "format" pour parler des différents paramètres modifiables, et accessibles quand on fait un clic droit sur une cellule et qu'on sélectionne "Format de cellule".

J'ai utilisé le mot "style" pour parler des styles que l'on peut définir ou qui existent déjà dans Excel, et qui sont accessibles dans la catégorie "Style" du Ruban d'Excel.


La question est ambiguë : d'une part il existe des styles de cellules que l'on peut modifier ou on peut en créer d'autres. Ces styles ont applicables très facilement aux cellules manuellement ou par VBA.
C'est justement parce qu'ils sont facilement applicables aux cellules que je voudrais pouvoir créer mes propres styles et les affecter ensuite facilement aux cellules désirées. 😉


Pour préciser un peu plus mon problème, j'ajouterais que mon but est de créer un style 100 % identique au format d'une cellule donnée.

Je voudrais le faire en VBA pour que l'utilisateur ait juste à modifier le format de cette cellule ; ce qui entrainerait, de façon totalement transparente pour l'utilisateur, la modification du style "associé" à cette cellule.


Si ce n'est pas faisable en une seule instruction, alors je vais être obligé d'affecter chacun des 53 paramètres possibles de mise en forme d'une cellule, un par un au style à créer ou modifier.
 
Dernière édition:
Re : Créer un style en VBA

Bonjour Marcel, Chris🙂

Pour préciser un peu plus mon problème, j'ajouterais que mon but est de créer un style 100 % identique au format d'une cellule donnée.

pour cela essaye le code ci-dessous...
Code:
ThisWorkbook.Styles.Add "MonStyle", Range("A1")

enfin si j'ai bien compris ta demande...

bonne journée
@+
 
Dernière édition:
Re : Créer un style en VBA

Bonjour

Coucou Pierrot 😉: j'avais trouvé comment créer un style à partir de la forme d'une cellule mais pas comment modifier le style déjà appliqué à la cellule de façon simple.

On pourrait en recréer un et supprimer l'ancien mais s'il était appliqué à d'autres cellules (ce qui serait logique pour un style) cela ne va pas. Pour l'instant pas d'autre piste de mon côté.

Le côté "de façon totalement transparente pour l'utilisateur" me gêne car on risque de se retrouver, comme dans Word, avec 36000 variantes de style, ce qui va à l'encontre de l'intérêt des styles (dans Word dès qu'on modifie une mise en forme, une variante du style d'origine est générée automatiquement...).
 
Re : Créer un style en VBA

Re,
@Chris🙂
j'avais trouvé comment créer un style à partir de la forme d'une cellule mais pas comment modifier le style déjà appliqué à la cellule de façon simple.

peut être ceci :
Code:
ThisWorkbook.Styles("MonStyle").Font.Size = 24
Range("A1").Style = "MonStyle"

mais il y aura lieu de réappliquer le style à toutes les cellules en question pour que la modif soit prise en compte...
 
Re : Créer un style en VBA

Re

Si j'ai bien compris l'idée de Marcel c'est l'inverse : l'utilisateur change le format de la cellule et comme la cellule utilisait le style XYZ, le style XYZ doit être modifié pour correspondre au nouveau format de la cellule.

(Je ne sais si tu utilises Word, mais on peut, dans Word, modifier un style existant en fonction d'une mise en forme qui lui sert de modèle. Mais ceci est volontaire, contrairement aux styles dérivés qui se créent automatiquement et polluent...)
 
Re : Créer un style en VBA

pour cela essaye le code ci-dessous...
Code:
ThisWorkbook.Styles.Add "MonStyle", Range("A1")
Je ne dirais que trois mots : FA BU LEUX !!!!
Bon, j'ajouterais tout de même : Merci. 🙂

Et, cerise sur le gateau, ça semble beaucoup mieux fonctionner que l'affectation un par un des différents paramètres de mise en forme !...


J'avais pourtant essayé quelque chose dans ce genre avant de venir demander de l'aide.
Mais ça n'avait pas marché (probablement parce que ce n'était que "dans ce genre"...).
 
Re : Créer un style en VBA

Le côté "de façon totalement transparente pour l'utilisateur" me gêne car on risque de se retrouver, comme dans Word, avec 36000 variantes de style, ce qui va à l'encontre de l'intérêt des styles (dans Word dès qu'on modifie une mise en forme, une variante du style d'origine est générée automatiquement...).
Non, pas de problème ici. 😉

D'après ce que j'ai constaté cette nuit, quand tu modifies un style, il n'y a pas création d'un nouveau style dérivé.

D'ailleurs, il me semble que dans Word, si tu donnes un nom à un style, tu peux ensuite modifier ce style sans que ça crée automatiquement un nouveau style dérivé qui viennes'ajouter à la liste infinie des styles.
 
Re : Créer un style en VBA

Re

Je parlais de Word pour les styles dérivés.

Mais si, si tu as un paragraphe dans un style et, par exemple, tu le mets en italique, il te crée la variante italique du style d'origine : il te faut, toi, demander à ce que ce soit la nouvelle définition.
D'ailleurs, de ce fait, ce serait plus facilement automatisable dans Word...

Il y aurait peut-être moyen de décharger dans un tableau (array) l'ensemble des paramètres du style, idem pour ceux de la cellule et de copier l'un dans l'autre. A creuser c'est juste une idée...
 
Dernière édition:
Re : Créer un style en VBA

Code:
ThisWorkbook.Styles("MonStyle").Font.Size = 24
Range("A1").Style = "MonStyle"
mais il y aura lieu de réappliquer le style à toutes les cellules en question pour que la modif soit prise en compte...
D'après mes différents tests de cette nuit, quand tu modifies un style, ça modifie immédiatement l'ensemble des cellules ayant ce style, donc pas besoin de réappliquer le style à chaque cellule concernée.

Ce comportement me parait normal car pour moi c'est bien justement là le but des styles. 😉


En tous les cas, merci encore à toi pour la solution que tu m'as donnée et que je vais prendre le temps d'étudier de plus près.
Merci aussi à Chris pour son aide.
 
Re : Créer un style en VBA

Re,

D'après mes différents tests de cette nuit, quand tu modifies un style, ça modifie immédiatement l'ensemble des cellules ayant ce style, donc pas besoin de réappliquer le style à chaque cellule concernée.

oui effectivement.... j'avais du faire une mauvaise manip quand j'ai testé le code avant de poster...
 
- 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

Discussions similaires

D
Réponses
4
Affichages
1 K
M
Réponses
2
Affichages
863
mvastra
M
A
Réponses
2
Affichages
1 K
Retour