eperluette
XLDnaute Nouveau
Modifier une macro pour éviter la saisie de doublons dans tout un classeur ?
Bonjour à tous !
J'ai fait une petite recherche sur le forum mais je ne crois pas avoir trouvé réponse à mon problème (et je m'en excuse car j'ai sûrement dû mal chercher !) 😱
Voilà, j'ai trouvé ici (pour rendre justice à son auteur !) une petite macro (que j'ai changée très légèrement) et qui marche très bien :
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Value
Case "": Case Else
If Not Application.Intersect(Target, [A:A]) Is Nothing Then
Select Case Application.WorksheetFunction.CountIf([A:A], Target)
Case 1: Case Else
myMatch = Application.WorksheetFunction.Match(Target, [A:A], 0)
myPrompt = "Returns note below has already been entered in cell A" & myMatch & _
Chr(10) & "Please modify your entry"
myDefault = Target
myInput = InputBox(Prompt:=myPrompt, Default:=myDefault, Title:="Excel Tip")
Target = myInput
End Select
End If
End Select
End Sub
Cette macro permet d'empêcher la saisie de doublons dans une feuille donnée (pour la colonne A uniquement). Si l'utilisateur entre une donnée déjà présente, une fenêtre s'affiche indiquant l'adresse de la donnée déjà entrée et invitant à entrer une autre donnée.
En fait, j'aimerais savoir s'il est possible de modifier cette macro pour l'étendre au classeur entier ?
Si par exemple, je suis dans la feuille 2 et j'essaie de saisir une donnée déjà présente dans la feuille 1 (mais pas dans la 2), est-il possible d'avoir une macro qui me dise que la donnée a déjà été entrée dans la feuille 1, cellule tant ?
Euh voilà, j'espère que ce que je raconte n'est pas trop confus (pardonnez-moi, je débute !)
Merci beaucoup pour votre aide !!! 🙂
PS : je mets en pièce jointe mon fichier si besoin.
Bonjour à tous !
J'ai fait une petite recherche sur le forum mais je ne crois pas avoir trouvé réponse à mon problème (et je m'en excuse car j'ai sûrement dû mal chercher !) 😱
Voilà, j'ai trouvé ici (pour rendre justice à son auteur !) une petite macro (que j'ai changée très légèrement) et qui marche très bien :
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Value
Case "": Case Else
If Not Application.Intersect(Target, [A:A]) Is Nothing Then
Select Case Application.WorksheetFunction.CountIf([A:A], Target)
Case 1: Case Else
myMatch = Application.WorksheetFunction.Match(Target, [A:A], 0)
myPrompt = "Returns note below has already been entered in cell A" & myMatch & _
Chr(10) & "Please modify your entry"
myDefault = Target
myInput = InputBox(Prompt:=myPrompt, Default:=myDefault, Title:="Excel Tip")
Target = myInput
End Select
End If
End Select
End Sub
Cette macro permet d'empêcher la saisie de doublons dans une feuille donnée (pour la colonne A uniquement). Si l'utilisateur entre une donnée déjà présente, une fenêtre s'affiche indiquant l'adresse de la donnée déjà entrée et invitant à entrer une autre donnée.
En fait, j'aimerais savoir s'il est possible de modifier cette macro pour l'étendre au classeur entier ?
Si par exemple, je suis dans la feuille 2 et j'essaie de saisir une donnée déjà présente dans la feuille 1 (mais pas dans la 2), est-il possible d'avoir une macro qui me dise que la donnée a déjà été entrée dans la feuille 1, cellule tant ?
Euh voilà, j'espère que ce que je raconte n'est pas trop confus (pardonnez-moi, je débute !)
Merci beaucoup pour votre aide !!! 🙂
PS : je mets en pièce jointe mon fichier si besoin.
Pièces jointes
Dernière édition: