Mise en forme conditionnelle

hedraz

XLDnaute Nouveau
Bonjour à tous!

Je cherche à mettre en place des si(et(ou , sans y arriver...
Il y a plusieurs options possibles rappellées dans le 1er tableau
Le deuxième tableau servira à renseigner les champs et dans "nomination " , il faut mettre oui ou non selon que les critères énoncés dans le 1er tableau sont validés

j'ai essayé la mise en forme conditionnelle mais ça ne marche pas,
de même pour si(et(ou...

quelle est la meilleure solution pour ce type de recherche?

merci d'avance
 

Pièces jointes

  • test.xlsx
    9.8 KB · Affichages: 44

Paf

XLDnaute Barbatruc
Bonjour,

quelle est la meilleure solution pour ce type de recherche?
Je ne vois pas comment par MFC et ne sais pas par formule.

un essai par fonction personnalisée:

en F14 : =Nomination($B$2:$F$7) à tirer vers le bas

dans un module standard:
Code:
Function Nomination(Plage)
Application.Volatile
Dim Cherche As Range
Set Cherche = Plage.Columns(1).Find(Application.ThisCell.Offset(, -4))
If Not Cherche Is Nothing Then
    If Cherche = "SA" Then
        Nomination = "Oui" 'à adapter
        Exit Function
    End If
    lig = Cherche.Row
    Crit1 = (Application.ThisCell.Offset(, -3) >= Cells(lig, 3)) * -1
    Crit2 = (Application.ThisCell.Offset(, -2) >= Cells(lig, 4)) * -1
    Crit3 = (Application.ThisCell.Offset(, -1) >= Cells(lig, 5)) * -1
    If Crit1 + Crit2 + Crit3 >= 2 Then
        Nomination = "Oui"
    Else
        Nomination = "Non"
    End If
Else
    Nomination = "Statut non défini"
End If
End Function

A+

Edit : Bonjour Modeste
 
Dernière édition:

Modeste

XLDnaute Barbatruc
DECALER permet de redéfinir une zone de 3 colonnes en largeur et une ligne en hauteur correspondant aux 3 cellules (Bilan, CA et salariés) qui sont en regard d'un statut particulier dans le premier tableau. Ainsi, pour une SAS, la plage correspondra à C5:E5; pour une EURL, ce sera la plage C3:E3.

Dans cette plage, il faut que 2 des 3 conditions soient remplies. Fais le test suivant: en B14, écris SARL, en C14: 100, en D14, 5.000.000 et en E14, 51. En F14, si on écrit simplement:
Code:
=C14:E14>=C2:E2
Excel ne peut afficher le résultat, mais on obtiendrait {FAUX;VRAI;VRAI}. Tu peux vérifier le résultat de la formule comme ceci: en F14, sélectionne -dans la barre de formule- tout ce qui se trouve après le signe '=' et appuie sur la touche F9. Dans cette même barre de formule, tu vois apparaître les valeurs correspondant au résultat des tests dans les 3 colonnes du tableau, pour la SARL indiquée en B14. Appuie sur la touche Esc (Echap), sinon ta formule sera remplacée par le résultat affiché par F9.

En modifiant la formule en:
Code:
=(C14:E14>=C2:E2)*1
le résultat deviendrait {0;1;1}. On aurait pu faire la somme des valeurs ainsi obtenues (1+1=2), mais il aurait fallu valider avec Ctrl+Shift+Enter. L'utilisation de SOMMEPROD nous en dispense.

Je présume que les deux SI au début ne te posent pas de problème?

Avec ton OU, il suffirait qu'une condition se réalise pour que l'ensemble soit VRAI.
Le ET, tel que tu l'avais écrit, ne servait à rien, puisqu'il ne recevait qu'un seul argument: le VRAI renvoyé par le OU.

... Tu me suis? ...
 

hedraz

XLDnaute Nouveau
DECALER permet de redéfinir une zone de 3 colonnes en largeur et une ligne en hauteur correspondant aux 3 cellules (Bilan, CA et salariés) qui sont en regard d'un statut particulier dans le premier tableau. Ainsi, pour une SAS, la plage correspondra à C5:E5; pour une EURL, ce sera la plage C3:E3.

Dans cette plage, il faut que 2 des 3 conditions soient remplies. Fais le test suivant: en B14, écris SARL, en C14: 100, en D14, 5.000.000 et en E14, 51. En F14, si on écrit simplement:
Code:
=C14:E14>=C2:E2
Excel ne peut afficher le résultat, mais on obtiendrait {FAUX;VRAI;VRAI}. Tu peux vérifier le résultat de la formule comme ceci: en F14, sélectionne -dans la barre de formule- tout ce qui se trouve après le signe '=' et appuie sur la touche F9. Dans cette même barre de formule, tu vois apparaître les valeurs correspondant au résultat des tests dans les 3 colonnes du tableau, pour la SARL indiquée en B14. Appuie sur la touche Esc (Echap), sinon ta formule sera remplacée par le résultat affiché par F9.

En modifiant la formule en:
Code:
=(C14:E14>=C2:E2)*1
le résultat deviendrait {0;1;1}. On aurait pu faire la somme des valeurs ainsi obtenues (1+1=2), mais il aurait fallu valider avec Ctrl+Shift+Enter. L'utilisation de SOMMEPROD nous en dispense.

Je présume que les deux SI au début ne te posent pas de problème?

Avec ton OU, il suffirait qu'une condition se réalise pour que l'ensemble soit VRAI.
Le ET, tel que tu l'avais écrit, ne servait à rien, puisqu'il ne recevait qu'un seul argument: le VRAI renvoyé par le OU.

... Tu me suis? ...

j'ai relu plusieurs fois j'ai compris la forme mais je n'arrive pas à reproduire :(
aurais-tu des conseils à me donner pour apprendre à reproduire des formules si "complexes " ?
merci
 

Modeste

XLDnaute Barbatruc
Bonsoir hedraz,
des conseils à me donner pour apprendre à reproduire des formules si "complexes " ?
Euh, je ne sais pas, moi ... faire des demandes moins complexes au départ :p

Une (vraie) solution pourrait être de "décomposer" la formule en étapes.
En pièce jointe, les valeurs de la ligne 14 sont celles qui sont inscrites "en dur". En ligne 15, dans les trois cellules euh ... vieux rose (?) une formule en C15 et recopiée vers la droite détermine, pour chaque colonne, si le "bilan" est supérieur ou égal au seuil; idem pour le "CA" et les "effectifs". En modifiant le type de structure en B14, ces 3 formules se recalculent.
En F15, la formule de la cellule verte vérifie la présence d'au moins deux VRAIS dans les 3 premières cellules.
J'ai utilisé d'autres formules que DECALER, pour que tu voies qu'il n'y a rarement qu'une seule solution.

... on peut encore ajouter un niveau de "décomposition" (sans les odeurs!) si tu préfères. "Taka dire".
 

Pièces jointes

  • Formules par étapes (hedraz).xlsx
    10.3 KB · Affichages: 24

Discussions similaires