VBA - Remplacer les lettres des colonnes par des chiffres adresse absolue

Bonjour à tous,

Je poste ce message car j'ai besoin de tracer un graphique avec un nombre variables de plages de données :

Le nom de la plage 1 se trouve dans la cellule $A$1, les Xvalues sont de $B$2:$B$22, et les Yvalues sont de $C$2:$C$22

Le nom de la plage 2 se trouve dans la cellule $D$1, les Xvalues sont de $E$2:$E$22, et les Yvalues sont de $F$2:$C$22

Et ainsi de suite..

Vous remarquerez bien que nous avons en réalité:

-le nom de la plage (i-1) dans la cellule de Ligne i et colonne 1 + i*3

-les Xvalues de la plage (i-1) dans la colonne 2+i*3

-les Xvalues de la plage (i-1) dans la colonne 3+i*3

Or pour utiliser cela dans un graphique, les adresses utilisées sont des adresses absolues et utilisent les colonnes par leurs lettres. J'ai l'impression d'avoir tout essayé et n'arrive quand même pas à résoudre le problème (je suis tout de même débutant en VBA)

J'ai besoin de finir ce document pour mon futur patron (arrivée en stage dans les prochains jours) et compte sur votre amabilité!!

Je vous remercie par avance.

Voici le code (qui ne marche évidemment pas): /!\ x,y,z,i sont des integer

-----------------------------------------------------------------------------------------------------------------

x = 1
y = 2
z = 3
For i = 1 To 40
ActiveChart.SeriesCollection.NewSeries

ActiveChart.FullSeriesCollection(i).Name = Feuil3.Cells(1, x)
ActiveChart.FullSeriesCollection(i).XValues = Feuil3.Range(Cells(2, y), Cells(22, y))
ActiveChart.FullSeriesCollection(i).Values = Feuil3.Range(Cells(2, z), Cells(22, z))

x = x + 3
y = y + 3
z = z + 3
Next i

-----------------------------------------------------------------------------------------------------------------

Bonsoir Alixxx,

Je pense que tu devrais utiliser une boucle For qui parcourt chaque série de données (i) et utilise des variables (x, y, z) pour définir les adresses absolues de chaque nom de plage, Xvalues et Yvalues. Voici un exemple :

For i = 1 To 40
    ActiveChart.SeriesCollection.NewSeries

    'Définit le nom de la série en utilisant la colonne correspondante (A, D, G, etc.)
    ActiveChart.FullSeriesCollection(i).Name = Feuil3.Cells(1, Columns(1 + (i - 1) * 3).Column).Value

    'Définit les Xvalues en utilisant la colonne correspondante (B, E, H, etc.)
    ActiveChart.FullSeriesCollection(i).XValues = Feuil3.Range(Cells(2, Columns(2 + (i - 1) * 3).Column), Cells(22, Columns(2 + (i - 1) * 3).Column))

    'Définit les Yvalues en utilisant la colonne correspondante (C, F, I, etc.)
    ActiveChart.FullSeriesCollection(i).Values = Feuil3.Range(Cells(2, Columns(3 + (i - 1) * 3).Column), Cells(22, Columns(3 + (i - 1) * 3).Column))
Next i

Cldt.

C'est impeccable, merci beaucoup. Malheureusement je n'arrivais pas a écrire la plage de donnée et me faire comprendre par excel!

Merci encore,

Cordialement

Rechercher des sujets similaires à "vba remplacer lettres colonnes chiffres adresse absolue"