Validation de données sur champs calculés

joelpelle

XLDnaute Junior
Bonjour le forum,

Je reviens vers vous car je bute depuis plusieurs jours sur un problème de validation de données sur des champs calculés.
J'ai une liste déroulante de choix sur une plage de cellules B2:F8 et je souhaite interdire la possibilité d'entrer un même nom ailleurs dans cette plage, sauf dans la même colonne.
Comme cette plage à déjà une validation de données liste, je ne peux y entrer d'autres critères du style =NB.SI($B$2:$F$8;J2)=1
J'ai donc repris la valeur de ces cellules dans d'autres colonnes, et appliquant une validation de données.
Si la formule est bonne, =NB.SI($B$2:$F$8;J2)=1 le message d'erreur de doublon, n'apparait que si j'entre dans un champ en J2:N8, et que je fais une entrée clavier.
Or je souhaite que ce message apparaisse lorsque je saisi un doublon quand je renseigne ma plage B2:F8
Comment pourrai-je contourner ce problème ?:mad:
Le fichier joint sera beaucoup plus explicatif !:)

Merci pour votre aide précieuse.
Bien cordialement
 

Pièces jointes

  • DoublonPlage.xlsx
    16.1 KB · Affichages: 39

Excel-lent

XLDnaute Barbatruc
Re : Validation de données sur champs calculés

Bonjour joelpelle,

Ayant une version Excel antérieur à la tienne, je ne peux ouvrir ton fichier, mais au vu de ton explication, tu peux résoudre ton soucis grâce au VBA de la façon suivante :

-> macro qui se déclenche à la validation d'une saisie dans la zone concerné
-> demander à la macro de modifier la liste de validation de chaque cellule (du champ demandé) vide. Ainsi dans la liste de choix tu n'auras QUE les valeurs encore disponible, donc aucune possibilité de mettre un doublon

Bonne après midi
 

joelpelle

XLDnaute Junior
Re : Validation de données sur champs calculés

Bonjour Excel Lent, le fil

Ravi de te recroiser sur le forum,

J'ai enregistré mon fichier dans une autre version, car j'ai pas tout capté de ton explication pourtant limpide.:confused:
Mon soucis étant de valider ces données sur des plages de 7 jours, soit 7 lignes.
En effet ces données peuvent se retrouver la semaine suivante sur une autre plage d'une semaine etc...
Je ne peux donc pas vérifier colonnes par colonne.
Bon le fichier est plus explicite !

Merci de te pencher (encore une fois :D) sur mon cas.

Bien cordialement
 

Pièces jointes

  • DoublonPlage.xls
    49.5 KB · Affichages: 38

joelpelle

XLDnaute Junior
Re : Validation de données sur champs calculés

Bonjour JPN,

Le temps de répondre à Excel Lent, j'avais pas vu ta réponse !

Merci également de t'intéresser à mon soucis.
J'ai testé ton fichier, qui fonctionne très bien quand on a deux mêmes noms dans la même colonne et si on le rajoute dans n'importe quelle cellule, mais si on a qu'un seul nom dans une colonne, et si on le rajoute ailleurs, cela ne le prend pas comme un doublon.
En résumé il faut qu'il y ait deux nom dans une même colonne pour que ça fonctionne, si on a qu'un seul nom, le doublon n'est pas reconnu.( exemple avec LES CORALIES) et je souhaite que cela puisse fonctionner également avec un seul nom par colonne.
Mais en tout cas ça progresse dur pour moi, encore une petite étape à franchir.

Merci encore pour ton aide.

Bien cordialement
 

JNP

XLDnaute Barbatruc
Re : Validation de données sur champs calculés

Re :),
Euh, moi, c'est JNP :rolleyes:...
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Nombre As Integer
If Intersect(Target, Range("B2:F8")) Is Nothing Or Target.Text = "" Or Target.Count > 1 Then Exit Sub
Nombre = Evaluate("countif(" & Intersect(Target.EntireColumn, Range("B2:F8")).Address & ",""" & Target.Text & """)")
If Nombre > 1 Then
    If Evaluate("countif(B2:F8,""" & Target.Text & """)") - Nombre > 1 Then
        MsgBox "Valeur en doublon !", vbCritical + vbOKOnly, "ATTENTION !"
        Target.ClearContents
    End If
Else
    If Evaluate("countif(B2:F8,""" & Target.Text & """)") > 1 Then
        MsgBox "Valeur en doublon !", vbCritical + vbOKOnly, "ATTENTION !"
        Target.ClearContents
    End If
End If
End Sub
Bonne suite :cool:
 

joelpelle

XLDnaute Junior
Re : Validation de données sur champs calculés

Oups, excuse moi JNP,

Je tape plus vite que je ne manie le VBA !

Ton code fonctionne très bien maintenant !
Par contre je dois l'étendre sur des plages de 7 lignes, A2:F8, A9:F15 etc...
Faut il que je modifie la macro en y rajoutant à chaque fois le nom des plages, (52 semaines = 52 plages !!!) ou y a t-il un "raccourci" pour ça ?
Je te remercie pour ton aide précieuse JNP :cool::cool:

Bien cordialement
 

JNP

XLDnaute Barbatruc
Re : Validation de données sur champs calculés

Re :),
Je sais pas pourquoi, mais je m'y attendais :rolleyes:...
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Nombre As Integer, Adresse As String
With Target
    If Intersect(Target, Range("B:F")) Is Nothing Or .Text = "" Or .Count > 1 Then Exit Sub
    Adresse = "B" & .Row - Weekday(Range("A" & .Row)) + 1 & ":F" & .Row - Weekday(Range("A" & .Row)) + 7
    Nombre = Evaluate("countif(" & Intersect(.EntireColumn, Range(Adresse)).Address & ",""" & .Text & """)")
    If Nombre > 1 Then
        If Evaluate("countif(" & Adresse & ",""" & .Text & """)") - Nombre > 1 Then
            MsgBox "Valeur en doublon !", vbCritical + vbOKOnly, "ATTENTION !"
            .ClearContents
        End If
    Else
        If Evaluate("countif(" & Adresse & ",""" & .Text & """)") > 1 Then
            MsgBox "Valeur en doublon !", vbCritical + vbOKOnly, "ATTENTION !"
            .ClearContents
        End If
    End If
End With
End Sub
Bonne soirée :cool:
 

Discussions similaires

Statistiques des forums

Discussions
312 510
Messages
2 089 148
Membres
104 051
dernier inscrit
jjouneau