Select case dans userform_initialize
Bonjour à tous
dans la Private Sub Userform_Initialize, j'ai intégré la condition Select Case/End Select.
En phase de test, ie en lançant la macro qui teste le cas ControleQ = True, pas de pb. Maintenant quand j'attaque en étant censé me trouver dans le cas False, je me rend compte que la cas 'True' est lu ... Je suppose que cela est du au fait que je suis dans la procédure d'initialisation.
Comment contourner le problème? (Fichier en pièce jointe : Le lancement de la macro création ne doit pas lire le cas ControleQ=true, à l'inverse de la macro Cloture qualité)
Merci pour votre aide.
Frederic.
Private Sub UserForm_Initialize()
Dim i As Integer
'Dim iq As Integer
Dim Plage As Range
Set WsBase = Sheets("Base")
Set Ws = Sheets("Listes")
Worksheets("Base").Activate
suivant = False
precedent = False
resecteur = False
'ActiveWorkbook.Save 'Sauvegarde avant ouverture formulaire
Select Case ClotureQ
Case ClotureQ = False
Box3.Value = Format(Date, "dd/mm/yyyy")
With Me.Box4 'Box secteur
For i = 10 To Ws.Range("K2").End(xlToRight).Column 'colonne 10 à dernière valeur
.AddItem Ws.Cells(2, i)
Next i
End With
With Me.Box1 'Box NumFA
For i = 3 To WsBase.Range("B" & Rows.Count).End(xlUp).Row
.AddItem WsBase.Range("A" & i)
Next i
End With
With Sheets("Listes")
Set Plage = .Range("E2:E" & .Range("E65536").End(xlUp).Row)
End With
Box2.List = Plage.Value
Box53.List = Plage.Value
Box23.List = Plage.Value
Box26.List = Plage.Value
Box29.List = Plage.Value
Box32.List = Plage.Value
Box35.List = Plage.Value
Box49.List = Plage.Value
Box51.List = Plage.Value
'Remplissage combobox Type anomalie (Colonne G onglet 'Listes')
With Sheets("Listes")
Set Plage = .Range("G2:G" & .Range("G65536").End(xlUp).Row)
End With
Box7.List = Plage.Value
'Remplissage combobox origine anomalie (Colonne I onglet 'Listes')
With Sheets("Listes")
Set Plage = .Range("I2:I" & .Range("I65536").End(xlUp).Row)
End With
Box5.List = Plage.Value
Case ClotureQ = True
Sheets("Base").Range("AN1").Select
iq = Range("AN65536").End(xlUp).Row
For i = 2 To iq
FA.FrmQlt.Visible = True
If ActiveCell.Offset(i, 0) = "OUI" Then
If ActiveCell.Offset(i, 11).Value = "" Then
Ligne = ActiveCell.Offset(i, 0).Row
MsgBox ("Valeur OUI trouvée à la ligne : " & Ligne)
CmdRecherche_Click
Exit Sub
End If
End If
Next
End Select
End Sub
Bonsoir,
J’avance une explication.
Voici une sélection normale avec une variable booléenne.
Select Case ClotureQ
Case False
(Traitement si ClotureQ est Faux)
Case True
(Traitement si ClotureQ est Vrai)
End SelectMainenant, si tu écris
Select Case ClotureQ
Case ClotureQ =FalseDans le cas où ClotureQ est Faux, le résultat de ClotureQ =False est Vrai, ce qui n’est pas le cas de ClotureQ. Tu effectues donc le traitement de ClotureQ =True.
A+
Bonjour Frangy bonjour à tous
et merci encore pour ce coupe de main : çà marche .....
Frederic