Combinaison "Cells" et "Range"

  • Initiateur de la discussion Initiateur de la discussion agd
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

agd

XLDnaute Nouveau
Bonjour,

Bon d'habitude, en fouinant, j'arrive toujours a m'en sortir mais la j'avoue je cale.

Avant-Propos :

Je suis entrain de réaliser une macro VBA qui consiste à :

1 - Copier-coller dans l'onglet "DATA", un tableau de bords issue d'un autre fichier Excel => Fait
2 - De réaliser dans l'onglet "TCD", un tableau Croisé Dynamique => Fait
3 - De réaliser certaine opération mathématiques statistiques issues du TCD => Fait
4 - De réaliser un graphique multicourbles issues des opérations mathématiques => C'est là que je coince.

NOTA :
Ce travail je dois le réaliser plusieurs fois par semaine. il est donc primordiale de ne pas rendre la macro statique à une série de ligne et de colonne spécifique puisque le nombre de ligne et de colonne du TCD va croissant de jour en jour.
Actuellement le Tableau de bords dont est issu le TCD contient plusieurs centaines de lignes pour 21 colonnes.
La résultante est que le TCD gagne environ 3 à 4 colonnes supplémentaire par semaine.

Détail du Problème rencontré :
Pour la réalisation de l'étape 4, je me suis aidé de l'enregistreur de macro.
Celui-ci m'a écrit naturellement le code suivant :

Code:
Range("A20").Select
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlLine
With ActiveSheet.ChartObjects(1)
    .Name = "Graphique_JOUR"
End With
ActiveChart.SeriesCollection.NewSeries

ActiveChart.SeriesCollection(1).Values = "='Journalier'!$B$10:$Y$10"
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(2).Values = "='Journalier'!$B$11:$Y$11"
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(3).Values = "='Journalier'!$B$12:$Y$12"
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(4).Values = "='Journalier'!$B$13:$Y$13"
ActiveChart.SeriesCollection(4).XValues = "='Journalier'!$B$2:$Y$2"

Ce code fonctionne mais comme expliqué en "Nota", je peux pas garder l'expression $B$10:$Y$10 dans cet état puisque la sélection des données de ma courbe ne seront pas toujours au même endroit sur la page.

Pour ce faire, j'ai déclaré plusieurs variables : LigneX, ColonneMin, et ColonneMax
ces variables sont déterminées par une série de boucles "For - Next" qui me permettent de savoir ou sont les lignes que je souhaite intégrer dans mon graphiques.

L'idée étant de remplacer l'écriture $B$10:$Y$10 par : Cells(LigneX, ColonneMin) :Cells(LigneX, ColonneMax)

Mais voila, j'ai beau tourner cette phrase dans tous les sens, je tombe invariablement sur la même erreur

Code d'éxécution'1004':
Erreur définie par l'application ou par l'objet.

si vous pouviez m'aider a écrire ce bout de code, je vous en serait tres reconnaissant.

PS : Je ne peux vous joindre de fichier, celui ci contenant des données sensibles.

Merci d'avance.

Cordialement

agd
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
631
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
498
Réponses
9
Affichages
846
Retour