Else sans If
Résolu
S9091
Messages postés
8
Statut
Membre
-
S9091 Messages postés 8 Statut Membre -
S9091 Messages postés 8 Statut Membre -
Bonjour ,
Pourrez vous me dire quelle est la faute dans ce code ??? lors de la compilation un message " else sans if" s'affiche au niveau de la première elseif . Voici le code :
merci d'avance :)
Pourrez vous me dire quelle est la faute dans ce code ??? lors de la compilation un message " else sans if" s'affiche au niveau de la première elseif . Voici le code :
DPass = CDate(Range("M2"))
If Application.WorksheetFunction.NETWORKSDAYS(M2, M2 + Application.WorksheetFunction.VLookup(P2, Worksheet.Produits!("A2:C169"), 3, 0), 3, 0, Worksheet.JoursfériésTunisie!("B2:B13")) = Application.WorksheetFunction.VLookup(P2, Worksheet.Produits!("A2:C169"), 3, 0) Then
SLA = CDate(M2 + Application.WorksheetFunction.VLookup(P2, Worksheet.Produits!("A2:C169"), 3, 0))
Else: SLA = CDate(M2 + 2 * Application.WorksheetFunction.VLookup(P2, Worksheet.Produits!("A2:C169"), 3, 0) - Application.WorksheetFunction.NETWORKSDAYS(M2, M2 + Application.WorksheetFunction.VLookup(P2, Worksheet.Produits!("A2:C169"), 3, 0), 3, 0, Worksheet.JoursfériésTunisie!("B2:B13")))
End If
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
merci d'avance :)
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