Excel: macro VBA

salimelwalfa Messages postés 2 Date d'inscription vendredi 27 janvier 2012 Statut Membre Dernière intervention 30 janvier 2012 - 27 janv. 2012 à 11:11
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 30 janv. 2012 à 08:15
Bonjour les ami(e)s,
J'aurai besoin de votre expertise dans ce domaine dont (j'avoue) je ne suis pas fort.
je dois faire un bouton qui active une macro pour sortir quelques calcul sur l'exemple (voir ci-dessous).

1-la difficulté c'est le calul de la variable diff , qui est la différence en jours ouvrables entre date1 et date 2 (mm/jj/aaaa) !!!

2-aussi un deuxième défi, incrémenté la variable it (par défaut égale à 1) du code_s concerné à chaque retour de la variable code (parcours normal de code de 1 à 8) un retour vers l'arrière est synonyme d'une incrémentation de la variable it du code_s)
remarque: le copy paste de l'exemple en bas le fait en deux ligne, mais le copy paste d'ici vers excel fonctionne bien.
Je me creuse les cellules grises mais je ne trouve pas. help.

ID date1 date2 code_s code diff it
1 12/10/2011 12/10/2011 1 1
1 12/10/2011 12/10/2011 1 2
1 12/10/2011 13/10/2011 1 3
1 13/10/2011 14/10/2011 2 4
1 14/10/2011 15/10/2011 1 1
1 15/10/2011 16/10/2011 1 3
1 16/10/2011 17/10/2011 2 4
1 17/10/2011 17/10/2011 2 5
1 17/10/2011 17/10/2011 2 6
1 18/10/2011 19/10/2011 3 7
1 19/10/2011 20/10/2011 3 8
2 21/10/2011 21/10/2011 1 1
2 21/10/2011 22/10/2011 1 2
2 22/10/2011 23/10/2011 1 3
2 23/10/2011 24/10/2011 2 4
2 24/10/2011 25/10/2011 2 5
2 25/10/2011 27/10/2011 2 6
2 27/10/2011 28/10/2011 3 7
2 28/10/2011 29/10/2011 3 8

7 réponses

bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
27 janv. 2012 à 12:15
Salut,

intéresse toi à la fonction DateDiff() qui permet, entre autre, de renvoyer une différence en jour.

exemple de l'aide excel avec quelques corrections :

Dim TheDate As Date    ' Déclare les variables.
Dim Msg as String
TheDate = InputBox("Entrez une date")
If Is(TheDate)=True Then
   Msg = "Jours à compter d'aujourd'hui: " & DateDiff("j", Now, TheDate)
Else
   Msg = "Ce n'est pas une date valide ! "
End If
MsgBox Msg


A+
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
27 janv. 2012 à 12:17
ooups!

Dim TheDate As Date    ' Déclare les variables.
Dim Msg as String
TheDate = InputBox("Entrez une date")
If IsDate(TheDate)=True Then
   Msg = "Jours à compter d'aujourd'hui: " & DateDiff("j", Now, TheDate)
Else
   Msg = "Ce n'est pas une date valide ! "
End If
MsgBox Msg


A+
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
27 janv. 2012 à 12:58
Bonjour, bigfish_le vrai

manque de quoi traiter les jours ouvrables ... (car je pense que là était la question et la difficulté)
Mais je ne lui ai pas répondu. Pourquoi ?


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
27 janv. 2012 à 14:15
Je sors de ma sieste et constate le silence de salimelwalfa (et de tous) .
Personne ne s'interroge sur la raison fondamentale de mon "pourquoi ?"
A salimelwalfa, donc :
Il faut apprendre à être très précis. Ta première question a en effet, telle que posée, au moins deux interprétations possibles. Je dis "au moins" car il y en a une troisième, selon le résultat que tu veux réellement atteindre.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
salimelwalfa Messages postés 2 Date d'inscription vendredi 27 janvier 2012 Statut Membre Dernière intervention 30 janvier 2012
30 janv. 2012 à 00:49
Meri pour votre intérêt.
1- je voudrais calculer la variable diff qui est différence en jours ouvrables entre date1 et date 2 ave le fait que les dates sont sous le format (mm/jj/aaaa)
2- it étant lié à code_s elle s’incrémente à chaque retour en arrière de code.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
30 janv. 2012 à 08:03
Bon,
je vais donc m'en tenir RIGOUREUSEMENT à ta demande, telle que formulée
Dim date1 As Date, date2 As Date, i As Integer
 date1 = #1/1/2012#
 date2 = #1/28/2012#
 For i = DateDiff("d", date1, date2) To 1 Step -1
   If CDate(WorksheetFunction.WorkDay(date1, i)) <= date2 Then Exit For
 Next
 MsgBox "il y a " & i & " jours ouvrables  entre le " & Format(date1, "dd/mm/yyyy") & " et le " & Format(date2, "dd/mm/yyyy")


Voilà donc.
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
30 janv. 2012 à 08:15
Tout en devinant bien que ce n'est pas du tout ce que tu "voulais dire" (d'où mes deux remarques plus haut).
Voilà !

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Rejoignez-nous