Boucle VBA et incrementation
Résolu/Fermé
Mo one
Messages postés
7
Date d'inscription
jeudi 7 juillet 2011
Statut
Membre
Dernière intervention
7 juillet 2011
-
7 juil. 2011 à 13:12
Mo one Messages postés 7 Date d'inscription jeudi 7 juillet 2011 Statut Membre Dernière intervention 7 juillet 2011 - 7 juil. 2011 à 17:28
Mo one Messages postés 7 Date d'inscription jeudi 7 juillet 2011 Statut Membre Dernière intervention 7 juillet 2011 - 7 juil. 2011 à 17:28
A voir également:
- Vba increment
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Mkdir vba ✓ - Forum VB / VBA
- Excel compter cellule couleur sans vba - Guide
- Vba range avec variable ✓ - Forum VB / VBA
- Vba dépassement de capacité ✓ - Forum Excel
6 réponses
thordek
Messages postés
32
Date d'inscription
mercredi 6 juillet 2011
Statut
Membre
Dernière intervention
12 septembre 2013
9
Modifié par thordek le 7/07/2011 à 13:15
Modifié par thordek le 7/07/2011 à 13:15
Que veux-tu exactement ?
Juste répéter 96 fois la macro "macro5" ? Sans rien changer dans la macro ?
Juste répéter 96 fois la macro "macro5" ? Sans rien changer dans la macro ?
Mo one
Messages postés
7
Date d'inscription
jeudi 7 juillet 2011
Statut
Membre
Dernière intervention
7 juillet 2011
7 juil. 2011 à 13:19
7 juil. 2011 à 13:19
J'ai en entré 576 valeurs en colonnes
1
2
3
4
5
6
1
2
3
4
5
6
etc
et je veux en sortie
1 2 3 4 5 6
1 2 3 4 5 6
etc
1
2
3
4
5
6
1
2
3
4
5
6
etc
et je veux en sortie
1 2 3 4 5 6
1 2 3 4 5 6
etc
thordek
Messages postés
32
Date d'inscription
mercredi 6 juillet 2011
Statut
Membre
Dernière intervention
12 septembre 2013
9
7 juil. 2011 à 13:27
7 juil. 2011 à 13:27
As-tu essayé une boucle :
for i = 1 to (576-5)
n1 = "A" & i
n2 = "A" & (i+5)
range(n1:n2).Select
...
...
...
next i
je pense que quelque chose dans le genre, ça devrait aller.
Tiens moi au courant.
Cdt,
Thordek
for i = 1 to (576-5)
n1 = "A" & i
n2 = "A" & (i+5)
range(n1:n2).Select
...
...
...
next i
je pense que quelque chose dans le genre, ça devrait aller.
Tiens moi au courant.
Cdt,
Thordek
Mo one
Messages postés
7
Date d'inscription
jeudi 7 juillet 2011
Statut
Membre
Dernière intervention
7 juillet 2011
7 juil. 2011 à 14:11
7 juil. 2011 à 14:11
Slt Thordek
sur
range(n1:n2).Select
le compilateur reponds
attenduseparateur de liste ou) attendu
J'ai essayé Range("n1:n2").Select
Pas mieux.
sur
range(n1:n2).Select
le compilateur reponds
attenduseparateur de liste ou) attendu
J'ai essayé Range("n1:n2").Select
Pas mieux.
Mo one
Messages postés
7
Date d'inscription
jeudi 7 juillet 2011
Statut
Membre
Dernière intervention
7 juillet 2011
7 juil. 2011 à 16:28
7 juil. 2011 à 16:28
Super ca marche! je continu d'ecrire le reste du code avant de crier victoire.
Merci beaucoup, je te tiens au courant de la suite
Merci beaucoup, je te tiens au courant de la suite
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 7/07/2011 à 16:44
Modifié par michel_m le 7/07/2011 à 16:44
Bonjour
tes nombres en colonne A, restitution à partir de B3
Michel
tes nombres en colonne A, restitution à partir de B3
Option Explicit Option Base 1 Sub faire_matrice_6() Dim Fin As Integer, Nbre As Integer, Max As Byte Dim T_in(), T_out() Dim Cptr_in As Integer, Cptr_out As Integer, col As Byte Fin = Columns("A").Find("*", Range("A1"), , , , xlPrevious).Row T_in = Application.Transpose(Range("A1:A" & Fin).Value) Nbre = UBound(T_in) Max = Int(Nbre / 6) ReDim T_out(Max, 6) Cptr_out = 1 For Cptr_in = 1 To Nbre For col = 1 To 6 T_out(Cptr_out, col) = T_in(Cptr_in) Cptr_in = Cptr_in + 1 Next Cptr_out = Cptr_out + 1 Cptr_in = Cptr_in - 1 Next Application.ScreenUpdating = False Range("C2").Resize(Max, 6) = T_out End Sub
Michel
Mo one
Messages postés
7
Date d'inscription
jeudi 7 juillet 2011
Statut
Membre
Dernière intervention
7 juillet 2011
7 juil. 2011 à 17:00
7 juil. 2011 à 17:00
Merci, je regarde ça un peu plus tard
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 7/07/2011 à 17:02
Modifié par michel_m le 7/07/2011 à 17:02
fallait lire C2 au lieu de B3...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mo one
Messages postés
7
Date d'inscription
jeudi 7 juillet 2011
Statut
Membre
Dernière intervention
7 juillet 2011
7 juil. 2011 à 17:28
7 juil. 2011 à 17:28
Slt,
Je m'en suis sorti avec ce code
For i = 1 To 576
n1 = "A" & (i + 1)
n2 = "A" & (i + 5)
n3 = "B" & i
plage1 = n1 & ":" & n2
Range(plage1).Select
Selection.Copy
Range(n3).Select
Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False _
, Transpose:=True
Range(plage1).Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
Next i
Merci à tous pour vos conseil et recette.
Je m'en suis sorti avec ce code
For i = 1 To 576
n1 = "A" & (i + 1)
n2 = "A" & (i + 5)
n3 = "B" & i
plage1 = n1 & ":" & n2
Range(plage1).Select
Selection.Copy
Range(n3).Select
Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False _
, Transpose:=True
Range(plage1).Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
Next i
Merci à tous pour vos conseil et recette.
Mo one
Messages postés
7
Date d'inscription
jeudi 7 juillet 2011
Statut
Membre
Dernière intervention
7 juillet 2011
7 juil. 2011 à 14:20
7 juil. 2011 à 14:20
Slt Thordek
Je suis vraiment tout debutant dans VBA et dans la programmation aussi excuse d'avance mes questions naïves.
Merci pour ton aide
Je suis vraiment tout debutant dans VBA et dans la programmation aussi excuse d'avance mes questions naïves.
Merci pour ton aide