Problèmes utilisation jours ouvrés macro vba
couc67
Messages postés
52
Statut
Membre
-
couc67 Messages postés 52 Statut Membre -
couc67 Messages postés 52 Statut Membre -
Bonjour,
mon problème est le suivant :
Je suis sous excel, et pour valider une ligne, j'ai besoin qu'elle vérifie certaines conditions. Nottament que la date d'arrivée d'un produit corresponde à la date demandée.
Exemple : la date d'arrivée demandée est le 04/03/2011 (vendredi). Si le produit arrive le 03/03/2011 (jeudi) ou le 07/03/2011 (lundi), c'est encore bon. la ligne est validée (date demandé + ou - 1 jour, en jours ouvrés)
Mon problème est donc l'utilisation des jours ouvrés. Pour le + ou - 1 jour, je peux simplement utiliser
IF abs(DateDemandée - DateArrivée) <= 1 Then
...
mais celà ne prend pas en compte les jours ouvrés. Est ce que quelqu'un aurait un solution ?
j'ai pensé à utiliser une Feuil comprenant un calendrier (dates sur la colonne A), et un indicateur indiquant si c'est un jour ouvré ou non (colonne B = 1 si jours ouvrée, 0 sionon)
existe t il un fonction pour savoir si la date est un jour ouvré ? Si une autre méthode plus simple existe, je suis bien entendu preneur
mon problème est le suivant :
Je suis sous excel, et pour valider une ligne, j'ai besoin qu'elle vérifie certaines conditions. Nottament que la date d'arrivée d'un produit corresponde à la date demandée.
Exemple : la date d'arrivée demandée est le 04/03/2011 (vendredi). Si le produit arrive le 03/03/2011 (jeudi) ou le 07/03/2011 (lundi), c'est encore bon. la ligne est validée (date demandé + ou - 1 jour, en jours ouvrés)
Mon problème est donc l'utilisation des jours ouvrés. Pour le + ou - 1 jour, je peux simplement utiliser
IF abs(DateDemandée - DateArrivée) <= 1 Then
...
mais celà ne prend pas en compte les jours ouvrés. Est ce que quelqu'un aurait un solution ?
j'ai pensé à utiliser une Feuil comprenant un calendrier (dates sur la colonne A), et un indicateur indiquant si c'est un jour ouvré ou non (colonne B = 1 si jours ouvrée, 0 sionon)
existe t il un fonction pour savoir si la date est un jour ouvré ? Si une autre méthode plus simple existe, je suis bien entendu preneur
A voir également:
- Worksheetfunction.workday
- Utilisation chromecast - Guide
- Télécharger gratuitement notice d'utilisation - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Compte facebook suspendu 180 jours - Guide
- Compte instagram suspendu 180 jours - Guide
7 réponses
j'ai pensé à une autre possibilitée, du style :
si( (DateArrivée - 1 en jour ouvré) <= DateDemandée <= (DateArrivée + 1 en jour ouvré) ; OK ; PAS OK)
Mais est il possible de calculer DateArrivée - 1 en jour ouvré ? Par exemple, si DateArrivée est un lundi, (DateArrivé - 1 en jour ouvré) est un vendredi ?
si( (DateArrivée - 1 en jour ouvré) <= DateDemandée <= (DateArrivée + 1 en jour ouvré) ; OK ; PAS OK)
Mais est il possible de calculer DateArrivée - 1 en jour ouvré ? Par exemple, si DateArrivée est un lundi, (DateArrivé - 1 en jour ouvré) est un vendredi ?
Bonjour
Tu as une fonction sur excel SERIE.JOURS.OUVRES qui te permet d'avoir un calendrier avec uniquement les jours ouvrés
Ci joint un classeur avec des calculs sur les jours ouvrés
https://www.cjoint.com/?3djkhARFhJn
Michel
Tu as une fonction sur excel SERIE.JOURS.OUVRES qui te permet d'avoir un calendrier avec uniquement les jours ouvrés
Ci joint un classeur avec des calculs sur les jours ouvrés
https://www.cjoint.com/?3djkhARFhJn
Michel
Avant tout, merci pour ton aide.
J'ai activé l'utilitaire d'analyse (j'ai vu qu'il fallait ca pour utiliser cette fonction). Mais je ne comprend pas trop comment elle fonctionne.
Si je fais SERIE.JOUR.OUVRE(04/03/2011;1;ferie) ca me donne 07/03/2011 en théorie ? Parce que chez moi c'est pas le cas...
Autre question, SERIE.JOUR.OUVRE est surement le nom en francais. Si je veux l'utiliser sous vba, est ce possible ? Quel sera son nom ? Parce que en enregistrant la macro, ca me m'écrit "=SERIE.JOUR.... " dans la case, mais j'aimerai l'utiliser dans un FOR. Il me faudrait donc le nom...
Merci de ton aide !
J'ai activé l'utilitaire d'analyse (j'ai vu qu'il fallait ca pour utiliser cette fonction). Mais je ne comprend pas trop comment elle fonctionne.
Si je fais SERIE.JOUR.OUVRE(04/03/2011;1;ferie) ca me donne 07/03/2011 en théorie ? Parce que chez moi c'est pas le cas...
Autre question, SERIE.JOUR.OUVRE est surement le nom en francais. Si je veux l'utiliser sous vba, est ce possible ? Quel sera son nom ? Parce que en enregistrant la macro, ca me m'écrit "=SERIE.JOUR.... " dans la case, mais j'aimerai l'utiliser dans un FOR. Il me faudrait donc le nom...
Merci de ton aide !
re,
? Parce que chez moi c'est pas le cas...
bin là, je ne peux pas te dire ! :-)
SERIE.JOURS.OUVRES ----> WORKDAY
Attention, ce n'est pas une fonction VBA mais une worksheetfunction....
? Parce que chez moi c'est pas le cas...
bin là, je ne peux pas te dire ! :-)
SERIE.JOURS.OUVRES ----> WORKDAY
Attention, ce n'est pas une fonction VBA mais une worksheetfunction....
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re,
désolé, mais je ne trouve pas la fonction dans worksheetfunction :
par exemple, si ca :
For i = 1 To 30
Cells(i, 7) = WorksheetFunction.Workday(Cells(i, 1), Cells(i, 2))
Next i
ca ne passe pas. Lorsque tu mets le point après Whorksheetfunction, vba te propose les fonctions applicables, or workday n'existe pas dedans... faut il activer des fonction supplémentaires dans vba ? si oui, comment ?
désolé, mais je ne trouve pas la fonction dans worksheetfunction :
par exemple, si ca :
For i = 1 To 30
Cells(i, 7) = WorksheetFunction.Workday(Cells(i, 1), Cells(i, 2))
Next i
ca ne passe pas. Lorsque tu mets le point après Whorksheetfunction, vba te propose les fonctions applicables, or workday n'existe pas dedans... faut il activer des fonction supplémentaires dans vba ? si oui, comment ?