Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1137 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  besoin d'aide vba excel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

besoin d'aide vba excel

n°270603
kruzi
Posté le 16-12-2002 à 16:14:36  profilanswer
 

voila pour quelqu'un de mon taff, je dois programmer une macro qui calcule le nombre de jours entre deux dates. Aucun problème avec des dates normales. Le problème est que ce sont des dates de compta qui peuvent être de la forme 01/15/02. C'est bisard mais bon.... Du coup les fonctions standards ne marchent pas. Quelqu'un a une idée?

mood
Publicité
Posté le 16-12-2002 à 16:14:36  profilanswer
 

n°270833
macray
Posté le 16-12-2002 à 18:09:17  profilanswer
 

tu n'as pas envie de les remettre dans le bon sens pour commencer ?non, c'est une idée...

n°271252
kruzi
Posté le 17-12-2002 à 13:10:24  profilanswer
 

non malheureusement c'est pas possible. Ce que j'aimerais arriver à faire c'est programmer une macro du genre: if mois>12 then..... mais je sais pas comment extraire l'information du mois dans le format date.

n°271270
vttman2
Je suis Open ...
Posté le 17-12-2002 à 13:38:46  profilanswer
 

if MOIS(DATEVAL(A1)) = 10 avec A1 contenant
la date '12/10/2002 (chaine de caractères)
 
 :whistle:

n°271274
kruzi
Posté le 17-12-2002 à 13:48:39  profilanswer
 

ma version de vba ne reconnait pas la fonction "DATEVAL" :cry:

n°271408
kruzi
Posté le 17-12-2002 à 14:20:32  profilanswer
 

en fait DATEVAL c'est la fonction "française" donc inutilisable dans du code vba mais directement dans une cellule Excel. J'ai besoin de la fonction équivalante pour le code en vba.

n°271427
kruzi
Posté le 17-12-2002 à 14:26:31  profilanswer
 

et malheureusement pour mois cette fonction n'accepte pas des mois >12 :cry:

n°271533
bikerman
Posté le 17-12-2002 à 15:58:52  profilanswer
 

L'équivalent VBA de DATEVAL est DATEVALUE

n°271959
kruzi
Posté le 18-12-2002 à 10:29:36  profilanswer
 

merci.
ceci étant dit, cela ne résoud pas mon pb pour les dates avec des mois>12

n°271963
drasche
Posté le 18-12-2002 à 10:36:21  profilanswer
 

en VBA il existe la fonction DateDiff.  As-tu essayé?  Quelle version d'XL?  D'autre part en VBA, ce n'est pas DateVal mais DateValue.

mood
Publicité
Posté le 18-12-2002 à 10:36:21  profilanswer
 

n°271972
kruzi
Posté le 18-12-2002 à 10:57:54  profilanswer
 

encore merci. en effet ça aurait pu être une solution. mais cette fonction, elle aussi, ne prend pas en compte des dates avec des mois>12 :(

n°271975
kruzi
Posté le 18-12-2002 à 11:00:18  profilanswer
 

je commence à me faire une raison; mon pb a peut être pas de solution....
mais bon si quelqu'un trouve je suis preneur! :)

n°271990
drasche
Posté le 18-12-2002 à 11:13:47  profilanswer
 

ben les fonctions VBA n'acceptent que des dates au format américain si tu leur passes une chaine (soit mois-jour-année).  Eventuellement, elles peuvent accepter le format français et le jour et le mois seront automatiquement inversés.  Sinon il reste le format universel: année-mois-jour.
 
Ce qui fait peur dans ton problème, c'est que tu dis bien "peuvent être".  Ca n'est pas toujours le cas?  Ca simplifierait grandement les choses...

n°272043
nur
Posté le 18-12-2002 à 11:59:52  profilanswer
 

kruzi a écrit :

je commence à me faire une raison; mon pb a peut être pas de solution....
mais bon si quelqu'un trouve je suis preneur! :)


essaye ça:
 
Function difference_entre_dates(date1, date2)
jour1 = Mid(date1, 4, 2)
mois1 = Mid(date1, 1, 2)
annee1 = Mid(date1, 7, 2)
 
date1 = DateSerial(annee1, mois1, jour1)
jour2 = Mid(date2, 4, 2)
mois2 = Mid(date2, 1, 2)
annee2 = Mid(date2, 7, 2)
date2 = DateSerial(annee2, mois2, jour2)
 
difference_entre_dates = date2 - date1
End Function

n°272553
kruzi
Posté le 19-12-2002 à 07:25:37  profilanswer
 

je vais vous expliquer mieux le pb (enfin je vais essayer :) )
en compta, qui n'est pas du tout ma spécialité (je suis statisticien), exeptionnellement en fin d'année avant de basculer sur l'année prochaine , il y a des dépenses engagées avant la fin d'année mais dont le règlement sera effectué que lors de l'année suivante. Mais elles sont prises en compte sur le budget 2002. Afin de boucler les comptes, la date d'enregistrement du réglement est exeptionnellement saisie sur une année de 17 mois. Donc une dépense enregistrée en 2002 mais dont le reglement a été effectuée par exemple le 2 fevrier 2003 sera saisie de la manière suivante: date d'engagement: 19/12/2002, date de reglement: 02/14/2002. On me demande de programmer(car je sert occasionnellement de pseudo informaticien dans ma boite) afin d'avoir les délais entre l'engagement et le réglement durant toute une année compta (donc une anneé de 17 mois) pour avoir des statistiques sur le service de la compta.
Voila j'espère que j'ai été clair.... :) Merci encore pour votre aide.

n°273006
nur
Posté le 19-12-2002 à 16:08:06  profilanswer
 

peut etre ça alors:
 
 
Sub dd()
 
date1 = "10/10/02"
date2 = "15/12/03"
If Year(date2) <> Year(date1) Then
temp1 = DateValue(date2) - DateSerial(Year(date2), 1, 1)
temp2 = DateSerial(Year(date1), 12, 31) - DateValue(date1)
resultat = temp1 + temp2 - 1
Else
 
resultat = DateValue(date2) - DateValue(date1)
End If
MsgBox (resultat)
End Sub


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  besoin d'aide vba excel

 

Sujets relatifs
Excel : Nom ambigu detecté : ~[PHP/MySQL] Besoin d'un coup de pouce pour optimiser un petit script
pb de génération de combinaisons sur vba (excel)[Java] besoin d'aide bidouillage BigInteger BigDecimal
besoin d'un tout petit programme :-/BATCH DOS Besoin d'aide : Erreur bizar !!!
[vba] excel : cherche a faire un truc pas evidentun peu d'aide s'il vous plait
[Excel] besoin d'aide pour formule de recherche 
Plus de sujets relatifs à : besoin d'aide vba excel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR