Bonjour !
Je suis justement sur un projet où j'ai codé ma fonction pour qu'il récupère la dernière cellule de mon tableau (peu importe sa taille)
'Fonction qui détecte la fin du tableau
Function last_row()
Dim i As Integer
i = 1
While (Range("M" & i).Value <> "")
i = i + 1
Wend
'Si on arrive ici, c'est qu'on a détecté la case vide après le tableau
'On décrémente donc i de 1 pour avoir la dernière ligne
last_row = i - 1
End Function
Ici, ma fonction fonctionne dans la colonne M, tu peux changer par la colonne que tu veux !
Je te propose donc la solution suivante:
ActiveSheet.ChartObjects("Graphique 4").Activate
ActiveChart.FullSeriesCollection(1).Select
Application.CutCopyMode = False
ActiveChart.FullSeriesCollection(1).Select
Application.CutCopyMode = False
ActiveChart.SetSourceData Source:=Range("C18:E" & last_row())
ça devrait marcher, en remplaçant la colonne M par E dans la fonction:
While (Range("E" & i).Value <> "")
i = i + 1
Wend