Graphique Actualiser par VBA

Bonjour à tous,

Ce sujet semble avoir été déjà traité par certains d'entre vous mais je ne comprends pas les solutions... je débute en VBA

10pompe-a.xlsm (23.77 Ko)

Mon besoin : Nommer un graphique pour le supprimer et le refaire avec de nouvelles données ou une autre échelle 'x,y'

actuellement ils se superposent...je fouille depuis 2 jours pour trouver une solution simple

j'ai écrit : Dim PompAGraph As Shape PompAGraph. (nom du graphique)

cela me semble incorrect.

A vous relire.... merci

bonjour Smern

si tout les éléments sont déjà là et on n'a qu'à les modifier :

Sub Modifier_GrhPompA()
     With Sheets("Feuil1").ChartObjects("GrhPompA").Chart
          With .Axes(xlCategory)             'axe X
               .MinimumScale = 0
               .MaximumScale = 250
               .MajorUnit = 25
               .AxisTitle.Text = "Mon axe X"
          End With

          With .Axes(xlValue)                'Y-axe
               .MinimumScale = 0
               .MaximumScale = 25
               .MajorUnit = 5
               .AxisTitle.Caption = "Mon Axe Y"
          End With

          With .FullSeriesCollection(1)
               .XValues = Sheets("feuil1").Range("A5:F5")
               .Values = Sheets("feuil1").Range("A6:F6")
               With .Format.Line
                    .ForeColor.RGB = RGB(255, 0, 0)
                    .Weight = 2
               End With
          End With

          .ChartTitle.Text = "Mon Title"

     End With
End Sub
8pompe-a.xlsm (33.96 Ko)

Merci BsAlv...

Mais je n'ai peut être pas envoyé le bon fichier et en plus je n'ai pas été clair dans ma demande...

Suis ok avec mon graphique et pour le moment pas la peine de définir les titres des axes, je veux conserver la possibilité de modifier l’échelle des plages de données c'est pourquoi j'ai défini les variables "maxdebitA" & "maxHmtA", en modifiant les valeurs (sous fond fluo), pas besoin d'aller les modifier dans les propriétés du graphique. C'est plus rapide pour visualiser le résultat avec la macro.

L'ennui c'est que je ne sais pas commet supprimer le graphique créé précédemment qui reste à l'affichage...

je renvoie le bon fichier, mille excuses....

11pompe-a-2.xlsm (26.18 Ko)

re,

ce n'est pas nécessaire utiliser "activate" et "select", cela ralentit tout. Et Avec "With ... End With", c'est plus facile à lire et gérer.

Mais si on veut simplement modifier ces 2 propriétés d'un graphique existant, ceci suffit

Sub PompAGraph_Rapide()
     Dim sh
     Set sh = Sheets("feuil1")               'Avec cette feuille
     With sh.Shapes("Smer").Chart             'ce graphique
          .Axes(xlCategory).MaximumScale = sh.Range("G4").Value     'abcisse
          .Axes(xlValue).MaximumScale = sh.Range("G5").Value     'ordonnée
     End With
End Sub
13pompe-a-2.xlsm (27.76 Ko)

Bon Dieu ça fonctionne parfaitement !!!

J'aime ce qui fonctionne correctement et qui s'exprime clairement... Merci beaucoup !

je n'ai pas épluché précisément les codes mais la structure me parle... je travaille en autodidacte comme bcp, mais je pense qu'il faut éplucher les codes, les intégrer, bosser la logique pour faire des" sub" lisibles. çà dérouille le cerveau, mes dernières macro dates d'excel 97...(je n'utilisais plus excel au boulot).

je vais continuer ma feuille, rajouter la courbe réseau (pdc), calcul du point d'intersection... bref la fête continue !!.

encore merci !

Cordialement, Rémi.

j'ai oublié...

comment obtenir les codes couleurs , rouge entre autre...

Sub PompAGraph_Rapide()
     Dim sh
     Set sh = Sheets("feuil1")               'Avec cette feuille
     With sh.Shapes("Smer").Chart
          .Axes(xlCategory).MaximumScale = sh.Range("G4").Value     'abcisse
          .Axes(xlValue).MaximumScale = sh.Range("G5").Value     'ordonnée
          For i = 1 To .FullSeriesCollection.Count     'boucler chaque série (pour le moment, il n'y a qu'une)
               .FullSeriesCollection(i).Format.Line.ForeColor.RGB = RGB(WorksheetFunction.RandBetween(1, 255), WorksheetFunction.RandBetween(1, 255), WorksheetFunction.RandBetween(1, 255))     ' couleur aléatoire
          Next
     End With
End Sub

PS RGB = Rouge, Vert, Bleu (Red, Green, Blue) = les 3 couleurs de base et 100%= 255, RGB(255,0,0) = Rouge foncé (excel connait 255^3 = environ 16.600.000 couleurs)

Oui, ok pour les codes RGB .... Mais dans la présentation Excel-pratique du forum ??

C'est une codification particulière ? Ou palette de couleurs...

Cordialement. Rémi.

re, ce palette dépend de vos préférences, donc les couleurs ".ObjectThemeColor" peuvent différer entre 2 ordinateurs avec une autre préférence pour les themes et les couleurs. Est-ce que cela a d'autres conséquences que l'aspect visuel, eh bien non.

Sinon, vous pouvez utiliser l'enregistreur des macros et puis vous faitez un copie&colle des parties qui vous intéressent. (normallement >2 tiers de ce code est pour la poubelle)

Rechercher des sujets similaires à "graphique actualiser vba"