Boucle dans boucle ? [Résolu]

Signaler
Messages postés
26
Date d'inscription
mercredi 25 avril 2012
Statut
Membre
Dernière intervention
14 juin 2012
-
 Utilisateur anonyme -
Bonjour à tous ,

Je viens vers vous pour avoir un oeil nouveau sur mon code..

J'aimerai pouvoir effectuer une boucle dans une boucle ^^"

Voici ma première boucle qui fonctionne ;


Do

e = e + 1

Windows("pavrlntr.va").Activate

Range("A" & c).Select
Range("A" & c).copy


Windows("Calcul.xls").Activate
Range("B" & a).Select
ActiveSheet.Paste

c = c + 16
a = a + 1


Loop While e <= 10

j'aimerai y ajouter une autre boucle qui me permettra d'incrémenter de 1 la valeur "c" pour décaler d'une case ...

Cordialement..

7 réponses


Salut,
do
'bla bla bla
loop until TextBox5.Value > index

Ça ferait l'affaire?


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Messages postés
172
Date d'inscription
jeudi 8 décembre 2011
Statut
Membre
Dernière intervention
21 juillet 2013
2
Bonjour !

Pas du tout clair vu que dans ton code (mal présenté, utilises la troisième icone en partant de la droite ...)
tu incrémentes déjà c de 16 !   Pourquoi ne pas utiliser une boucle For - Next ?

Sinon pas besoin de Select, à remplacer directement par Copy ou Paste ...

___________________________________________________________________________________________________________________
Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !

Bonjour,
j'aimerai y ajouter une autre boucle qui me permettra d'incrémenter de 1 la valeur "c"


Marc a raison, tu fais: c c + 16 si tu veux l’incrémenter de 1 il faudrait: c c + 1...
Mais je ne pense pas que ton problème est de cette ordre...
Dis nous tout...
Et puis:
Do 
e = e + 1 
Windows("pavrlntr.va").Activate 
Range("A" & c).Select 
Range("A" & c).copy 
Windows("Calcul.xls").Activate 
Range("B" & a).Select 
ActiveSheet.Paste 
c = c + 16 
a = a + 1 
Loop While e <= 10 

Est plus compréhensible que ce que tu nous as mis non? alors quand tu mets du code, pense à la troisième icône en partant de la droite...

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique

Sinon pour faire une boucle dans une boucle, plusieurs façons possibles... exemple:
for e = 0 to 9
   'bla bla bla 
   for f = 0 to 150
       'bla bla bla
   next f
   'bla bla bla 
next e

e = 0
do until e > 9
   e = e + 1
   'bla bla bla 
   for f = 0 to 150
       'bla bla bla
   next f
   'bla bla bla 
loop


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Messages postés
26
Date d'inscription
mercredi 25 avril 2012
Statut
Membre
Dernière intervention
14 juin 2012

Rebonjour à tous,

j'ai résolu mon problème grâce à vos conseils très astucieux !

Mais bon .. voici un autre soucis qui me turlupine !

A la fin de mon code j'ai une boucle "Loop While TextBox5.Value <= index"

Cette boucle me sert a quitter ma boucle principal quand ma valeur de textbox est inférieur ou = a ma variable INDEX!!!!

Mon soucis est que si par exemple je souhaiterai que ma textbox est = 3
je ne veux pas exécuter la boucle une quatrième fois car le je lui dit de recommencer tant que ma valeur est inférieur ou égal ... mais si je retire le = cela ne marche pas .. auriez vous une idée? :o

cordialement



Dim x As Integer
Dim valeur_cellule_past As Integer
Dim valeur_cellule_copy As Integer
Dim nombre_boucle As Integer
Dim boucle_principale As Integer
Dim rachid As String
Dim boualem As String
Dim index As Integer







''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''         Transfert des boundery UP        '''''''''''''''''''''''''''''''''''''

'valeur des variables

x = 1
boucle_principale = 0
nombre_boucle = 0
valeur_cellule_copy = 1
valeur_cellule_past = 9
rachid = "A"
index = 1


''''''''''''''''''''''''''''         Boucle principale        '''''''''''''''''''''''''''''''''''''





Do

Select Case index


Case 1: boualem = "B"
Case 2: boualem = "F"
Case 3: boualem = "J"
Case 4: boualem = "N"


End Select


Do


boucle_principale = boucle_principale + 1

Do


nombre_boucle = nombre_boucle + 1

Windows("pavrlntr.va").Activate


Range(rachid & valeur_cellule_copy).copy

Windows("Calcul.xls").Activate
Range(boualem & valeur_cellule_past).Select
ActiveSheet.Paste

valeur_cellule_copy = valeur_cellule_copy + 16
valeur_cellule_past = valeur_cellule_past + 1



Loop While nombre_boucle <= 10


x = x + 1
valeur_cellule_copy = x

valeur_cellule_past = valeur_cellule_past + 4

nombre_boucle = 0

Loop While boucle_principale <= 5

valeur_cellule_copy = 1
valeur_cellule_past = 9
nombre_boucle = 0
boucle_principale = 0



index = index + 1



Loop While TextBox5.Value <= index



''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''  Fin de boucle  '''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Messages postés
26
Date d'inscription
mercredi 25 avril 2012
Statut
Membre
Dernière intervention
14 juin 2012

Merci Acive ! :)

Range(rachid & valeur_cellule_copy).copy

Windows("Calcul.xls").Activate
Range(boualem & valeur_cellule_past).Select
ActiveSheet.Paste


dit que penses tu de ce code ?

Je me demandais si il était possible de faire un copie colle ! sans activer la page ?:o

Je le vois plutôt comme ça:
Range("A1:A2").Copy Destination:=Range("A3:A4")


Bon dans ce cas tu es obligé de copier deux cellules minimum, je cherche comment faire la même chose pour une seule cellule.

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique