Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

éviter saisie de doublons

chilo

XLDnaute Occasionnel
bonjour le forum

je voudrais éviter la saisi de doublons dans un classeur

explication
j'ai un classeur avec 12 feuilles
et je voudrais éviter la saisie de doublons dans ces feuilles.
j'ai trouvé cet exemple sur le forum et je voudrais l'élargir sur les autres feuilles

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

If Target.Column = 1 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

' pour vérifier si la saisie n'existe pas déjà dans la colonne
If Application.WorksheetFunction. _
CountIf(Range("A:A"), Target.Value) > 1 Then

MsgBox "Vous avez déjà saisi ce numéro -- recommencer"
Target.Value = ""
Target.Select
End If

End If

End Sub

merci de m'apporte votre aide
à bientot
 

Excel_lent

XLDnaute Impliqué
Re : éviter saisie de doublons

Salut chilo, matthieu33,
re aux autres et aux nouveaux.

Il me semble que tu as adapté la macro pour ne tester que la première colonne. Dans ce cas, le code peut se simplifier ainsi :
Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)

  If Target.Column = 1 And Application.WorksheetFunction. _
    CountIf(Range("A:A"), Target.Value) > 1 Then
        MsgBox "Vous avez déjà saisi ce numéro -- recommencer"
        Target.Value = ""
        Target.Select
  End If
End Sub
Il est à écrire dans le module de chacune des 12 feuilles si tu veux le même test partout !

 

chilo

XLDnaute Occasionnel
Re : éviter saisie de doublons

bonsoir le forum

merci excel lent et matthieu je joins un petit fichier

merci de votre participation
à bientot
 

Pièces jointes

  • eviterdoublon.zip
    7.5 KB · Affichages: 74

Excel_lent

XLDnaute Impliqué
Re : éviter saisie de doublons

Bonsoir chilo et à tous,

Veux-tu interdire une seule valeur où plusieurs ?
Dans ce dernier cas, les cellules contenant ces valeurs sont-elles dispersées ?
Plus il y en aura plus ce sera délicat.
 

Pierrot93

XLDnaute Barbatruc
Re : éviter saisie de doublons

Chilo, Mathieu, Excel-Lent

@Excel-Lent
on peut également utiliser les modules de classes pour les appels de procédures événementielles pour les feuilles. Ce qui évite de recopier les procédures sur tous les modules de feuille. Comme hier tu étais interressé par le sujet je joins un petit exemple, module de classe avec événement change, qui se déclenche dès l'instant ou tu effectues une modification sur une feuille. En espérant qu'il te soit utilie.

bonne journée
@+
 

Pièces jointes

  • Classeur1.xls
    32.5 KB · Affichages: 149
  • Classeur1.xls
    32.5 KB · Affichages: 160
  • Classeur1.xls
    32.5 KB · Affichages: 156

Pierrot93

XLDnaute Barbatruc
Re : éviter saisie de doublons

Re

pour répondre au problème de Chilo, je modifierais dans le fichier joint précédemment, la procédure événementielle du module de classe comme suit :

Code:
Private Sub mafeuille_Change(ByVal Target As Range)
Dim ws As Worksheet, x As Range
If Target.Count > 1 Or IsEmpty(Target.Value) Then Exit Sub
For Each ws In Worksheets
    If ws.Name <> mafeuille.Name Then
        Set x = ws.Cells.Find(Target.Value, , xlValues, xlWhole, , , False)
        If Not x Is Nothing Then
            MsgBox "Valeur déjà présente dans l'onglet " & ws.Name _
            & " en " & x.Address
            Application.EnableEvents = False
            Target.Value = ""
            Application.EnableEvents = True
        End If
    End If
Next ws
End Sub

@+
 
Dernière édition:

chilo

XLDnaute Occasionnel
Re : éviter saisie de doublons

bonjour le forum

merci pour l'aide pour répondre à Excel lent je souhaite entrer une seule donnée

et un grand merci à pierrot je vais essayer
et je reviendrai
à bientot
 

chilo

XLDnaute Occasionnel
Re : éviter saisie de doublons

re bonjour

le forum

j'ai essayé la méthode de pierrot93 mais cela n'a pas fonctionné
je continue ma recherche et je continue à compter sur votre collaboration
merci à bientot
 

Pierrot93

XLDnaute Barbatruc
Re : éviter saisie de doublons

Re

Attention, l'initialisation se fait à l'ouverture du classeur, après avoir modifié le code dans le module de classe (coller le code que j'ai donné dans le post de 8h32") , fermes et enregistres le classeur, puis tu le ré-ouvres, cela devrait fonctionner... testes et dis moi...
@+
 

Excel_lent

XLDnaute Impliqué
Re : éviter saisie de doublons

Salut à tous et aux autres.

Ci-joint, une adaptation du fichier de Pierrot (merci encore).
On se retrouve confronté au même problème qu’avec Application.EnableEvents quand une erreur est commise avant le rétablissement (=True) ou quand celui-ci a été oublié.

Une autre façon de procéder (si on est gêné par les macros) est de sélectionner les feuilles une par une en leur totatilé et Données -> Validation -> Autoriser : nombre entier -> Données : différente de -> valeur :’valeur désirée’, avec accompagnement de message ou pas (cf Feuil3).
 

Pièces jointes

  • SaisieInterdite.zip
    10.2 KB · Affichages: 91

chilo

XLDnaute Occasionnel
Re : éviter saisie de doublons

bonjour le forum

il y des jours comme çà ou on se sent plus heureux

alors un grand merci à peirrot93
c'est exactement ce que je voulais
encore une fois merci
et

à bientôt
 

chilo

XLDnaute Occasionnel
Re : éviter saisie de doublons

bonjour le forum

pierrot93 après essai cela correspond à ce que je souhaite seulement
le petit souci une fois qu'on écrit le nombre 123456 dans janvier et février pour l'essai
si on entre de nouveau ce nombe il nous dit que c'est saisi dans les mois, bien que le numéro soit effacé

merci par avance
 

Discussions similaires

Réponses
3
Affichages
554
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…