Bonjour,
je précise avant toute chose être nouveau à la fois en VBA et sur ce forum donc je m'excuse par avance si je ne respecte pas certaines règles ou pose une question stupide.
mon problème est le suivant : j'essaye d'automatiser une consolidation de plusieurs plage nommées qui se fait via la fonction "consolider données" d'excel (il existe surement un meilleur moyen de faire mais passer par cette méthode est une contrainte qui m'est imposée).
L'enregistreur de macro m'indique la méthode .consolidate Sources:=array("plage1", "plage2", etc).
Mon but est de pouvoir changer les plages prises en compte selon certaines conditions dans le code (checkboxes pour choisir les éléments à consolider), mais je ne sais pas comment y parvenir.
J'ai essayé de créer de passer par un code qui m'écrit le nom des plages à consolider dans une colonne, pour créer un array dynamique qui contiendrait les éléments que je veux avec le code suivant :
celui-ci semble fonctionner mais je n'arrive pas à intégrer mon arrayconso créé dans la méthode consolidate avec tous ses éléments (dont le nombre est variable).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Sheets("donnees").range("A1").Select Dim rowcount As Integer Dim arrayconso() As Variant, i As Integer rowcount = 0 Do Until IsEmpty(ActiveCell) Selection.Offset(1, 0).Select rowcount = rowcount + 1 Loop ReDim arrayconso(rowcount) For i = 1 To rowcount arrayconso(i) = Cells(i, 1).Value Next i
Puis-je intégrer un array prédéfini par avance à la méthode consolidate et si oui comment ? Si non, comment puis-je consolider des plages via cette méthode tout en sachant que le nombre de plage à consolider est variable ?
Merci par avance si certains peuvent m'aider.
Partager