MANIPULATIONS FORMES SUR GRAPHES EXCEL AVEC VBA

Law44 Messages postés 2 Date d'inscription lundi 14 avril 2008 Statut Membre Dernière intervention 8 février 2011 - 8 févr. 2011 à 09:59
CerberusPau Messages postés 377 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 22 août 2018 - 11 févr. 2011 à 13:27
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/52779-manipulations-formes-sur-graphes-excel-avec-vba

CerberusPau Messages postés 377 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 22 août 2018 1
11 févr. 2011 à 13:27
Salut MIMIZANZAN,

*Concernant la protection: si, si on peut "gérer indépendamment" les protections du shape et du grapphique : je l'utilise dans une de mes appli (je t'ai envoyé un MP à ce sujet).

J'avoue que je n'ai pas exploré "à fond" les limites d'action sur les paramètres de la form avec une macro associée, mais a priori, puisque la form est de facto sélectionnée, je ne vois pas pourquoi on ne pourrais pas en modifier les paramètres (couleur, etc.).
Je vais creuser.

*Concernant le problème que je rencontre lors d'un déplacement vertical, il est lié à mon PC (un EeePC Asus) et uniquement en 1024x600.

Cordialement
mimiZanzan Messages postés 301 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 17 décembre 2017
10 févr. 2011 à 17:00
Salut CERBERUSPAU,
Merci pour ton commentaire.
-Concernant la protection:
*on peut protéger la feuille graphique, le code fonctionne.
*par contre, pour le graphique intégré à la feuille de calcul Feuil1, on ne peut en aucun cas protéger le graphique car il est lui-même une forme, et que les formes (ovale ou rectangle) ne peuvent plus être manipulées (même sans le code). On peut seulement protéger le contenu de la feuille avec
Feuil1.Protect DrawingObjects:=False
-Affectation macro à la forme: ne gère que l'évènement Clic qui n'informe sur aucun paramètres de la forme.
-Blocage du déplacement vertical: j'ai essayé de fenêtrer et de changer le zoom, et je n'ai pas détecté d'anomalies...Peux-tu donner un exemple précis de quand tu constates un pb?
Cordialement
CerberusPau Messages postés 377 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 22 août 2018 1
10 févr. 2011 à 14:02
Salut mimizanzan,
C'est juste un point de détail, mais si le code peut tourner sur une feuille protégée(et le graphique aussi), ça peut être intéressant pour un utilisateur de toujours pouvoir déplacer la forme ovale sur un point particulier du graphique (pour attirer l'attention par exemple ou "pointeur" sur une présentation Excel), ce dans une feuille verrouillée, donc sans risquer "d'accrocher" ou "de modifier" tout ou partie du graphique.
Quant à ta réponse, on pourrait aussi passer par l'affectation d'une macro à la forme (Oval1_QuandClic) qui permettrait par exemple de changer de couleur (c'est vrai qu'on ne fera pas la même chose qu'avec MouseDown) ; j'ai aussi remarqué que pour un affichage fenêtré du graphique dans la feuil1 (pas visible en entier), il y a parfois un blocage du déplacement vertical (résolution d'affichage, zoom, ...? je sais pas trop) qui ne se produit pas avec un glisser-déplacer "classique". Mais bon, c'est juste des interrogations et remarques qui me viennent. Je vais creuser un peu. En tout cas merci pour ta source qui regorge de potentialités.
Cordialement.
mimiZanzan Messages postés 301 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 17 décembre 2017
8 févr. 2011 à 16:38
Pour CERBERUSPAU,
Salut,
Je ne comprends pas vraiment ce que tu entends par "protection du graphique". En tout cas le code ne fonctionne pas avec une feuille verrouillée, il faut le modifier un peu, mais je ne vois pas l'intérêt...
Par contre, pour le déplacement de l'ovale, on peut bien sûr utiliser la fonction normale de Excel. Mais on n'a pas de lien avec un code, et donc pas d'info sur le déplacement. Admettons par exemple que l'on veuille que l'ovale prenne une teinte rouge quand il survole la première barre de données: on peut obtenir ceci en ajoutant la ligne suivante dans le module de classe CChart, dans la sub mchtChart_MouseMove, à la fin du paragraphe With mchtChart.Shapes("Oval1") avant le End with:

If dXVal > tpX(1) - Lpt / 2 And dXVal < tpX(1) + Lpt / 2 And _
dYVal > tpY(1) Then .Fill.ForeColor.RGB = RGB(255, 0, 0) Else _
.Fill.ForeColor.RGB = RGB(255, 255, 255)

Cà, on ne peut pas l'obtenir autrement...
Cdt
mimiZanzan Messages postés 301 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 17 décembre 2017
8 févr. 2011 à 15:21
Pour LAW44
Salut,
Pour Excel 2007, je te signale les 2 ouvrages suivants (seulement dans la langue de Shakespeare à ma connaissance à l'heure actuelle...):
* Excel 2007 Power Programming with VBA de John Walkenbach
(Wiley Publishing, Inc.)
* Excel® 2007 VBA Programmer’s Reference de John Green,Stephen Bullen,Rob Bovey et Michael Alexander, chez Wiley aussi.
A toutes fins utile
Cdt
CerberusPau Messages postés 377 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 22 août 2018 1
8 févr. 2011 à 14:36
Bonjour mimiZanZan,
C'est très intéressant!
Ce qui serait peut être un plus à ajouter, c'est la gestion de la protection du graphique :
Par exemple, que l'on puisse déplacer la forme ovale, alors que le graphique est verrouillé.
Autre chose, je ne comprend pas très bien le pourquoi du déplacement avec Shift : Un glisser-déplacer marche normalement sans le Shift... Mais j'ai peut-être mal compris cette fonction.
Cordialement
Law44 Messages postés 2 Date d'inscription lundi 14 avril 2008 Statut Membre Dernière intervention 8 février 2011
8 févr. 2011 à 09:59
Il est vrai qu'en français, on trouve difficillement des ouvrages de référence. Pour ma part je conseille, => dans la langue de Molière, une traduction chez EYROLLES de l'exellent livre de John Walkenbach : "VBA pour EXCEL 2003". Toutes les bases y sont même si EXCEL a un peu évolué depuis.
Tant que j'y suis, je cherche des référence concernant les éditeurs pour JAVA. J'ai installé puis abandonné ECLIPSE en version francaise, après avoir rencontré beaucoup de difficultés lors de l'installation des drivers.
Rejoignez-nous