F
fred
Guest
Bonjour,
Dans mon code ci-dessous, je souhaiterais que si le numéro de certificat n'existe pas dans la base, les 2 messages suivants s'affichent l'un après l'autre
MsgBox 'IL NE S'AGIT PAS D'UN DUPLICATA', vbCritical, 'VERIFICATION EFFECTUEE'
MsgBox 'VOUS DEVEZ IMPRIMER LE CERTIFICAT PAR LA METHODE CLASSIQUE', vbInformation, 'INSTRUCTION'
J'ai bien fait des essais mais alors les message ci dessus s'affichent à chaque cellule contrôlée dans la base, alors que je ne le veux qu'un fois ci la condition est remplie au moins une fois sur toutes les cellules contrôlées dans la base
Sub duplicata()
'vérifier que le numéro de certificat existe déjà dans la base
Dim V As Variant 'déclare la variable V
Dim Cel As Range 'déclare la variable Cel
'si l'impression a été lancée depuis la feuille 'Sucres BLANCS' (feuille active)
If ActiveSheet.Name = 'Sucres BLANCS' Then
V = Sheets('Sucres BLANCS').Range('L4').Value 'Définit la variable V L4= N° du certificat
Else
'si l'impression à été lancée depuis la feuille 'Sucres ROUX' (feuille active)
If ActiveSheet.Name = 'Sucres ROUX' Then
V = Sheets('Sucres ROUX').Range('L4').Value 'Définit la variable V L4= N° du certificat
End If
End If
With Sheets('Feuil3') 'feuille de la base
'Boucle : Vérification dans la base sur toute les cellule de la colonne A (Feuille 3)
For Each Cel In .Range('A1:A' & .Range('A65536').End(xlUp).Row)
If Cel.Value = V Then 'Condition : Si la cellule est = de la variable V
'On suspend la gestion des évènements VBA : notamment la fonction Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
'le n° de certificat à déjà été utilisé
MsgBox 'IL S'AGIT BIEN D'UN DUPLICATA', vbInformation, 'VERIFICATION EFFECTUEE'
MsgBox 'IMPRIMER LE DUPLICATA', vbInformation, 'IMPRESSION AUTORISEE'
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
'On rétablit la gestion des évènements VBA
Application.EnableEvents = True
End If
Next Cel 'Tester la cellule suivante dans la boucle
End With
End Sub
Dans mon code ci-dessous, je souhaiterais que si le numéro de certificat n'existe pas dans la base, les 2 messages suivants s'affichent l'un après l'autre
MsgBox 'IL NE S'AGIT PAS D'UN DUPLICATA', vbCritical, 'VERIFICATION EFFECTUEE'
MsgBox 'VOUS DEVEZ IMPRIMER LE CERTIFICAT PAR LA METHODE CLASSIQUE', vbInformation, 'INSTRUCTION'
J'ai bien fait des essais mais alors les message ci dessus s'affichent à chaque cellule contrôlée dans la base, alors que je ne le veux qu'un fois ci la condition est remplie au moins une fois sur toutes les cellules contrôlées dans la base
Sub duplicata()
'vérifier que le numéro de certificat existe déjà dans la base
Dim V As Variant 'déclare la variable V
Dim Cel As Range 'déclare la variable Cel
'si l'impression a été lancée depuis la feuille 'Sucres BLANCS' (feuille active)
If ActiveSheet.Name = 'Sucres BLANCS' Then
V = Sheets('Sucres BLANCS').Range('L4').Value 'Définit la variable V L4= N° du certificat
Else
'si l'impression à été lancée depuis la feuille 'Sucres ROUX' (feuille active)
If ActiveSheet.Name = 'Sucres ROUX' Then
V = Sheets('Sucres ROUX').Range('L4').Value 'Définit la variable V L4= N° du certificat
End If
End If
With Sheets('Feuil3') 'feuille de la base
'Boucle : Vérification dans la base sur toute les cellule de la colonne A (Feuille 3)
For Each Cel In .Range('A1:A' & .Range('A65536').End(xlUp).Row)
If Cel.Value = V Then 'Condition : Si la cellule est = de la variable V
'On suspend la gestion des évènements VBA : notamment la fonction Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
'le n° de certificat à déjà été utilisé
MsgBox 'IL S'AGIT BIEN D'UN DUPLICATA', vbInformation, 'VERIFICATION EFFECTUEE'
MsgBox 'IMPRIMER LE DUPLICATA', vbInformation, 'IMPRESSION AUTORISEE'
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
'On rétablit la gestion des évènements VBA
Application.EnableEvents = True
End If
Next Cel 'Tester la cellule suivante dans la boucle
End With
End Sub