[résolu] sendkeys style de trait type de lettrine à deux dimensions

Misange

XLDnaute Barbatruc
Hello,
Le VBA d'excel 2010 est encore incomplet pour les graphiques et en particulier microsoft a oublié qu'on pouvait avoir besoin de faire en VBA des traits larges et à bouts plats (je m'en sers pour simuler des boites de type boxplot ou graphique boursier mais avec un axe des X proportionnel aux données).
J'ai cherché un peu partout et je n'ai trouvé comme solution une proposition de Andy Pope avec des sendkeys. Pb elle ne marche pas sur un excel en Français et je n'arrive pas à trouver la bonne combinaison d'instructions.

Manuellement il faut après avoir sélectionné la série à transformer :
- ouvrir la boite de dialogue formatage
- sélectionner style de trait
- dans la partie droite de cette fenêtre sélectionner type de trait "lettrine à deux dimensions" (super intuitif non comme traduction : en anglais c'est flat cap c'est quand même plus simple !)

Si quelqu'un peut m'aider à trouver cette combinaison de touche il aura toute ma reconnaissance.
 

Pièces jointes

  • fc-nuagedeboites.xlsm
    58.3 KB · Affichages: 128
Dernière édition:

Misange

XLDnaute Barbatruc
Re : sendkeys style de trait type de lettrine à deux dimensions

Alors là je ne comprends pas : en testant tout à l'heure j'avais créé un bouton pour lancer la macro et ça ne fonctionnait pas.
Pour retester, j'ai lancé la macro par la boite de dialogue macro depuis l'onglet développeur et là ça fonctionne parfaitement.
J'ai recréé le bouton "au cas où" mais non ça ne marche pas si je lance depuis un bouton sur la feuille.
J'ai créé un bouton dans la barre d'outils rapide et là ça fonctionne.
Une idée ?
je découvre pleins de trucs en tous cas ! Merci
 

PMO2

XLDnaute Accro
Re : sendkeys style de trait type de lettrine à deux dimensions

Je viens de faire le test avec un contrôle ActiveX CommandButton et je constate la même chose que toi quant au dysfonctionnement.
Je crée un contrôle de formulaire Bouton et là cela marche.
C'est à n'y rien comprendre et je n'ai aucune idée de la cause.
A plus.
 

Misange

XLDnaute Barbatruc
Re : sendkeys style de trait type de lettrine à deux dimensions

Me revoilou après une partie du WE sur ce problème...
Ca coince toujours : et j'ai vu des trucs plus que zarbi en mettant des exit sub pour voir ce qui se passe.
Sur UNE série ça marche, mais pas sur l'ensemble des séries du graphique.
Une histoire de fous. J'ai essayé plein de trucs, mais rien ne fonctionne.

J'ai posé la question à Andy Pope qui m'a déjà suggéré une piste efficace mais qui ne règle pas tout : utiliser un modèle. Ca ne règle pas tout car il n'y a pas que moi qui doit utiliser ce type de graphique et c'est quand même plus facile de diffuser une macro qu'une macro+ 1 graphique modèle et expliquer comment intégrer le modèle et tout le toutim. Et puis j'aimerais bien comprendre aussi accessoirement.

Un petit fichier joint pour voir le problème
A vos bonnes suggestions :)
 

Pièces jointes

  • capstyle.xlsm
    35.4 KB · Affichages: 50

PMO2

XLDnaute Accro
Re : sendkeys style de trait type de lettrine à deux dimensions

Bonjour Misange,

Une bonne nouvelle, j'ai non seulement avancé mais je crois avoir atteint le but recherché.
La boîte de dialogue est malheureusement visible à l'utilisateur mais je n'arrive pas à la masquer à ses yeux.
J'ai fait avec ma technique API keybd_event mais cela marchera peut-être avec le SendKeys.
Il semble que le problème provenait du manque de reprise en main par Excel lors de l'exécution du programme de simulation de touches. Cela semble résolu avec l'utilisation de l'instruction DoEvents après chaque envoi de touche.
Je te mets mon classeur expérimental en pièce jointe.

Je ne me montre pas péremptoire car je me méfie des profondeurs insondables de l'informatique qui peuvent nous réserver bien d'autres déboires.

A plus.
 

Misange

XLDnaute Barbatruc
Re : sendkeys style de trait type de lettrine à deux dimensions

YESSSS !! cette fois c'est vraiment tout bon.
Quand je lançais la macro avant je voyais aussi furtivement la boite de dialogue s'afficher, ce n'est qu'un problème mineur...
J'avais essayé de mettre des wait mais en vain, je n'ai pas du tout pensé à des do events.
SUPER MERCI de ta ténacité Patrick. Je signalerai ton astuce à Andy Pope.
J'espère que le bug sera résolu dans la version 15 d'office.

Je peux mettre sur excelabo ?

Amicalement,
 

PMO2

XLDnaute Accro
Re : [résolu] sendkeys style de trait type de lettrine à deux dimensions

Attends avant de faire paraître cette solution sur Excelabo et de soumettre l'astuce à Andy Pope que plusieurs essais viennent confirmer son efficacité inébranlable.
N'en ayant pas l'usage, je ne ferais pas de tests étendus. Et surtout, comme dis dans mon message précédent, je me méfie des pièges de l'informatique qui pourraient assombrir notre bel enthousiasme.
Une fois bien testé, je ne vois aucun inconvénient à faire bénéficier cette solution à tous les ExcelWomen et ExcelMen sinon je ne serais pas sur ce forum.
Bonne journée et à plus.
 

Misange

XLDnaute Barbatruc
Re : [résolu] sendkeys style de trait type de lettrine à deux dimensions

OK,
cela dit je ne suis pas sure qu'il y ait des tonnes de gens qui aient besoin de faire des "nuages de boites" pour tester ! Mais je vais avoir l'occasion de le faire +++ dans les jours qui viennent. Et je mettrai les warnings qui s'imposent en mettant la solution en ligne. De toutes façons, une solution qui passe par des send keys ou équivalent est forcément moins fiable qu'une solution standard, les claviers et combinaisons de touches variant pas mal avec la version du clavier et d'excel ! Au moins là ça fonctionne sur 2007 et 2012 ce qui est déjà pas mal. C'est aussi une bonne illustration je pense de l'utilisation de l'API keybd_event pour qui voudrait l'appliquer à un autre usage.
encore merci
 

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote