Axeu
Messages postés49Date d'inscriptionjeudi 22 novembre 2012StatutMembreDernière intervention20 juin 2014
-
10 févr. 2014 à 17:56
Axeu
Messages postés49Date d'inscriptionjeudi 22 novembre 2012StatutMembreDernière intervention20 juin 2014
-
20 févr. 2014 à 11:20
Bonjour à tous !
Tout d'abord merci d'avance à ceux qui prendront un peu de leur temps pour m'aiguiller dans ma quête.
Je souhaite créer une boucle qui scrute les 200 colonnes d'un fichier Excel afin de trouver les emplacements de certaines qui vont me servir pour le reste de ma macro. Pour cela j'ai défini dans ma macro un tableau colonnes_utiles(14) où chaque colonne_utiles(i) représente l'intitulé des 15 colonnes considérées.
Dans le déroulement de ma macro, à un moment on va vouloir trouver par exemple les colonnes_utiles(0,1,6,10), puis, bien plus loin, rescruter pour trouver les colonnes (0,1,8,9,11,12,13).
Je ne peux donc pas utiliser une boucle habituelle "For i=initial to end", je voudrai que les valeurs de "i" ne soit pas successives mais définies.
Quelle synthaxe utiliser pour y arriver ?
Prenons l'exemple (0,1,6,10), j'ai pour l'instant testé ceci, bien entendu ça ne fonctionne pas:
Dim A() As Variant
A = Array(0, 1, 6, 10)
For Each A In A()
col = 1
Do While Cells(4, col) <> colonnes_utiles(A) 'les intitulés sont en ligne 4
col = col + 1
Loop
'=>ACTION SOUHAITEE
Next A
Cette action n'est qu'une petite partie de ma macro qui pour le reste fonctionne parfaitement, mais en attendant de trouver la solution, je défini les colonnes_utiles(0,1,2,3) avec les intitulés voulus, puis un For i=0 to 3.
Plus loin je REDEFINI des colonnes_utiles(0,1,2,3,4,5,6) avec d'autres intitulés, puis un For i=0 to 6...
Dans l'idée c'est tout con mais je ne trouve pas quelle synthaxe utiliser.
Axeu
Messages postés49Date d'inscriptionjeudi 22 novembre 2012StatutMembreDernière intervention20 juin 2014 20 févr. 2014 à 11:17
Merci pour vos éléments de réponse, finalement j'ai trouvé une solution qui fonctionne, à savoir :
Dim A() As Variant A = Array(0, 1, 3, 4, 6, 7, 8) 'exemple de valeurs prédéfinies Dim indice As Integer Dim indice_trouve As Integer
For indice = 0 To 6 indice_trouve = A(indice) 'pour indice_trouve=2, indice=3 col = 1 Do While Cells(4, col) <> colonnes_utiles(indice_trouve) col = col + 1 Loop ' => ACTION à réaliser
Next indice
Voilà, je vous remercie d'avoir pris un moment pour moi, j'irai voir plus en détails comment marche la fonction debug.print.