Besoin d'une soluce pour relancer ma macro après selection graph

Fermé
G@P'$ Messages postés 8 Date d'inscription lundi 9 septembre 2013 Statut Membre Dernière intervention 5 novembre 2014 - 9 sept. 2013 à 18:12
G@P'$ Messages postés 8 Date d'inscription lundi 9 septembre 2013 Statut Membre Dernière intervention 5 novembre 2014 - 12 sept. 2013 à 10:47
Bonjour,

J'ai un petit soucis avec ma macro. Je souhaite améliorer un doc et l'automatiser au maximum pour favoriser et simplifier son utilisation pour des chefs d'équipe.
Le principe de cette macro est de copier une plage de cellule ou se trouve un tableau (du moins des valeurs dans des cellules surlignées) et deux graphiques, de les coller sur une feuille de regroupement de graphiques ensuite de prendre les valeurs du tableau et les affilier au bon graph. /!\ ET LA, PWOBLEM...
Très compliqué de récupérer le nom du graphe qui change suivant une règle propre à excel, alors j'ai testé plusieurs méthodes.
-la selection du graph(changement d'état de l'objet / compter le nombre de clic ) avec un clic manuel annoncé par un Msgbox (débutant = pas réussi...)
-la programmation de touches a appliquer après selection du graph (débutant = pas réussi...)
Et d'autres mais mon cerveau ne fonctionne plus la... (HS).
I need you're help! YOU, pro VBA... help me please !!

Merci à ceux qui m'aideront à sortir de ce calvère, mais je vous avoue que je ne lâcherai pas l'affaire !!! ;)





A voir également:

2 réponses

Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
10 sept. 2013 à 10:09
Bonjour,

C'est bien de ne pas lâcher l'affaire !
Si les graphes pré-existent, ils sont liés à des données qui figurent quelque part. Si le nombre de points à dessiner est toujours le même (voire majoré), ne peux-tu pas coller les données source vers la plage qui va bien ?

A+
0
G@P'$ Messages postés 8 Date d'inscription lundi 9 septembre 2013 Statut Membre Dernière intervention 5 novembre 2014
10 sept. 2013 à 10:48
Salut Zoul67,

le problème est que mon fichier doit gérer un nombre indéfini de données en fonction du service, de l'équipe et des projet. D'ailleurs ce problème est situé dans une macro qui doit ajouter une ligne projet donc des données supplémentaires et donc deux graphes par projet...
Mon besoin est d'ajouter en auto le format de base (tableau + graphes -> vierge), de demander à l'utilisateur d'insérer ses données. Par la suite, des formules calculent et remplissent la fin du tableau et injectent les résultats dans les graphes concernés.
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
10 sept. 2013 à 10:56
Si le fichier n'est pas confidentiel, peux-tu le placer sur cjoint.com et nous indiquer le lien ?
0
G@P'$ Messages postés 8 Date d'inscription lundi 9 septembre 2013 Statut Membre Dernière intervention 5 novembre 2014
10 sept. 2013 à 11:26
Le fichier est partagé sur cjoint.com

https://www.cjoint.com/?0IklwbCG1Em

ps: prévenez-moi en cas de problème avec le lien !
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
10 sept. 2013 à 12:20
Il est joli, ton fichier.
C'est vrai que le nommage des graphiques est folklorique. On peut d'ailleurs avoir plusieurs graphiques portant le même nom => tu risques d'avoir des problèmes même en trouvant comment sélectionner le graphique et utiliser son nom.
Pour garantir l'unicité du nommage et un caractère déterministe :
- mets un modèle de graphique (je vois que la mise en forme est un peu évoluée) dans un onglet séparé (pourquoi pas caché)
- quand ta macro ajoute des graphes copie-colle ce modèle en appelant le graphique : "Graphique " & numero_de_ligne plutôt que de coller les lignes - graphiques compris
- comme tu sais où tu viens d'ajouter ton graphique, tu peux associer les bonnes séries de données (ce que tu n'avais pas jusque là)

Je n'ai pas bien saisi si tu as besoin d'autre chose et comment se remplissent les cases de données de la feuille de graphe.
0
G@P'$ Messages postés 8 Date d'inscription lundi 9 septembre 2013 Statut Membre Dernière intervention 5 novembre 2014
10 sept. 2013 à 14:32
Merci Zoul67,

ta deuxième proposition me tente beaucoup mais un problème persiste! Changer de nom en VBA ! Manuellement c'est possible mais je ne pense pas que je puisse intégrer de variable directement sur les option excel et en VBA c'est une horreur... Si tu penses avoir une soluce, je suis plus que preneur!
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
Modifié par Zoul67 le 10/09/2013 à 15:21
C'est vrai qu'une fois qu'on a collé le graphique, apparemment on ne peut pas utiliser ActiveChart.Name. J'ai réussi à trouver un pis-aller. En étant à l'origine sur l'onglet du graphique modèle :
Sub Macro1()

Sheets("Chart1").Select
ActiveChart.Shapes.SelectAll
ActiveChart.ChartArea.Copy
Sheets("Feuille de graphes").Select
Range("R77").Select
ActiveSheet.Paste
For Each s In ActiveSheet.ChartObjects
If Left(s.Name, 6) <> "pGraph" Then
s.Name = "pGraph74"
End If
Next s
End Sub
Là, j'ai utilisé une règle de nommage avec pGraph --> c'est l'utilisateur qui les génère. A l'ajout d'un graphique le seul dont le nom ne correspond pas est le nouveau que tu peux nommer comme tu veux.
Sinon, tu peux toujours faire un Insert sans utiliser de modèle.
0
G@P'$ Messages postés 8 Date d'inscription lundi 9 septembre 2013 Statut Membre Dernière intervention 5 novembre 2014
10 sept. 2013 à 15:11
Activechart est justement le problème le faite de collé la plage de la "feuil1" fait qu'aucun graphe n'est actif et donc , Erreur...
Il faut donc que je rejoue une nouvelle macro ou je copierais la plage sans les graphes et par la suite, création de graphe en insérant ta soluce !
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
10 sept. 2013 à 15:20
En insérant un onglet Graphique pour le modèle ça a l'air de coller. Je complète le code ci-dessus.
0