Repeter une macro x fois

Fermé
Pierre l'encreur - 28 juil. 2009 à 14:13
 Pierre l'encreur - 28 juil. 2009 à 16:19
Bonjour,

J'aimerais transposer 2200 ligne d'une feuille excel... Pour cela je me suis dit qu'une macro serait l'idéal, mais j'y connais rien (pire qu'un noob!).

J'ai réussi à faire une macro pour transposer ma 1ere ligne et transposer ma seconde ligne à la suite. Problème, cela doit ce faire manuellement.

Est-ce que quelqun aurait la clé pour pouvoir automatiser le truc.

Merci beaucoup.

Voici la macro en question générée par enregistrement:

Sub Macro19()
'
' Macro19 Macro
'

'
Sheets("Feuil1").Select
ActiveCell.Offset(1, 0).Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Sheets("Feuil3").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
End Sub

2 réponses

Bonjour,

Moi aussi je débute alors je ne sais pas si ça va t'aider (vive la solidarité entre débutant !!)
Mais l'idée c'est que tu répètes la même opération pour chaque ligne.
Donc tu crées un compteur i qui représente le n° de la ligne, tu l'initialises à 1, et tu fais une boucle FOR du type

FOR i = 1 to 2000

ton opération

i = i +1 (comme ça tu passes à la ligne suivante)

FIN BOUCLE FOR (euh, je sais plus la syntaxe :p)

Tu dois même pouvoir faire un truc genre WHILE (ligne non vide) faire l'opération, ligne suivante END LOOP

Bon courage !
0
Pierre l'encreur
28 juil. 2009 à 15:20
Merci pour ta réponse si rapide, malheureusement je suis tellement débutant (ce matin...) que je n'arrive pas à faire en sorte que ça marche.
0
jjsteing Messages postés 1669 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
28 juil. 2009 à 15:33
bonjur..

FOR i = 1 to 2000 'ok

ton opération 'j suis d accord

i = i +1 (comme ça tu passes à la ligne suivante) 'ah ben non, si c'est un for c'a s incremente tout seul.. tu confond avec un while/wend

FIN BOUCLE FOR (euh, je sais plus la syntaxe :p)=> la solution ::: ) next


=>

for i=1 to 2000
'ici ton code
next

ou

i=1
while i<2000
'ici ton code
i=i+1 ' c'est là :)
wend
0
Pierre l'encreur
28 juil. 2009 à 16:19
Merci de m'avoir aidé. Un collègue à finalement réussi à y arriver grâce à une formule alambiquée.

Je vous fait tout de même part du problème que j'ai eu:

en lançant le programme suivant:

for i=1 to 2000
'ici mon code
next

Excel ne m'affichait que des blancs alors que je le voyais faire l'opération demandée sur toute la ligne...

En tout cas, merci encore de m'avoir aidé.
0