Macro pour construction de graphique et boucle for

Fermé
Laetitiayao Messages postés 54 Date d'inscription vendredi 13 juillet 2018 Statut Membre Dernière intervention 31 août 2018 - Modifié le 30 août 2018 à 14:55
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 - 31 août 2018 à 09:37
Bonjour à tous,
J'exécute une macro qui ne marche pas depuis ce matin et j'ai vraiment besoin d'aide.voici de facon simplifiée ce que je souhaite faire.
faire une représentation des séries présentes sur ma feuille "calcul" (colonne en jaune) en fonction de la date( colonne en gris) dans le graphique inséré dans ma feuille "ETF1", de sorte qu'a chaque fois que ma macro effectue un choix dans ma liste déroulante en V8 le graphique se met à jour automatiquement.
J'ai écris le code suivant mais il ne se pase rien:

Sub update6()
Dim S3 As Worksheet
Dim S4 As Worksheet
Dim i, j, j1, j2, k As Long

Set S3 = Sheets("Calcul")
Set S4 = Sheets("ETF 1")

For j = 1039To 1338 Step 6
    S4.Cells(8, 22) = S3.Cells(2, j)
   
    ActiveChart.ChartType = xlLine
    ActiveChart.SeriesCollection.NewSeries
    ActiveChart.SeriesCollection(1).Values = S3.Range(S3.Cells(7, j), S3.Cells(S3.Cells(3, 1039), j))
   ActiveChart.SeriesCollection(1).XValues =S3.Range(S3.Cells(7,1038), S3.Cells(S3.Cells(3, 1038), j))
Next j
End Sub


Private Sub worksheet_change(ByVal Target As Range)
Dim S3, S4 As Worksheet
Set S3 = Sheets("calcul")
Set S4 = Sheets("ETF 1")

    If Target.Address = S4.Cells(8, 22) Then
       
        Call update6
    End If
End Sub


Pourriez - vous m'éclairer svp?
merci de vos réponses
A voir également:

3 réponses

yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 Ambassadeur 1 551
30 août 2018 à 15:35
bonjour,
as-tu bien merci "option explicit" en début de chaque module?
qu'essaies-tu de faire en comparant Target.Address à S4.Cells(8, 22)?
0
Laetitiayao Messages postés 54 Date d'inscription vendredi 13 juillet 2018 Statut Membre Dernière intervention 31 août 2018
30 août 2018 à 15:57
bonjour,
oui oui, target address est la cellule qui comprend ma liste déroulante dans laquelle ma macro doit faire des choix les uns apres les autres . je veux juste dire que c'est dans cette cellule que les changements doivent s'effectuer je ne sais pas si je fais bien?
0
yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 1 551 > Laetitiayao Messages postés 54 Date d'inscription vendredi 13 juillet 2018 Statut Membre Dernière intervention 31 août 2018
Modifié le 30 août 2018 à 17:54
alors je ferais plutôt:
If Target.Address = S4.Cells(8, 22).Address Then

ou bien
If Target.Address = "$V$8" Then

ainsi, update6 sera appelé chaque fois que Cells(8, 22) change (si tu as mis la fonction dans la feuille ETF 1).
0
Laetitiayao Messages postés 54 Date d'inscription vendredi 13 juillet 2018 Statut Membre Dernière intervention 31 août 2018
30 août 2018 à 17:26
Oui, je l'ai mis dans la feuille ETF1, ce ce qui correspond à mon deuxieme code
0
yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 1 551 > Laetitiayao Messages postés 54 Date d'inscription vendredi 13 juillet 2018 Statut Membre Dernière intervention 31 août 2018
30 août 2018 à 19:26
as-tu essayé mes suggestions?
0
Laetitiayao Messages postés 54 Date d'inscription vendredi 13 juillet 2018 Statut Membre Dernière intervention 31 août 2018
31 août 2018 à 00:28
Oui, la liste déroutante cellule v8 se modifie au fur et à mesure mais aucun evenement dans le graphique
0
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 425
30 août 2018 à 16:40
Bonjour à tous les deux


Peux tu envoyer un bout de ton fichier sur cjoint.com et joindre le lien obtenu à ton prochain message. N'oublies pas d'y ajouter des explications et des exemples de résultat attendu
1) Tu vas dans https://www.cjoint.com/
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier
3) Tu descends en bas de la page pour cliquer sur [Créer le lien Cjoint]
4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien
en bleu souligné ; tu le sélectionnes et tu fais "Copier"
5) Tu reviens dans ta discussion sur CCM, et dans ton message de réponse tu fais "Coller".

Cdlmnt
0
Laetitiayao Messages postés 54 Date d'inscription vendredi 13 juillet 2018 Statut Membre Dernière intervention 31 août 2018
30 août 2018 à 17:29
Bonjour, je vous le ferai parvenir en rentrant, au bureau j'ai un acces limité a certain sites internet notament cijoint.com, peu etre je peux l'envoyer par msg privé? ou existe t- il un autre moyen de partage?
0
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 425
30 août 2018 à 18:34
tu as aussi
mon-partage.fr
0
Laetitiayao Messages postés 54 Date d'inscription vendredi 13 juillet 2018 Statut Membre Dernière intervention 31 août 2018
31 août 2018 à 02:32
Bonjour ci joint mon fichier avec les modifications suggérée
https://www.cjoint.com/c/HHFaEZSXKuB

Merci
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
Modifié le 31 août 2018 à 09:03
Bonjour,

Vous avez des appels récursifs sur votre module update6 (vois pas pourquoi pour le moment) , en ajoutant application.enableevents false avant l'appel et true apres, j'ai une erreur cette ligne
 ActiveChart.SeriesCollection(1).Values = S3.Range(S3.Cells(7, j), S3.Cells(S3.Cells(3, 1038), j))

Je ne comprends pas le ,j a la fin......!!!!!!!!!!!!!!!!!!!!!
0
yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 1 551 > f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024
31 août 2018 à 09:32
les appels récursifs sont sans doute causés par le fait que le code appelé par worksheet_change modifie le contenu de la feuille, ce qui appelle à nouveau worksheet_change.
Ce qui correspond à la phrase "a chaque fois que ma macro effectue un choix dans ma liste déroulante en V8 le graphique se met à jour automatiquement". j'ai l'intuition que il n'y a pas de raison d'utiliser worksheet_change pour cet exercice.
0
Laetitiayao Messages postés 54 Date d'inscription vendredi 13 juillet 2018 Statut Membre Dernière intervention 31 août 2018
31 août 2018 à 09:31
Bonjour,
en fait j correspond aux colonnes representant comprennant les series que je veux representer , ce qui lme permet de changer de colonne a chaque evenement dans ma liste deroulante
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
Modifié le 31 août 2018 à 09:40
Salut yg_be, en effet c'est ce que vous avez ecrit pour les appels recursifs

Laetitiayao:
Pourquoi une boucle sur un seul graphe????
Le j serait pour incrementer les colonnes donc prendre j comme colonne pas 1038.....
0