Variables en boucle

Lu K

XLDnaute Occasionnel
Bonjour à toutes et à tous,

Je voudrait récuper les valeur de variable en boucle, mais de n'y arrive pas !

Mes Variables déja déclarés :

production_mensuel_1 = range("production_mensuel_1").row
production_mensuel_2 = range("production_mensuel_2").row
production_mensuel_3 = range("production_mensuel_3").row
production_mensuel_4 = range("production_mensuel_4").row
production_mensuel_5 = range("production_mensuel_5").row
production_mensuel_6 = range("production_mensuel_6").row
production_mensuel_7 = range("production_mensuel_7").row
production_mensuel_8 = range("production_mensuel_8").row
production_mensuel_9 = range("production_mensuel_9").row
production_mensuel_10 = range("production_mensuel_10").row
production_mensuel_11 = range("production_mensuel_11").row
production_mensuel_12 = range("production_mensuel_12").row

Voici mon code :

Code:
For i = 1 To 12
NomTemporaire = "production_mensuel_" & i
msgbox NomTemporaire 
next i

Le résulat est qu'il m'affiche le "nom de ma variable" et non son résultat !

Avec vous une solution pour moi ?


Merci d'avance pour vos réponse.
 

Caillou

XLDnaute Impliqué
Re : Variables en boucle

Bonjour,

il eut été plus judicieux d'utiliser des variables tableau !!!
Comme ceci par exemple :
Code:
Sub Test()
  Dim produc_mensuel(12) As Integer
  Dim i As Integer, msg As String
  
  'Pour inititaliser
  For i = 0 To 11
    produc_mensuel(i) = Range("Production_mensuel_" & i + 1).Row
  Next
  
  'Pour récupérer en boucle
  For i = 0 To 11
    msg = msg & produc_mensuel(i) & vbCr
  Next
  MsgBox msg
End Sub

Caillou
 

job75

XLDnaute Barbatruc
Re : Variables en boucle

Bonjour Lu K, hello Caillou,

Oui les variables tableaux sont très utilisés en VBA.

On peut même y stocker des plages (Range) :

Code:
Sub Test()
  Dim i%, P(1 To 12) As Range, produc_mensuel&(1 To 12), msg$
  
  'Pour inititaliser les 2 tableaux
  For i = 1 To 12
    Set P(i) = Range("Production_mensuel_" & i)
    produc_mensuel(i) = P(i).Row
  Next
  
  'Pour récupérer en boucle
  For i = 1 To 12
    msg = msg & P(i).Address(0, 0, , True) & vbTab & _
      "ligne : " & produc_mensuel(i) & vbTab & vbCr
  Next
  MsgBox msg
End Sub
A+
 

Discussions similaires

Réponses
12
Affichages
252

Statistiques des forums

Discussions
312 249
Messages
2 086 603
Membres
103 260
dernier inscrit
NHOURRA