[VBA] Problème de boucle

ange180190

XLDnaute Junior
Bonjour tout le monde ,

j'ai un petit problème de boucle que je voulais résoudre moi-même ms je suis dessus depuis hier et j'avoue que là je sais plus trop quoi faire...vos idées sont les bienvenues :)

je vous donne d'abord le code et vous explique en dessous ce que j'aimerais qu'il fasse :
Code:
Dim Feuille1 As Worksheet

Boucle = 1
    For Each Feuille1 In Worksheets
    
           For i = 9 To 150


    wb.Activate
    Range("F" & (i + 1)).Select
    Application.CutCopyMode = False
    Selection.Copy
    wb2.Activate
    Sheets("page" & (Boucle)).Select
    Range("B6").Select
    ActiveSheet.Paste
    Range("K6").Select
    ActiveSheet.Paste

  If wb.Sheets("Gestion dossiers").Cells(i, 1).Value >= 49 Or wb.Sheets("Gestion dossiers").Cells(i, 1).Value < 31 Then
     
     i = (i + 1)

 Else:
    
    wb.Activate
    Range("F" & (i + 2)).Select
    Application.CutCopyMode = False
    Selection.Copy
    wb2.Activate
    Sheets("page" & (Boucle) & (Chr(32)) & (Chr(40)) & "2" & (Chr(41))).Select
    Range("B6").Select
    ActiveSheet.Paste
    Range("K6").Select
    ActiveSheet.Paste
    wb.Activate
    Range("F" & (i + 3)).Select
    Application.CutCopyMode = False
    Selection.Copy
    wb2.Activate
    Sheets("page" & (Boucle)).Select
    Range("B6").Select
    ActiveSheet.Paste
    Range("K6").Select
    ActiveSheet.Paste


i = i + 2

End If

         Next i
    
   
   Next Feuille1
    
    wb.Saved = False


alors j'aimerais que dès qu'il rencontre le nombre 31 ( jusqu'a 49 ) dans la cellule A(i) du classeur wb , qu'il copie ce qui se trouve dans la cellule F(i+1) de ce classeur ds le classeur wb2 et qu'il recopier sur chaque feuille à partir de cette cellule la ce qui se trouve dans F(i+1),F(i+2)

je vous donne un exemple ca sera peut etre plus clair :

Dans la cellule A30 il y a un 31 donc il doit prendre la valeur de F31 la recopier dans page1 , prendre F32 la recopier dans page1 (2) , prendre F33 la recopier dans page2 , F34 la recopier dans page2 (2), ainsi de suite jusqu'à ce qu'il ne rencontre plus de 31 ( à 49 ) dans les cellules A(i)


et avec le code que j'ai ou que j'ai fait avant , il me copie tjrs la dernière cellule de F dans une des pages :s
dsl d'avoir été si longue et merci bcp à tout ceux qui m'aideront !
bonne journée ,
ange180190.
 
Dernière édition:

ange180190

XLDnaute Junior
Re : [VBA] Problème de boucle

oui la condition est "bonne" c'est juste qu'il me fait pas la boucle enfin il me regarde toutes les cellules et ne copie que la dernière valeur qui a 31 et j'aimerais qu'il me copie dès la première jusqu'à la dernière tu vois ce que je veux dire ? et je pensais que c'était a cause de ma première boucle qu'il y avait un soucis...
 

ange180190

XLDnaute Junior
Re : [VBA] Problème de boucle

j'ai tenté ca :

Code:
Dim Feuille1 As Worksheet

  Boucle = 1
    For Each Feuille1 In Worksheets
    
           For i = 9 To 150



  If wb.Sheets("Gestion dossiers").Cells(i, 1).Value >= 49 Or wb.Sheets("Gestion dossiers").Cells(i, 1).Value < 31 Then
     
     i = (i + 1)

 Else:
    
   [COLOR="Red"] wb.Activate
    Range("F" & (i + 1)).Select
    Application.CutCopyMode = False
    Selection.Copy
    wb2.Activate
    Sheets("page" & (Boucle)).Select
    Range("B6").Select
    ActiveSheet.Paste
    Range("K6").Select
    ActiveSheet.Paste[/COLOR]
    
    i = i + 1
    
    wb.Activate
    Range("F" & (i + 2)).Select
    Application.CutCopyMode = False
    Selection.Copy
    wb2.Activate
    Sheets("page" & (Boucle) & (Chr(32)) & (Chr(40)) & "2" & (Chr(41))).Select
    Range("B6").Select
    ActiveSheet.Paste
    Range("K6").Select
    ActiveSheet.Paste
    wb.Activate
    Range("F" & (i + 3)).Select
    Application.CutCopyMode = False
    Selection.Copy
    wb2.Activate
    Sheets("page" & (Boucle)).Select
    Range("B6").Select
    ActiveSheet.Paste
    Range("K6").Select
    ActiveSheet.Paste


i = i + 2

End If

         Next i
    
   
   Next Feuille1
    
    wb.Saved = False

il me boucle sur la partie en rouge et copie et colle sur la page1 et page1 (2) et écrase à chaque fois le copiage précédent...
 

Pierrot93

XLDnaute Barbatruc
Re : [VBA] Problème de boucle

Re,

comprends pas, avec un tel code :

Code:
If Cells(1, 1).Value >= 49 Or Cells(1, 1).Value < 31 Then

seules les valeurs supérieures ou égale à 49 ou bien inférieures à 31 seront prises en compte....

d'autre part, tu fais également une boucle "for each" sur les feuilles, or il me semble que tu n'utilises pas cette variable (Feuille1 ) dans ton code...
 

ange180190

XLDnaute Junior
Re : [VBA] Problème de boucle

il ne va pas dans le then si les valeurs sont supérieures à 49 ou inférieures à 31 ? c'est ce que je pensais...parce qu'il me copie le bon truc...sauf qu'il ne le fait qu'une fois
et vais changer le nom Feuille aussi alors
merci
 
Dernière édition:

ange180190

XLDnaute Junior
Re : [VBA] Problème de boucle

j'y suis arrivée , au cas où quelqu'un a un prob similaire , voici le code : ( à remplacer dans le ELSE , le reste du code était bon )

Code:
While (Boucle <= (Cells(1, 1) + 1))

wb.Activate
    Range("F" & (i)).Select
    Application.CutCopyMode = False
    Selection.Copy
    wb2.Activate
    Sheets("page" & (Boucle)).Select
    Range("B9:E9").Select
    ActiveSheet.Paste
    Range("K9:Q9").Select
    ActiveSheet.Paste
    wb.Activate
    Range("F" & (i + 1)).Select
    Application.CutCopyMode = False
    Selection.Copy
    wb2.Activate
    Sheets("page" & (Boucle) & (Chr(32)) & (Chr(40)) & "2" & (Chr(41))).Select
    Range("B9:E9").Select
    ActiveSheet.Paste
    Range("K9:Q9").Select
    ActiveSheet.Paste

Boucle = (Boucle + 1)
i = i + 2

Wend
 

Discussions similaires

Statistiques des forums

Discussions
312 347
Messages
2 087 504
Membres
103 564
dernier inscrit
Paul 1