VBA+ WorksheetFunctions imbriquees

  • Initiateur de la discussion Initiateur de la discussion Delux
  • Date de début Date de début

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 !

Delux

XLDnaute Occasionnel
Bonjour a tous et a toutes,

Sauriez-vous me dire s'il est possible d'imbriquer plusieurs worksheetFunctions?

Par exemple, comment ecrire:

Code:
If WorksheetFunction.VLookup(Range("C6").Value, Sheets("Nadia Extraction").Range("C3:E500"), 3, False) <> "" Then

Sheets("MAIN").Range("C9").Value = "OK"

Else

Sheets("MAIN").Range("C9").Value = WorksheetFunction.NetworkDays(Range("C8"), Range("AR1"))

End If

Donc en gros, comment dire que si la rechercheV donne "vide", alors lancer un networkdays?

Le code ecrit en exemple ne fonctionne pas...

Je ne joinds pas de fichier car je souhaite juste savoir la procedure a suivre 😉

Merci par avance pour votre aide.

Cordialement,

Delux
 
Re : VBA+ WorksheetFunctions imbriquees

Bonjour,


peut être ainsi, code non testé.... perso utiliserais plutôt la méthode "Find" native dans vba...
Code:
If IsError(WorksheetFunction.VLookup(Range("C6").Value, Sheets("Nadia Extraction").Range("C3:E500"), 3, False)) Then

bon après midi
@+
 
Re : VBA+ WorksheetFunctions imbriquees

Bonjour,

Merci pour ce code mais cela ne fonctionne pas.
J'ai du enlever worksheetFunction et le remplacer par Application.

Cependant, meme si je mets "If Not IsError" ou comme vous avez mis, cela me renvoie toujours la meme valeur.

Je pense qu'il faudrait rajouter une variable :/

Cordialement,
 
Re : VBA+ WorksheetFunctions imbriquees

Bonjour,
Bojour Pierrot,

Du même avis que Pierrot, avec la fonction Find c'est plus efficace dans la gestion des erreurs (Valeurs non trouvée).
Ou alors avec la fonction NB.SI (COUNTIF() )

Code:
if application.countif(plage, critere) >= 1 then 
 msgbox("Trouvé")
else
msgbox("Non trouvé")

Bien évidemment ce code est à adapter aux contexte qui est le tiens.
 
Re : VBA+ WorksheetFunctions imbriquees

Bonjour a tous,

Tout d'abord, merci pour votre implication dans la resolution de mon probleme.

Finalement, j'ai reussi a trouver la solution que voici:

Code:
If WorksheetFunction.VLookup(Range("C5").Value, Sheets("Nadia Extraction").Range("E3:AD500"), 10, False) <> "" Then
    Sheets("MAIN").Range("C9") = "OK"
    Else
    Sheets("MAIN").Range("C9") = WorksheetFunction.NetworkDays(Range("AR1"), Range("C8")) 'Numbers of Days before RFQ
    End If

En fait le probleme se situait au niveau de la synthaxe:
Sheets("MAIN").Range("C9") .Value = "OK"

Merci pour votre aide 🙂

Cependant, ma question reste la meme, peut-on imbriquer plusieurs formules dans le code vba:
Code:
WorksheetFunction.If(AND(NETWORKDAYS(........), ........ = ........), TRUE, FALSE)

Cordialement,
 
Dernière édition:
Re : VBA+ WorksheetFunctions imbriquees

Bonjour,
Si tu écris en VAB, pourquoi ne pas le faire jusqu'au bout ?

Je suppose que l'instruction avec le if(and...., true, false) vient dans une variable ?
pourquoi ne pas écrire plutôt :
mavariable = IIf( networkdays(.., ..), true, false)

ou alors si plusieurs actions :
If (condition1 or condition2) and condition 3 then
action1
action2
else
action3
end if


?
Bonne journée
 
- 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

S
Réponses
13
Affichages
2 K
Stedemart
S
L
Réponses
1
Affichages
1 K
C
Réponses
0
Affichages
2 K
C
S
Réponses
5
Affichages
2 K
Sa Mariam
S
H
  • Question Question
2
Réponses
17
Affichages
3 K
S
Réponses
28
Affichages
6 K
S
Z
Réponses
2
Affichages
1 K
Zwiespalt
Z
T
Réponses
4
Affichages
2 K
F
Réponses
0
Affichages
7 K
F
L
Réponses
4
Affichages
992
laduche81
L
E
Réponses
2
Affichages
2 K
Retour