Je voudrais éviter de saisir une valeur existant déjà dans ma feuille. Comment faire ?
4 solutions :
****************************
Voici une macro événementielle à coller dans le module de la feuille.
(click droit sur l'onglet et visualiser le code ) qui fera ce que tu demandes.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value = "" Then Exit Sub
For Each cell In Intersect(UsedRange, Cells)
If cell.Address <> Target.Address And cell.Value = Target.Value Then
MsgBox "saisissez un autre numéro, celui-ci existe déjà"
Target.Value = ""
Target.Select
Exit For
End If
Next cell
End Sub
Cette macro t'interdira d'inscrire
deux fois le même numéro dans la feuille
et l'effacera à chaque fois.
Frédéric Sigonneau sur un scénario de Sitting hoax Laurent D (de Marseille)
******************************
Autre solution, avec une mise en forme conditionnelle :
sélectionne toutes les cellules (cellule active A1)
format / mise en forme conditionnelle / la formule est /
=NB.SI($AA:$ZZ;A1)>1 / Format / motif / rouge /ok / ok
si tu tapes deux fois le même numéro, il deviendra tout rouge
J@C
******************************
Troisième solution :
Si tu veux empêcher la saisie de doublons, utilise la validation de données
plutôt que le formatage conditionnel...
Données / Validation / Options / Personnalisée
Formule : =NB.SI(A:A;A1)=1 (si les données à saisir sont en colonne A)
Avec si nécessaire, un message d'alerte que tu pourras personnaliser sur
l'onglet Alerte d'erreur.
ChrisV
******************************
Cette procédure te propose 2 options : soit
empêcher la saisie d'une valeur dans une cellule si cette même valeur existe
déjà dans les lignes précédentes (de la même colonne) soit empêcher la saisie
d'une valeur si elle est déjà présente n'importe où dans la même colonne. Mets
en commentaire les lignes de code de l'option qui ne t'intéressent pas et
modifie le numéro de la colonne à surveiller selon tes besoins.
Le code est à copier/coller dans le module de la feuille de calcul où tu veux
qu'il soit disponible.
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'colonne à "surveiller" (ici colonne A)
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 "Number has been used -- Try again"
Target.Value = ""
Target.Select
End If
End If
End Sub
Debra Dalgleish.
****************************
Voici une macro événementielle à coller dans le module de la feuille.
(click droit sur l'onglet et visualiser le code ) qui fera ce que tu demandes.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value = "" Then Exit Sub
For Each cell In Intersect(UsedRange, Cells)
If cell.Address <> Target.Address And cell.Value = Target.Value Then
MsgBox "saisissez un autre numéro, celui-ci existe déjà"
Target.Value = ""
Target.Select
Exit For
End If
Next cell
End Sub
Cette macro t'interdira d'inscrire
deux fois le même numéro dans la feuille
et l'effacera à chaque fois.
Frédéric Sigonneau sur un scénario de Sitting hoax Laurent D (de Marseille)
******************************
Autre solution, avec une mise en forme conditionnelle :
sélectionne toutes les cellules (cellule active A1)
format / mise en forme conditionnelle / la formule est /
=NB.SI($AA:$ZZ;A1)>1 / Format / motif / rouge /ok / ok
si tu tapes deux fois le même numéro, il deviendra tout rouge
J@C
******************************
Troisième solution :
Si tu veux empêcher la saisie de doublons, utilise la validation de données
plutôt que le formatage conditionnel...
Données / Validation / Options / Personnalisée
Formule : =NB.SI(A:A;A1)=1 (si les données à saisir sont en colonne A)
Avec si nécessaire, un message d'alerte que tu pourras personnaliser sur
l'onglet Alerte d'erreur.
ChrisV
******************************
Cette procédure te propose 2 options : soit
empêcher la saisie d'une valeur dans une cellule si cette même valeur existe
déjà dans les lignes précédentes (de la même colonne) soit empêcher la saisie
d'une valeur si elle est déjà présente n'importe où dans la même colonne. Mets
en commentaire les lignes de code de l'option qui ne t'intéressent pas et
modifie le numéro de la colonne à surveiller selon tes besoins.
Le code est à copier/coller dans le module de la feuille de calcul où tu veux
qu'il soit disponible.
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'colonne à "surveiller" (ici colonne A)
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 "Number has been used -- Try again"
Target.Value = ""
Target.Select
End If
End If
End Sub
Debra Dalgleish.
Frédéric Sigonneau, Jacques Chaussard, ChrisV, Debra Dalgleish, (N°488)

Je saisis des données dans une feuille. Je voudrais utiliser la mise en forme conditionnelle
pour que si une donnée a déjà été entrée elle se mette en rouge à la saisie.
Clique dans la cellule A1 puis dans le coin supérieur gauche de la feuille pour
sélectionner toutes les toutes les cellules.Ensuite : format / mise en forme
conditionnelle / la formule est /
=NB.SI($A:$Z;A1)>1 / Format / motif / rouge
/ok / ok
ensuite tu si tu tapes deux fois le même numéro, il deviendra tout
rouge
sélectionner toutes les toutes les cellules.Ensuite : format / mise en forme
conditionnelle / la formule est /
=NB.SI($A:$Z;A1)>1 / Format / motif / rouge
/ok / ok
ensuite tu si tu tapes deux fois le même numéro, il deviendra tout
rouge
Jacques Chaussard, (N°487)