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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Excel calcul sur date en VBA

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Excel calcul sur date en VBA

n°1964312
daniel-12
Posté le 09-02-2010 à 22:55:20  profilanswer
 

BonjourJ’ai 2 colonnes  Q etR avec des dates dont le format n’est pas au standard excelEx :04.02.2010  Je voudrais :-        En cellule  X1 ,ajouter un titre "temps" (facile…)-        en  cellule Xxect , ajouter le resultat des dates R-Q (en jours, donc) a la condition que lavaleur en « Cx » soit = "toto"
-        sans intervention manuelle
 
Aujourd'hui, je m'en sort avec les finctions-rechercher, remplacer-filtre automatique-recoppie de formules, manuellement
mais si je pouvais automatiser cela ce serait le top  ;)

mood
Publicité
Posté le 09-02-2010 à 22:55:20  profilanswer
 

n°1965186
kiki29
Posté le 11-02-2010 à 21:30:05  profilanswer
 

Salut, sous forme de fonction personnalisée  
code à insérer dans un module standard
Puis sous Excel : Menu Insertion/Fonction/personnalisées etc


Option Explicit
 
Function NbJoursDates(a As Range, b As Range) As Long
Dim DateDeb As Date, DateFin As Date
    DateDeb = CDate(Left$(a, 2) & "/" & Mid$(a, 4, 2) & "/" & Right$(a, 4))
    DateFin = CDate(Left$(b, 2) & "/" & Mid$(b, 4, 2) & "/" & Right$(b, 4))
     
    NbJoursDates = DateDiff("d", DateDeb, DateFin, vbUseSystem, vbUseSystem)
End Function


Pour le reste à toi d'oeuvrer

n°1965220
daniel-12
Posté le 11-02-2010 à 23:07:00  profilanswer
 

Merci
 
je ne connais pas le fonctionnemeent des fonctions mais en tout cas, les 3 lignes du milieu me suffiront amplement !

n°1965263
kiki29
Posté le 12-02-2010 à 08:55:17  profilanswer
 

Re, le principe est le même que pour les fonctions intégrées d'Excel ( somme,sommeprod etc )
simplement elle permettent à l'utilisateur de créer les siennes, dans certains cas Application.Volatile est à insérer mais attention au ralentissement créé.
 
En PJ des copies d'écran qui devraient te convaincre. Un point de détail mais le résultat est à +/- 1 ( par exmple pour 2010 364 jours ) à toi de voir si cela te convient
 
http://cjoint.com/?cmi1BTgjxf


Message édité par kiki29 le 12-02-2010 à 08:59:28
n°1965569
daniel-12
Posté le 12-02-2010 à 16:51:15  profilanswer
 

Excellent !
tout est expliqué dans les moindre détail  :jap:  
 
je vais tester
Cela me donne des idée pour d'autres besoins ponctuels
 
 
 
Je pense quand même que je vais resoudre mon problème avec une macro qui calcule la durée avec les  3 lignes qui vont bien
DateDeb = CDate(Left$(a, 2) & "/" & Mid$(a, 4, 2) & "/" & Right$(a, 4))
DateFin = CDate(Left$(b, 2) & "/" & Mid$(b, 4, 2) & "/" & Right$(b, 4))
NbJoursDates = DateDiff("d", DateDeb, DateFin, vbUseSystem, vbUseSystem)
pour n'avoir que 1 chiffre dans la bonne colonne
 
 
 
en fait certain de mes fichiers peuvent être enormes  (65000ligne),
donc je prefère attendre la fin du traitement, et avoir des donnée brutes, plutôt que d'avoir 65000 formules
le fichier final sera moins lourd
 
Merci pour ces explications !


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

  Excel calcul sur date en VBA

 

Sujets relatifs
Word: VBA pour trouver et changer une couleur RGB en une autreAccess ouverture d'un état paramétré avec variable VBA
Question sur excelCalcul quantité licence récursivement
copier données de IE vers excelProbleme incompatibilité excel 2010
VBA Fin de la fonction je reviens dans ma boucle ???Je n'arrive pas à le faire avec Excel seul.
Weather Data, VBA, HELPPPGraphe sur excel
Plus de sujets relatifs à : Excel calcul sur date en VBA


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