Else sans If
Résolu
S9091
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
S9091 Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
S9091 Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
1 réponse
Bonjour,
Remplacez :
Par :
==> nouvelle ligne après chaque Then.
Remplacez :
If Application.WorksheetFunction.VLookup(E2, Worksheet.Clients!("A1:AJ836"), 31, 0) = "YES" Then D = "lundi" ElseIf Application.WorksheetFunction.VLookup(E2, Worksheet.Clients!("A1:AJ836"), 32, 0) = "YES" Then D = "mardi" ElseIf Application.WorksheetFunction.VLookup(E2, Worksheet.Clients!("A1:AJ836"), 33, 0) = "YES" Then D = "mercredi" ElseIf Application.WorksheetFunction.VLookup(E2, Worksheet.Clients!("A1:AJ836"), 34, 0) = "YES" Then D = "jeudi" ElseIf Application.WorksheetFunction.VLookup(E2, Worksheet.Clients!("A1:AJ836"), 35, 0) = "YES" Then D = "vendredi" Else: D = "samedi" End If
Par :
If Application.WorksheetFunction.VLookup(E2, Worksheet.Clients!("A1:AJ836"), 31, 0) = "YES" Then D = "lundi" ElseIf Application.WorksheetFunction.VLookup(E2, Worksheet.Clients!("A1:AJ836"), 32, 0) = "YES" Then D = "mardi" ElseIf Application.WorksheetFunction.VLookup(E2, Worksheet.Clients!("A1:AJ836"), 33, 0) = "YES" Then D = "mercredi" ElseIf Application.WorksheetFunction.VLookup(E2, Worksheet.Clients!("A1:AJ836"), 34, 0) = "YES" Then D = "jeudi" ElseIf Application.WorksheetFunction.VLookup(E2, Worksheet.Clients!("A1:AJ836"), 35, 0) = "YES" Then D = "vendredi" Else: D = "samedi" End If
==> nouvelle ligne après chaque Then.
Comme ici, il souhaite continuer le test par des ElseIf, il convient d'utiliser la syntaxe sur plusieurs lignes, soit :
avez vous une idée ???
Application.WorksheetFunction.NETWORKSDAYS(M2, M2 + Application.WorksheetFunction.VLookup(P2, Worksheet.Produits!("A2:C169"), 3, 0), 3, 0, Worksheet.JoursfériésTunisie!("B2:B13"))
Mais comme cette formule ne me dis rien, voici la marche à suivre :
1- saisir votre formule excel telle qu'elle serait normalement utilisée (sans VBA) dans une cellule,
2- sélectionnez cette cellule
3- Tapez Alt+F11 (==>VBA)
4- Tapez Ctrl+G (==> la fenêtre d'exécution apparaît)
5- dans la fenêtre d'exécution saisir :
? ActiveCell.Formula
6- valider par la touche Entrée
revenez ici copier/coller la formule obtenue dans la fenêtre d'exécution.
Sub date_promise()
'
' date_promise Macro
'
'
ActiveCell.FormulaR1C1 = _
"=IF(NETWORKDAYS(RC[-2],RC[-2]+VLOOKUP(RC[1],Produits!R2C1:R169C3,3,0),'Jours fériés Tunisie'!RC[-13]:R[11]C[-13])=VLOOKUP(RC[1],Produits!R2C1:R169C3,3,0),RC[-2]+VLOOKUP(RC[1],Produits!R2C1:R169C3,3,0),RC[-2]+2*VLOOKUP(RC[1],Produits!R2C1:R169C3,3,0)-NETWORKDAYS(RC[-2],RC[-2]+VLOOKUP(RC[1],Produits!R2C1:R169C3,3,0),'Jours fériés Tunisie'!RC[-13]:R[11]C[-13]))"
Range("O2").Select
Selection.AutoFill Destination:=Range("O2:O1997")
Range("O2:O1997").Select
End Sub