Bonjour à tous !
Cela fait un long moment que je parcours différents forums avec une calvitie en constante évolution.
En bref, je m'arrache les cheveux .
Mon niveau en VBA: Débutant . Je me suis débrouillé avec les forums et l'enregistreur de macro pour observer le code.
Mon objectif :
J'ai un fichier excel contenant plusieurs feuilles dont le nombre augmente régulièrement.
A chaque nouvelle feuille je dois tracer plusieurs courbes. L'idée est donc d'automatiser tout ce petit monde pour qu'à chaque évolution du fichier je puisse en un clic sortir les nouveaux tracés.
Mon problème :
Pour mes tracés, l'intégralité des données de la colonne ne m'intéresse pas forcement. Je fais donc un "balayage" pour identifier la plage qui m'intéresse. Ça c'est bon.
C'est quand je souhaite tracer cette courbe avec ma plage de données que ça coince. J'ai essayé plein de bout de code sans succès.
Le code fonctionnel sans la gestion "dynamique" de la plage de données:
Code :
- With ActiveSheet
- Set Graph = .ChartObjects.Add(100, 50, 400, 200) 'Taille du graphique
- Graph.Chart.ChartType = xlXYScatterSmoothNoMarkers 'Type de graphique
- Graph.Chart.SetSourceData Source:=Sheets(Nom).Range("A4:A30000;F4:F30000" ) 'Data
- Graph.Chart.SeriesCollection(1).Name = ActiveSheet.Name & "Nom du graph" 'Nom du graphique
- Graph.Chart.Location Where:=xlLocationAsNewSheet
- ActiveChart.Name = "Courbe " & Nom
- Set Graph = Nothing
- End With
|
Ce programme fonctionne nickel. Mais l'intégralité du tracé ne m'intéresse pas. Alors j'ajoute les variables (integer) qui sont les butées hautes et basses de ma courbe:
Code :
- Graph.Chart.SetSourceData Source:=Sheets(Nom).Range("A" & Id_Start & ":A" & Id_Stop & ";F" & Id_Start & ":F" & Id_Stop)
|
Et c'est la partie en rouge qui plante mon programme. Je suis sûr que ça doit être un truc tout bête mais là... Je bloque!
Merci d'avance pour votre réponse.