Else sans If
Résolu/Fermé
S9091
Messages postés
7
Date d'inscription
lundi 11 juillet 2016
Statut
Membre
Dernière intervention
13 juillet 2016
-
Modifié par pijaku le 12/07/2016 à 10:42
S9091 Messages postés 7 Date d'inscription lundi 11 juillet 2016 Statut Membre Dernière intervention 13 juillet 2016 - 12 juil. 2016 à 11:11
S9091 Messages postés 7 Date d'inscription lundi 11 juillet 2016 Statut Membre Dernière intervention 13 juillet 2016 - 12 juil. 2016 à 11:11
1 réponse
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
12 juil. 2016 à 10:44
12 juil. 2016 à 10:44
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.
12 juil. 2016 à 10:47
Modifié par pijaku le 12/07/2016 à 10:49
Comme ici, il souhaite continuer le test par des ElseIf, il convient d'utiliser la syntaxe sur plusieurs lignes, soit :
12 juil. 2016 à 10:51
avez vous une idée ???
12 juil. 2016 à 11:01
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.
12 juil. 2016 à 11:11
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