BOUCLE ET VARIABLE

WILFRIED

XLDnaute Impliqué
Bonjour à tous et toutes,


Voila j'ai un petit souci (comme beaucoup) :

Je veux réduire le nombre de ligne de ma macro, pour cela je pensait utilisé une boucle :

J'ai 8 constante : nm_S1 à nm_S8.


Voila ce que je voulait utilisé :

For i = 1 To 8
ActiveSheet.PivotTables(tcd_temp).AddDataField ActiveSheet. _
PivotTables(tcd_temp).PivotFields(nm_S & i), _
'Somme de S' & i, xlSum
Next i

Seulement il me dit :

Erreur de compilation : variable non définit

Ma question est donc : existe-t-il une solution à mon PB ou vais je devoir écrire toutes mes lignes de code ?

Merci d'avance.

A+
 

myDearFriend!

XLDnaute Barbatruc
Bonjour WILFRIED, le Forum,

La solution consiste à rentrer tes valeurs dans un tableau (ici de type string), puis de faire appel à chaque élément du tableau par son indice. Par exemple :
Dim nm_S(1 To 8) As String
Dim
tcd_temp As String
Dim
i As Byte
      tcd_temp = 'TCDBlaBla'
      ' Définition des noms de champ nm_S() par une boucle
      For i = 1 To 8
            nm_S(i) = Choose(i, 'Champ1', 'Champ2', 'Champ3', 'Champ4', _
                                    'Champ5', 'Champ6', 'Champ7', 'Champ8')
      Next i
      ' Bien sûr, à la place de la boucle ci-dessus, on peut aussi
      ' définir ces éléments de façon classique, en faisant :
      ' nm_S(1) = 'Champ1'
      ' nm_S(2) = 'Champ2'
      ' etc...
      ' ...
      ' Ensuite on fait :
      For i = 1 To 8
            ActiveSheet.PivotTables(tcd_temp).AddDataField ActiveSheet. _
            PivotTables(tcd_temp).PivotFields(nm_S(i)), _
            'Somme de S' & i, xlSum
      Next i
Cordialement,
 

Discussions similaires

Statistiques des forums

Discussions
312 971
Messages
2 094 045
Membres
105 926
dernier inscrit
Odyssea