Microsoft 365 Validation de données sous condition

  • Initiateur de la discussion Initiateur de la discussion drop91
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

drop91

XLDnaute Junior
Bonjour à tous,

Je rencontre un problème avec mon fichier Excel et je n'arrive pas à trouver de solution..

Dans la colonne D, j'ai une liste de validation de données.

Voici le résultat attendu :

  • Pour la colonne E : Si la cellule en colonne D contient "Non Conformity", j'aimerais pouvoir choisir entre trois options (Niveau 1 ou Niveau 2 ou Niveau 3) dans la cellule E.
  • Si la cellule D est vide, la cellule E doit rester vide.
  • Si la cellule D contient une autre phrase, la cellule E doit indiquer "Pas d'action".
  • En cas de modification dans la cellule D, les trois conditions ci-dessus doivent être réévaluées pour la cellule E.
J'espère que mes explications sont claires.

Un grand merci pour votre aide, de préférence sans utiliser de macro.
 

Pièces jointes

Dernière édition:
Solution
Bon j'ai compris, votre version Excel n'accepte pas le séparateur point-virgule alors utilisez le fichier joint avec :
VB:
        Target(1, 2).Validation.Add xlValidateList, Formula1:="Niveau1,Niveau2,Niveau3"
Perso j'utiliserais :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Set Target = Intersect(Target, Range("D2:D" & Rows.Count), UsedRange)
If Target Is Nothing Then Exit Sub
Application.EnableEvents = False 'désactive les évènemebts
With Intersect(Target.EntireRow, Columns(5))
    .Validation.Delete 'RAZ
    .ClearContents
End With
For Each Target In Target 'si entrées multiples
    If Target Like "Non Conformity*" Then
        Target(1, 2).Validation.Add xlValidateList, Formula1:="Niveau1;Niveau2;Niveau3"
    Else
        Target(1, 2) = IIf(IsEmpty(Target), "", "Pas d'action")
    End If
Next Target
Application.EnableEvents = True 'réactive les évènemebts
End Sub
Chez moi la copie de D2: D3 sur D4: D10001 se fait en 1,5 seconde.

Sur D4: D100001 => 24 secondes...
 

Pièces jointes

Dernière édition:
Merci à tous. Je voulais savoir s’il était possible d’obtenir le résultat sans utiliser de macro, mais j’ai compris que ce n’était pas faisable.
En revanche, lorsqu’une non-conformité est détectée, je souhaitais pouvoir choisir entre trois niveaux (niveau 1, niveau 2 ou niveau 3) dans la colonne E, chacun correspondant à une ligne différente.
Cependant, dans les deux fichiers, les niveaux sont affichés ensemble, ce qui fait qu’au lieu d’avoir trois choix distincts, je n’en ai qu’un seul.

1744908551695.png
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
265
Retour