Boucle for next et userform
Bonjour as tous et meilleurs vœux pour 2014 !!
J'ai un fichier de plusieurs avec plusieurs feuille.
Sur la première feuille j'ai une liste de variable unique.
Sur la deuxième je retrouve les mêmes variables en doublon avec d'autre variable unique, sur une colonne j'ai le nombre de doublon associé a chaque variable.
Dans mon code j'ai une boucle For Next du nombre de variable a traité (2547), je charge la première variable de la feuille 1 puis je filtre cette variable sur la feuille 2. Apres je regarde le nombre de doublon existant pour cette variable.
Là deux solutions :
- soit 1 seul doublon et dans ce cas je fait mon traitement
- soit plusieurs doublons et la je charge toutes les variables dans une listebox.
Mon problème et que lorsque la listbox et chargé des variables, je voudrai que le userform apparaisse et après un double clic sur la listbox sur la variable de mon choix, mon traitement se fasse et on passe a la boucle suivante.
Mais ce n'est pas le cas, dès que j'ai plus d'une valeurs, ma listbox se charge mais mon userform n'est pas accessible et ma boucle continu. Du coup je me retrouve avec ma listbox pleine a la fin de la boucle et je ne peux choisir les variables.
ci joint mon code (le userform en question est le 2, le 1 est une barre de progression) :
Code:
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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| Sub RecherchePDR()
Dim i, L_MI_BMA, m
Dim Tau As Long
Dim Tau1 As Long
Dim RF As String
Dim MaPlage As Range
Dim C As Object
Tau = 0
Tau1 = 0
Load UserForm1
With UserForm1
.Show
.Left = 700
.Top = 40
End With
For i = 2 To 2547
RF = Sheets("RECHERCHE MI").Range("B" & i).Value
Sheets("Feuil1").Range("$A$1:$Y$46563").AutoFilter field:=2, Criteria1:=RF
L = Sheets("Feuil1").Range("A65536").End(xlUp).Row
K = Sheets("Feuil1").Range("A" & L).Value
If K = 1 Then
Art = Sheets("Feuil1").Range("W" & L).Value
LibArt = Sheets("Feuil1").Range("X" & L).Value
Sheets("RECHERCHE MI").Range("W" & i).Value = Art
Sheets("RECHERCHE MI").Range("AI" & i).Value = LibArt
Sheets("MI BMA").Range("$A$1:$Y$46563").AutoFilter field:=4, Criteria1:=Art
L_MI_BMA = Sheets("MI BMA").Range("A65536").End(xlUp).Row
If L_MI_BMA <> 1 Then
With Sheets("RECHERCHE MI")
.Range("Y" & i).Value = Sheets("MI BMA").Range("A" & L_MI_BMA).Value
End With
End If
End If
Tau = ((i - 2) * 100) / (2545)
Tau1 = Tau * 2
UserForm1.Label1.Width = Tau1
UserForm1.Caption = "Progression : " & Tau & "%"
UserForm1.Repaint
Next
Tau = 0
Tau1 = 0
Load UserForm1
For i = 2 To 2547
RF = Sheets("RECHERCHE MI").Range("B" & i).Value
Sheets("Feuil1").Range("$A$1:$Y$46563").AutoFilter field:=2, Criteria1:=RF
L = Sheets("Feuil1").Range("A65536").End(xlUp).Row
K = Sheets("Feuil1").Range("A" & L).Value
If K > 1 And K <> "X12 Code Info Externe PF N02" Then
Call Cherch
End If
Tau = ((i - 2) * 100) / (2545)
Tau1 = Tau * 2
UserForm1.Label1.Width = Tau1
UserForm1.Caption = "Progression : " & Tau & "%"
UserForm1.Repaint
Next
UserForm1.Hide
End Sub |