XL 2010 Conditions multiples

  • Initiateur de la discussion Initiateur de la discussion cysalea
  • 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 !

cysalea

XLDnaute Nouveau
Bonjour à tous,

Je souhaite créer une formule (ou une macro) en colonne C (avis) pour mon fichier.
Par exemple, je veux que :
si condition 1 = A et condition 2 = AF, Excel me complète la colonne C avec "conforme"
si condition 1 = C et condition 2 = AF, Excel me complète la colonne C avec "non conforme"
etc ...
J'ai essayé avec des SI imbriqué mais ça ne marche pas (je dois pas faire comme il faut !)
Quelqu'un peut-il m'aider ?
D'avance merci.
 

Pièces jointes

Bonjour le Forum, cysalea

A coller dans la cellule C2 :
=SI(ET(A2="A";B2="AF");"Conforme";"Non conforme")

Et la formule ne fonctionne pas !... car il y a une petite espace après AF en condition 2. Supprimez ces espaces inutiles et vous aurez un fichier nickel.

@+
 
Hello

un début de piste
=SI(OU(ET(A2="A";B2="AF");ET(A2="C";B2="AF"));"Conforme";"Non Conforme")

pour completer. il faut lister TOUS les cas "conforme"
cas1: Cond1=A ET Cond2=AF --> se traduit par: Et(A2="A";B2="AF")
cas2: Cond1=C ET Cond2=AF --> se traduit par: Et(A2="C";B2="AF")
Cas3....

puis completer la formule donnée
si (ou(cas1;cas2;cas3);"Conforme";"Non conforme")

Attention. dans ta colonne B les cellules contiennent un espace après AF: la formule ne va donc pas fonctionner .. il faut supprimer les espaces (ou alors, le rajoutter dans la formule
"AF" est différent de
"AF "



Hello Ralph ;-)
 
formule qui colle exactement à ta colonne C..
=SI(OU(ET(A2="A";B2="AF");ET(A2="B";B2="AF");ET(A2="C";B2="ADM");ET(A2="D";B2="ATI"));"Conforme";"Non Conforme")


Merci beaucoup pour ton aide.

Je tourne dans tous les sens pour essayer de mettre cette formule en VBA.

J'y arrive mais je n'arrive pas à faire une formule du type :
tant que la cellule B... n'est pas vide, tu me fais mon calcul.

J'ai essayé avec :
Do Until IsEmpty(ActiveCell.Value)
ActiveCell.Offset(1, 0).Select
Loop
mais ça ne marche pas.

Je ne dois pas bien définir ma variable ActivCell.
Peux tu m'aider?
Merci
 
Hello,
que souhaites tu exactement?
coller la formule dans les cellules à partir du VBA
ou faire calculer à VBA et ne mettre que le résultat (conforme / Non conforme) dans la colonne C ?

pourrais tu poster ton fichier mis à jour avec le code que tu sembles avoir déjà commencé.
 
j'avais pensé au début à une macro. mais comme la formule semblait satisfaisante, je n'avais pas poursuivi..
mais maintenant 🙂

Code:
Sub calculeformule()
'dernière ligne de la feuille
fin = Range("A" & Rows.Count).End(xlUp).Row

'pour chaque ligne de la feuille (à partir de 2 car la ligne 1 contient les entetes)
For i = 2 To fin
    'on construit la varialbe cond1cond2 avec le contenu des colonnes A et B
    cond1cond2 = Range("A" & i) & " " & Range("B" & i)
  
    'selon le contenu = le IF à conditions multiples
    Select Case cond1cond2
    'lister tous les cas
    Case "A AF", "B AF", "C ADM", "D ATI"
        Range("E" & i) = "Conforme"
    Case Else
        Range("E" & i) = "Non Conforme"
     End Select
Next i
End Sub
 
j'avais pensé au début à une macro. mais comme la formule semblait satisfaisante, je n'avais pas poursuivi..
mais maintenant 🙂

Code:
Sub calculeformule()
'dernière ligne de la feuille
fin = Range("A" & Rows.Count).End(xlUp).Row

'pour chaque ligne de la feuille (à partir de 2 car la ligne 1 contient les entetes)
For i = 2 To fin
    'on construit la varialbe cond1cond2 avec le contenu des colonnes A et B
    cond1cond2 = Range("A" & i) & " " & Range("B" & i)
 
    'selon le contenu = le IF à conditions multiples
    Select Case cond1cond2
    'lister tous les cas
    Case "A AF", "B AF", "C ADM", "D ATI"
        Range("E" & i) = "Conforme"
    Case Else
        Range("E" & i) = "Non Conforme"
     End Select
Next i
End Sub



Super, merci merci !!
J'ai adapté à mon tableau et ça fonctionne.
Encore merci pour ton partage de connaissance 🙂🙂🙂🙂🙂🙂
 
j'avais pensé au début à une macro. mais comme la formule semblait satisfaisante, je n'avais pas poursuivi..
mais maintenant 🙂

Code:
Sub calculeformule()
'dernière ligne de la feuille
fin = Range("A" & Rows.Count).End(xlUp).Row

'pour chaque ligne de la feuille (à partir de 2 car la ligne 1 contient les entetes)
For i = 2 To fin
    'on construit la varialbe cond1cond2 avec le contenu des colonnes A et B
    cond1cond2 = Range("A" & i) & " " & Range("B" & i)
 
    'selon le contenu = le IF à conditions multiples
    Select Case cond1cond2
    'lister tous les cas
    Case "A AF", "B AF", "C ADM", "D ATI"
        Range("E" & i) = "Conforme"
    Case Else
        Range("E" & i) = "Non Conforme"
     End Select
Next i
End Sub


J'ai voulu remplacé le A par une chaine de caractère et du coup, ça ne marche plus.
(mon A = chaine de caractère A,en fait c'est du texte, est en colonne O et AF en colonne R)
J'ai mis un & mais ça ne doit pas être ça

Dim i As Byte
Dim fin As String
Dim cond1cond2 As String

fin = Range("A" & Rows.Count).End(xlUp).Row

For i = 2 To fin

cond1cond2 = Range("O" & i) & "&" & Range("R" & i)

Select Case cond1cond2
Case "Chaine de caractère A & AF"
Range("W" & i) = "Conforme"
Case Else
Range("W" & i) = "Non Conforme"
End Select
Next i

End Sub

Peux tu encore me dépanner?
Merci
 
Hello

principe pour écrire une chaine de caractères.. il faut la mettre entre guillemets "chainedecaractère"
si tu veux insérer le contenu d'une cellule, (A1 par exemple) il suffit de mettre le nom de la cellule ex:
en A1: 3

cond1cond2= "le contenu de la cellule A1 est: " &A1
msgbox cond1cond2


dans ton code modifié, tu as oublié un guillemet pour encadrer l'espace entre les cellules de colonne O et R
cond1cond2 = Range("O" & i) & " " & Range("R" & i)
 
Hello

principe pour écrire une chaine de caractères.. il faut la mettre entre guillemets "chainedecaractère"
si tu veux insérer le contenu d'une cellule, (A1 par exemple) il suffit de mettre le nom de la cellule ex:
en A1: 3

cond1cond2= "le contenu de la cellule A1 est: " &A1
msgbox cond1cond2


dans ton code modifié, tu as oublié un guillemet pour encadrer l'espace entre les cellules de colonne O et R
cond1cond2 = Range("O" & i) & " " & Range("R" & i)


Bonjour,
Je n'ai pas compris ta réponse.
J'ai réessayé en mettant des " mais la macro ne fonctionne plus.
Elle ne me trouve que des Non conforme
Je suis perdue !!🙁
Je voudrais que dans ma colonne C (AVIS) apparaissent Conforme et Non Conforme comme indiqué dans mon petit tableau récapitulatif.
Par exemple : si "chaine de caractère A" et "AF" => Conforme
si "chaine de caractère B" et "AF" => Non Conforme
et ainsi de suite.

Merci d'avance pour l'aide que tu voudras bien encore !!! m'apporter.
 

Pièces jointes

Hello

Vu que tu as fait un tableau de correspondance pour lister tous les cas et leurs conclusions associées, tu peux te passer de VBA
donc. juste une formule
en C2
Code:
=SIERREUR(INDEX($G$4:$J$7;EQUIV(A2;$F$4:$F$7;0);EQUIV(B2;$G$3:$J$3;0));"Pas de sanction")

PS: tu noteras qu'il apparait parfois "Pas de sanction". alors que le cas est décrit dans le tableau:
--> tu as encore des espaces qui trainent à la fin de AF
 
Hello

Vu que tu as fait un tableau de correspondance pour lister tous les cas et leurs conclusions associées, tu peux te passer de VBA
donc. juste une formule
en C2
Code:
=SIERREUR(INDEX($G$4:$J$7;EQUIV(A2;$F$4:$F$7;0);EQUIV(B2;$G$3:$J$3;0));"Pas de sanction")

PS: tu noteras qu'il apparait parfois "Pas de sanction". alors que le cas est décrit dans le tableau:
--> tu as encore des espaces qui trainent à la fin de AF



Merci pour ton aide,
ça marche bien sur le petit exemple mais je voudrais pouvoir l'adapter en mettant mon petit tableau récap dans une autre feuille du même classeur.
J'ai rajouter Feuil1! devant $G$4:$J$7 ... etc.
Le but est d'avoir quand même une macro qui irait insérer ce petit tableau en feuille 2 et qui me mettrait "conforme" ou "non conforme" dans la colonne C (AVIS) de la feuille 1.
J'ai modifié mais je suis encore perdue !!!🙁
Peux tu m'aider ?
 
- 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
354
Réponses
3
Affichages
248
P
Réponses
7
Affichages
695
Pilliars
P
Réponses
7
Affichages
305
Retour