Générateur de graphique
Bonjour,
Je souhaite créer un générateur de graphique qui m'a l'air de plus en plus sophistiqué au fur et à mesure que je me confronte à sa réalisation... je fais viens faire recours à votre génie.
Le point de départ : de très nombreuses données (pluviométrie, débit de pompes etc) organisées en colonnes que je souhaite mettre en forme en fonction du temps.
L'idée finale : une interface à base d'inputbox qui demande la date de début et la date de fin pour définir l'étendue de la plage à considérer et qui demande également les colonnes à prendre en compte pour construire le graphique.
Le code qui suit me sert à "trouver" la date de début et la date de fin dans ma base de données et de renvoyer la valeur des lignes correspondantes dans deux cellules distinctes sur une autre feuille.(vous pourrez surement observer une patte de débutant très prononcée)
Sheets("VERIFICATION").Range("A3") = InputBox("Date de début = rentrer le mois et l'année sous la forme mm/aaaa")
SAISIEdebut = Sheets("VERIFICATION").Range("A3")
If SAISIEdebut = "" Then
Sheets("VERIFICATION").Range("A3:B3").ClearContents
Exit Sub
End If
Sheets("VERIFICATION").Range("A4") = Sheets("THE MATRIX").Columns(1).Cells.Find(SAISIEdebut, , xlValues).Row
localise1 = Sheets("VERIFICATION").Range("A4")
Sheets("VERIFICATION").Range("B3") = InputBox("Date de fin = rentrer le mois et l'année sous la forme mm/aaaa")
SAISIEfin = Sheets("VERIFICATION").Range("B3")
If SAISIEfin = "" Then
Sheets("VERIFICATION").Range("A3:B3").ClearContents
Exit Sub
End If
Sheets("VERIFICATION").Range("B4") = Sheets("THE MATRIX").Columns(1).Cells.Find(SAISIEfin, , xlValues).Row
localise2 = Sheets("VERIFICATION").Range("B4")
MsgBox (localise1 & " " & localise2)Je souhaite utiliser ces deux valeurs (localise1 et localise2) pour les intégrer à la suite de mon code en tant que variable fondamentale, exemple (j'aimerais pouvoir écrire ça mais cela ne marche pas) : ActiveChart.FullSeriesCollection(1).Values ="feuil1'!$D$" localise1 & ":$D$" & localise2
Seulement vba n'accepte que les adresses complètes et sans interventions de variables... Quelqu'un peut-il m'aider à régler ce problème lexical?
Bonjour,
Je suggère :
MonAdresse = "feuil1'!$D$" & localise1 & ":$D$" & localise2
ActiveChart.FullSeriesCollection(1).Values = MonAdresse J'ai bien essayé cette formule mais cette application n'accepte pas des références indirectes dans sa syntaxe, pour fonctionner la plage doit être écrite comme elle sort à l'enregistreur de macro.
Merci quand même
Bonjour
Pourquoi ne pas tout simplement préfiltrer la période choisie (via un simple tableau ou deux cellules) avec PowerQuery intégré à ta version et baser le graphique sur le résultat de la requête ?
Simple et efficace sans VBA...
Joins un bout de fichier si tu veux un exemple concret.
J'ai bien essayé cette formule mais cette application n'accepte pas des références indirectes dans sa syntaxe, pour fonctionner la plage doit être écrite comme elle sort à l'enregistreur de macro.
Essaie ça :
MonAdresse = Range("feuil1'!$D$" & localise1 & ":$D$" & localise2)
ActiveChart.FullSeriesCollection(1).Select
ActiveChart.SetSourceData Source:=MonAdresse