je cherche a créer des variables à l'aide d'une loop ( ou tout autres methode rapide ) afin d'eviter ceci :
Code:
Dim CatLn1 As String
CatLn1 = ThisWorkbook.Sheets("INTRO").Range("N16").Value
Dim CatLn2 As String
CatLn2 = ThisWorkbook.Sheets("INTRO").Range("N17").Value
Dim CatLn3 As String
CatLn3 = ThisWorkbook.Sheets("INTRO").Range("N18").Value
Dim CatLn4 As String
CatLn4 = ThisWorkbook.Sheets("INTRO").Range("N19").Value
Dim CatLn5 As String
CatLn5 = ThisWorkbook.Sheets("INTRO").Range("N20").Value
... ( et ca continu sur une vingtaine de ligne )
ou ceci :
Code:
Dim TotalCompte2 As String
TotalCompte2 = ThisWorkbook.Names("total2").RefersToRange
Dim TotalCompte3 As String
TotalCompte3 = ThisWorkbook.Names("total3").RefersToRange
Dim TotalCompte4 As String
TotalCompte4 = ThisWorkbook.Names("total4").RefersToRange
Dim TotalCompte5 As String
TotalCompte5 = ThisWorkbook.Names("total5").RefersToRange
...
jusqu' a maintenant, j arrive a faire ceci :
Code:
For i = 1 To 20
dim CatLn(i) = ThisWorkbook.Sheets("INTRO").Range("N16" + 1).Value
Next i
evidement ca ne marche pas car le .Range("N16" +1) n'est pas reconnu ....
tout d'abbord merci beaucoup pour votre aide et attention
j'ai juste un petit probleme avec chacune de vos solution ...
avec la solution de fhoest j'ai une erreur sur
Code:
CatLn(i) = ThisWorkbook.Sheets("INTRO").Range("N" & 15 + i).Value ( j'ai tester avec 15 et 16)
"L'indice n'appartient pas a la selection"
avec la solution de Roger pas d'erreur, mais la variable reste vide ....
si je fais un :
Code:
msgbox CatLn1 (ou CatLn5 ...)
juste apres la boucle, le msgbox devrait m afficher la valeur stocker dans la variable ... mais rien ....
derniere petite question, puis je faire un
Code:
Dim CatLn(19) As String
ou
Dim CatLn(1 to 20) As String
??
MAJ
J'ai mis a jour la solution de fhoest, je n'ai plus d'erreur mais la variable reste desesperement vide ....
pourtant quand je creer la variable normallement :
Code:
Dim CatLn1 As String
CatLn1 = ThisWorkbook.Sheets("INTRO").Range("N16").Value
...
avec la solution de Roger pas d'erreur, mais la variable reste vide ....
si je fais un :
msgbox CatLn1 (ou CatLn5 ...)
juste apres la boucle, le msgbox devrait m afficher la valeur stocker dans la variable ... mais rien ....
non ! Voilà ce que tu as loupé :CatLn1 n'est pas CatLn(1) !
tu peux encore essayer celui là
Code:
Dim CatLn(20), i As Byte
For i = 1 To 20
CatLn(i) = Sheets("INTRO").[N15].Offset(i)
Next
'et pour contrôle
MsgBox CatLn(1) & " " & CatLn(5)
NB quand on déclare un tableau, l'indice commence à 0 donc, ici CtLn(0) existe et est vide comme les autres avant leur initialisation !
Pour commencer à 1, il faut, en début de module : Option Base 1 !
merci pour ton explication sur la difference entre CatLn1 et CatLn(1)
mon erreur se situer là .... betement je penser que les boucles aller
me creer des variables se nommant CatLn1, CatLn2 ...
donc après reverification, les methodes de Roger et de fhoest fonctionne très bien