Fonction si multiple

Bonjour, je viens de créer un tableau qui comporte 12 colonnes. Dans la colonne 8, il y a un chiffre entre 3 et 7 qui indique une priorité, et dans la colonne 9 il y a une date. Si la priorité est 3, le délai maximum pour voir le patient est de 30 jours, si 4 , 60 jours, etc....Sur une même ligne, évidemment, j'aimerais que la date limite s'affiche dans la colonne 10, selon la priorité qui est inscrite dans la colonne 8. Comment coder?

Merci à l'avance!

Bonjour,

en J2:

=I2+(30*(H2-2))

à tirer vers le bas

renelou

Cdlt

Merci mais je cherche le code VBA...

Alors ceci:

Sub Delai()
    Dim DerLig As Long
    Application.ScreenUpdating = False
    DerLig = Range("I" & Rows.Count).End(xlUp).Row
    Range("J2:J" & DerLig).FormulaR1C1 = "=RC[-1]+(30*(RC[-2]-2))"
End Sub

Wow merci beaucoup je vais essayer ce code😊

J'ai peut-être mal expliqué mon problème...Une priorité 3 c'est 30 jours, une priorité 4 c'est 60 jours, 5 , 90 jours, 6 , 365 jours, et 7 730 jours...
Désolée :(

Remplacez la ligne de la formule par celle-ci:

    Range("J2:J" & DerLig).FormulaR1C1 = "=IFERROR(IF(RC[-2]<6,RC[-1]+(30*(RC[-2]-2)),IF(RC[-2]=6,RC[-1]+365,IF(RC[-2]=7,RC[-1]+730,""""))),"""")"

ou par celle-ci:

    Range("J2:J" & DerLig).FormulaR1C1 = "=IFERROR(IF(RC[-2]<6,RC[-1]+(30*(RC[-2]-2)),IF(RC[-2]=6,EDATE(RC[-1],12),IF(RC[-2]=7,EDATE(RC[-1],24),""""))),"""")"

Un gros gros merci Arturo83☺️

Désolée...ça ne fonctionne pas ;(

img 1788

Je dois rajouter moi-même la valeur dans la colonne délai ...J'ai un formulaire pour remplir les demandes mais il remplit tous les champs sauf celui du délai maximum.

si priorité 3, délai 30 jours plus tard

si priorité 4=90 jours plus tard

si priorité 5=300 jours plus tard

si priorité 6=360 jours plus tard

si priorité 7=540 jours plus tard.

Bonjour, quand vous dites j'ai un formulaire qui remplit tous les champs...

Vous parlez d'un userform ? si oui il faudrait minimum le code vba que vous utilisez pour remlpir les autres champs afin de pouvoir trouver le code pour la l'info "Délai MAx"

oui. Un userform! Je suis capable de rédiger la fonction multiple, mais je ne suis pas capable de la coder en langage VBA

=SI(H2=3;I2+30;SI(H2=4;I2+90;SI(H2=5;I2+300;SI(H2=6;I2+360;SI(H2=7;I2+540)))))

Merci!!!

Re Comme écrit plus haut dans ce cas, indiquez nous le code vba utilisé dans le bouton enregistrer ou valider ou autre...

Enfin le code du bouton qui inscrit vos données dans la feuille.

On ne peut pas tout deviner comme par exemple dans quelle textbox se trouve la date de la demande nécessaire au calcul.

Sinon un fichier exemple sans info confidentielles.

Vous avez bien raison! Désolée! Je suis novice en VBA!

Private Sub CommandButton1_Click()
'Saisie de la location dans la base de donnée
Dim ligne As Long
ligne = Sheets("Liste").[a2].End(xlDown).Row + 1

Sheets("Liste").Range("a" & ligne) = TextBox1_ND
Sheets("Liste").Range("b" & ligne) = TextBox2_NF
Sheets("Liste").Range("c" & ligne) = TextBox3_PR
Sheets("Liste").Range("d" & ligne) = CDate(TextBox4_DDN)
Sheets("Liste").Range("e" & ligne) = ComboBox1_REF
Sheets("Liste").Range("f" & ligne) = ComboBox2_RV
Sheets("Liste").Range("g" & ligne) = ComboBox3_CLASS
Sheets("Liste").Range("h" & ligne) = ComboBox4_PRIO
Sheets("Liste").Range("i" & ligne) = CDate(TextBox5_DRD)
Sheets("Liste").Range("k" & ligne) = CDate(TextBox6_CV)
Sheets("Liste").Range("l" & ligne) = CDate(TextBox7_BIO)
Sheets("Liste").Range("p" & ligne) = TextBox8_NOTES

Unload Me
End Sub

Donc soit en utilisant la solution d'Arturo83 mais en l'adaptant à vos données car il n'avait pas le code du bouton.

Sheets("Liste").Range("j" & ligne).FormulaR1C1 = "=IFERROR(IF(RC[-2]<6,RC[-1]+(30*(RC[-2]-2)),IF(RC[-2]=6,EDATE(RC[-1],12),IF(RC[-2]=7,EDATE(RC[-1],24),""""))),"""")"

Ou Comme ceci par exemple.

Private Sub CommandButton1_Click()
'Saisie de la location dans la base de donnée
Dim ligne As Long

ligne = Sheets("Liste").[a2].End(xlDown).Row + 1

Sheets("Liste").Range("a" & ligne) = TextBox1_ND
Sheets("Liste").Range("b" & ligne) = TextBox2_NF
Sheets("Liste").Range("c" & ligne) = TextBox3_PR
Sheets("Liste").Range("d" & ligne) = CDate(TextBox4_DDN)
Sheets("Liste").Range("e" & ligne) = ComboBox1_REF
Sheets("Liste").Range("f" & ligne) = ComboBox2_RV
Sheets("Liste").Range("g" & ligne) = ComboBox3_CLASS
Sheets("Liste").Range("h" & ligne) = ComboBox4_PRIO
Sheets("Liste").Range("i" & ligne) = CDate(TextBox5_DRD)
Sheets("Liste").Range("k" & ligne) = CDate(TextBox6_CV)
Sheets("Liste").Range("l" & ligne) = CDate(TextBox7_BIO)
Sheets("Liste").Range("p" & ligne) = TextBox8_NOTES

If ComboBox4_PRIO.Value = 3 Then
Sheets("Liste").Range("j" & ligne) = DateAdd("d", 30, CDate(TextBox5_DRD))
End If

If ComboBox4_PRIO.Value = 4 Then
Sheets("Liste").Range("j" & ligne) = DateAdd("d", 90, CDate(TextBox5_DRD))
End If

If ComboBox4_PRIO.Value = 5 Then
Sheets("Liste").Range("j" & ligne) = DateAdd("d", 300, CDate(TextBox5_DRD))
End If

If ComboBox4_PRIO.Value = 6 Then
Sheets("Liste").Range("j" & ligne) = DateAdd("d", 360, CDate(TextBox5_DRD))
End If

If ComboBox4_PRIO.Value = 7 Then
Sheets("Liste").Range("j" & ligne) = DateAdd("d", 540, CDate(TextBox5_DRD))
End If

Unload Me
End Sub

Ho lala! Comment vous dire merci! Vous n'avez pas idée à quel point vous faites ma journée😃😃😃Merciiiiiiiiii!

Ça marche à merveille! Encore une fois, mille mercis du Québec!

Rechercher des sujets similaires à "fonction multiple"