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 !

Moreno076

XLDnaute Impliqué
Bonjour,

Dans le fichier ci-joint je souhaiterais modifier la formule de la colonne A en ajoutant des conditions supplémentaires :

Si dans l'onglet WMS la colonne D = traitee ET que la colonne J =MTRO alors ca marque TRAITEE J+2
Si dans l'onglet WMS la colonne D = traitee ET que la colonne J = autre chose que MTRO alors TRAITEE J+1
Si dans l'onglet WMS la colonne D = reportee alors noter date de la colonne K de l'onglet WMS

Merci de votre aide
 

Pièces jointes

Re : Si mais si

Bonjour Moreno076, salut Roger,

Avec les noms définis le VBA est quand même plus simple non ?

Code:
Set P = Range("A2:A7") 'à adapter
P.Formula = "=IF(ISNA(Etat),"""",IF(Etat=""TRAITEE"",""TRAITEE J+""&1+(Lieu=""MTR0""),IF(Etat=""REPORTEE"",""REPORT ""&TEXT(""""&Report,""jj-mmm""),Etat)))"
J'ai mis MTR0 (avec un zéro) comme vous l'avez dit.

Une remarque sur votre formule =SI(OU(ESTNA(RECHERCHEV(B2;WMS!$B:$B;3;0));B2="");...

Le test B2="" est inutile puisque quand B2="" RECHERCHEV(B2;WMS!$B:$B;3;0) renvoie #N/A.

A+
 
Re : Si mais si

Re,

j'ai un autre tableau qui avec cette feuille ouvre plusieurs onglets, tri et supprime des lignes, c'est assez compliqué, il vaut mieux que je donne le tableau typique mais c'est bon.

Merci de m'avoir aidé, je regarde toujours avec attention les réponses pour comprendre.

Cordialement

Re,

Une remarque : il faudrait étudier plus sérieusement les solutions qu'on vous donne.

Une question : que vient faire une macro dans ce problème de formule ?

A+
 
Re : Si mais si

Merci Roger c'est bon

A+

Re...

Quelle "macro" ?


VB:
    Range("A2").FormulaR1C1 = _
        "=IF(OR(ISNA(VLOOKUP(RC[1],WMS!C2,1,0)),RC[1]=""""),"""",IF(VLOOKUP(RC[1],WMS!C2:C4,3,0)=""TRAITEE"",""TRAITEE J+""&1+(VLOOKUP(RC[1],WMS!C2:C10,9,0)=""MTR0""),IF(VLOOKUP(RC[1],WMS!C2:C4,3,0)=""REPORTEE"",VLOOKUP(RC[1],WMS!C2:C11,10,0),VLOOKUP(RC[1],WMS!C2:C4,3,0))))"
devrait faire l'affaire.


Dans la notation des formules en "style L1C1" (ou R1C1), WMS!C2 désigne la colonne $B:$B (pas la cellule C2) de l'onglet WMS.
Quant à RC[1], il correspond à DECALER(A2;;1) en "style A1".

Si vous ne voulez pas utiliser le "style L1C1", essayez ceci :​
VB:
    Range("A2").Formula = _
        "=IF(OR(ISNA(VLOOKUP(B2,WMS!$B:$B,1,0)),B2=""""),"""",IF(VLOOKUP(B2,WMS!$B:$D,3,0)=""TRAITEE"",""TRAITEE J+""&1+(VLOOKUP(B2,WMS!$B:$J,9,0)=""MTR0""),IF(VLOOKUP(B2,WMS!$B:$D,3,0)=""REPORTEE"",VLOOKUP(B2,WMS!$B:$K,10,0),VLOOKUP(B2,WMS!$B:$D,3,0))))"
comme les Étasuniens d'Amérique du Nord, ou encore :​
VB:
    Range("A2").FormulaLocal = _
        "=SI(OU(ESTNA(RECHERCHEV(B2;WMS!$B:$B;1;0));B2="""");"""";SI(RECHERCHEV(B2;WMS!$B:$D;3;0)=""TRAITEE"";""TRAITEE J+""&1+(RECHERCHEV(B2;WMS!$B:$J;9;0)=""MTR0"");SI(RECHERCHEV(B2;WMS!$B:$D;3;0)=""REPORTEE"";RECHERCHEV(B2;WMS!$B:$K;10;0);RECHERCHEV(B2;WMS!$B:$D;3;0))))"
comme les braves gens d'chez nous.​


Bonne nuit !


ROGER2327
#6871


Samedi 28 Absolu 141 (Xylostomie - Vacuation)
14 Vendémiaire An CCXXII, 9,3276h - réséda
2013-W40-6T22:23:10Z
 
Re : Si mais si

Bonjour à tous.


À job75 : C'est vrai que c'est amusant les constantes et formules nommées.​


Bonne soirée.


ROGER2327
#6872


Dimanche 1[SUP]er[/SUP] Haha 141 (L’Age du Dr Faustroll - fête Suprême Seconde)
15 Vendémiaire An CCXXII, 6,2846h - âne
2013-W40-7T15:04:59Z
 

Pièces jointes

- 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
257
Réponses
2
Affichages
320
Réponses
2
Affichages
196
Réponses
10
Affichages
277
  • Question Question
Réponses
8
Affichages
329
Réponses
4
Affichages
262
Retour