VBA : Transformer une date de début et une date de fin en mois et année

jerome.ba

XLDnaute Nouveau
Bonjour à tous,
je dois écrire une macro qui crée un tableau croisée dynamique et pour cela je dispose de document extrait de bases de données interne à mon entreprise.

Cette base de donnée me donne le nom d'un client, une date de début, une date de fin et une quantité
et j'aimerais "simplement" à partir de cela pouvoir créé une nouvelle base de donnée qui aura pour but la création d'un tableau dynamique.
Par exemple : au lieu d'avoir le client JEAN qui a un contrat du 01/01/2012 au 31/12/2012 pour une quantité de 10
je voudrais que la nouvelle feuille de la base de donnée me transforme cela comme décrit dans la pièce jointe.
Je ne sais ps comment transformer cette période en : 2012 janvier ; 2012 février ; ... ; 2012 décembre

Sheet1 : le modèle d'extraction
Sheet2 : ce que j'aimerais obtenir

J'aimerais que la répartition des quantités soit calculée linéairement.

Je vous remercie d'avance de votre aide !

Cordialement,
Jérôme
 

Pièces jointes

  • Sample.xlsx
    18.1 KB · Affichages: 71
  • Sample.xlsx
    18.1 KB · Affichages: 76
  • Sample.xlsx
    18.1 KB · Affichages: 77

Gurgeh

XLDnaute Occasionnel
Re : VBA : Transformer une date de début et une date de fin en mois et année

Salut jerome.ba

Je vois bien une solution de type macro pour constituer la base de données de la feuil2.

Néanmoins, si au final ce qui t'intéresse, c'est le tableau, je te propose de le réaliser directement avec quelques formules (je l'ai mis en feuil3).

Gurgeh
 

Pièces jointes

  • Sample.xlsx
    20.5 KB · Affichages: 86
  • Sample.xlsx
    20.5 KB · Affichages: 85
  • Sample.xlsx
    20.5 KB · Affichages: 78

jerome.ba

XLDnaute Nouveau
Re : VBA : Transformer une date de début et une date de fin en mois et année

merci Gurgeh ! malheureusement je n'ai pas trop la main pour proposer d'autres choses on m'a demander de faire ça... qui plus est le problème se complexifie par la suite : il y a des contrats en cours, des opportunités de contrats ; plusieurs contrats par clients et donc des quantités différentes...De plus il y a plusieurs sources (qui vont changer au cours du temps).
C'est pour cela que je voulais pouvoir faire un tableau croisée dynamique.

Pourrais-tu développer la solution avec macro à laquelle tu penses pour obtenir ce genre de base de donnée?

Encore merci.

Jérôme
 
Dernière édition:

Gurgeh

XLDnaute Occasionnel
Re : VBA : Transformer une date de début et une date de fin en mois et année

Bon, alors voilà la grosse cavalerie...

J'ai mis la macro dans module1, et elle écrit les résultats dans Sheets4.

Je te laisse regarder, à ta disposition pour toute question.

Attention, c'est testé sommairement, je te conseille de bien regarder comment ça marche pour vérifier que ça correspond à ton besoin...

Gurgeh
 

Pièces jointes

  • Sample.xlsm
    30.4 KB · Affichages: 75
  • Sample.xlsm
    30.4 KB · Affichages: 81
  • Sample.xlsm
    30.4 KB · Affichages: 78

jerome.ba

XLDnaute Nouveau
Re : VBA : Transformer une date de début et une date de fin en mois et année

c'est super ça fonctionne et c'est exactement ce que je voulais !!

Je vais t'embeter encore un peu si tu veux bien : pourrais-tu expliquer un peu le code étape par étape ? car je ne comprends pas entièrement la logique et vu que je vais devoir complexifier le code par la suite j'aimerais bien être sur de saisir le raisonnement qu'il y a derrière.

Merci beaucoup en tout cas.
Jérôme
 

Gurgeh

XLDnaute Occasionnel
Re : VBA : Transformer une date de début et une date de fin en mois et année

Voici une nouvelle version du fichier, avec des commentaires dans le code pour t'aider à comprendre la logique.

Si tu as des questions...

Gurgeh
 

Pièces jointes

  • Sample avec commentaires dans le code.xlsm
    28.2 KB · Affichages: 93

Discussions similaires

Réponses
15
Affichages
1 K

Statistiques des forums

Discussions
312 225
Messages
2 086 411
Membres
103 201
dernier inscrit
centrale vet