Bonjour à tous,
Je suis nouveau ici et c'est mon 1er message.
N'hésitez pas à corriger ma présentation.
Je rencontre un problème sur boucle VBA avec IF (ci-dessous)
Cela fonctionne une fois, pour l'enregistrement 16 (par exemple), mais pas pour les suivants, qui respectent pourtant la même condition que la ligne 16.
Je m'explique.
Tant que la cellule (i, 38) n'est pas vide, et SI la valeur = 1 (sachant que le 1 est calculé), ALORS exécute les quelques commandes qui suivent, SINON on passe à la cellule du dessous.
Merci d'avance pour tous conseils ! :-)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 Sub Liste_des_mvt_injustiées() Sheets("Saisie").Activate Dim i As Integer i = 7 While Sheets("Saisie").Cells(i, 38).Value <> "" 'boucle qui contrôle l'ensemble de la liste cariste If Cells(i, 38).Text = "1" Then 'Si le contrôle(soupçon de fraude) est vrai Sheets.Add.Move After:=Sheets(Sheets.Count) 'Je crée une nouvelle feuille et la déplace en dernier ActiveSheet.Name = Sheets("Saisie").Cells(i, 4).Value 'Je renomme la feuille au nom du cariste Sheets("Check").Select With Selection .AutoFilter Field:=2, Criteria1:=Sheets("Saisie").Cells(i, 5).Value 'Détail: Je filtre sur les mvt du cariste End With Range("A2").Select 'Je sélectionne le détail de ses mouvements Selection.CurrentRegion.Select Selection.Copy Sheets(Sheets.Count).Select 'Je colle sur la dernière feuille Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False 'Je passe au contrôle suivant End If i = i + 1 Wend End Sub
Partager