Bonjour tout le monde, j'aimerais intégrer une "Private Sub Worksheet_Change" dans une macro déclenchée par un bouton.
La private sub permet d'éviter les doublons, et fonctionne parfaitement :
Le problème est que la macro globale marque une pause pour générer la fenêtre "anti doublon" mais reprend après avoir fait ok.
Comment puis-je intégrer l'apparition de cette fenêtre et lancer une séquence IF ?
Ou alors, ne serait-ce pas plus simple de transformer la Private sub en sub ? Et alors : comment ?
Merci de votre aide
Ci-dessous le début de la macro globale :
La private sub permet d'éviter les doublons, et fonctionne parfaitement :
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'colonne à "surveiller" (ici colonne c)
If Target.Column = 3 Then
' pour vérifier si la saisie n'existe pas déjà dans les lignes précédentes
If Application.WorksheetFunction. _
CountIf(Range(Cells(2, 1), _
Cells(Target.Row, 1)), Target.Value) > 1 Then
MsgBox "Nom déjà utilisé, ajoutez l'initiale du prénom en plus"
Target.Value = ""
Target.Select
End If
End If
End Sub
Le problème est que la macro globale marque une pause pour générer la fenêtre "anti doublon" mais reprend après avoir fait ok.
Comment puis-je intégrer l'apparition de cette fenêtre et lancer une séquence IF ?
Ou alors, ne serait-ce pas plus simple de transformer la Private sub en sub ? Et alors : comment ?
Merci de votre aide
Ci-dessous le début de la macro globale :
Code:
Sub NouvelAgent()
'Active la feuille Récap
Sheets("Récap").Select
' Retire la protection de la feuille Récap en activant la macro appropriée
OTProtection
Dim NomAgent As String
NomAgent = InputBox("Quel est le NOM de l'Agent ?")
'Permet de trouver la 1ère ligne vide du tableau dans la colonne B
Range("c29").End(xlUp).Offset(1, 0).Range("A1").FormulaR1C1 = NomAgent
'ICI DEVRAIT COMMENCER LA VERIFICATION DOUBLON
'Rend visible la feuille Modèle en vue de copiage
Sheets("Modèle").Visible = True
'Crée une feuille à partir du modèle et le renomme avec le nom de l'agent
Sheets("Modèle").Copy After:=Sheets(3)
Sheets("Modèle (2)").Name = NomAgent
Range("C3").FormulaR1C1 = NomAgent