XL 2013 Décomposition d'une ligne avec dates de début et de fin en périodes

Chrystel01

XLDnaute Occasionnel
Bonjour,

J'ai une base de données avec des dates remboursements portant sur une période encadrée par une date de début et de fin : exemple du 14/08/2018 au 11/11/2018 = 90j

Je voudrais décomposer les 90j par périodes afin de pouvoir exploiter la donnée et la rapprocher d'autres mesures :
201808 =10j
201809 = 30j
201810= 31j
201811 = 11j

Pourriez-vous m'aider svp ?
Je vous joints un extrait du fichier pour être plus claire.

Je vous remercie par avance pour votre aide

Chrystel
 

Pièces jointes

  • Décomposition d'une ligne.xlsx
    11.3 KB · Affichages: 11

Chrystel01

XLDnaute Occasionnel
Bonjour Christel,
Avec ou sans VBA ?
Sans VBA, cela vous oblige à insérer des lignes et faire des copier coller.
Bonjour Sylvanu !

Le seul point important est de pouvoir automatiser l'exercice car j'ai des milliers de lignes et l'exercice sera à reproduire plusieurs fois dans l'année.
Si cela était faisable, je pense que cela ne peut l'être qu'avec du VBA ?

Merci beaucoup pour votre aide

Chrystel
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
je pense que cela ne peut l'être qu'avec du VBA
Un essai en PJ à tester.
Je ne suis pas d'accord avec vous sur le dispatch des jours.
Avec une date début au 2018-08-14 vous trouvez 18 jours restant pour le mois en cours.
Pour moi du 14 au 31 ça fait 17 jours.

NB: Le problème de cette macro est qu'on peut appuyer plusieurs fois sur le bouton et ainsi avoir des erreurs. Serait il possible d'avoir une colonne supplémentaire pour marquer que cette ligne est déjà traitée, on plus simple une cellule où écrire Non fait/Fait ?
 

Pièces jointes

  • Décomposition d'une ligne (1).xlsm
    28 KB · Affichages: 5

Lolote83

XLDnaute Barbatruc
Bonjour à tous,
Voici ce que j'ai imaginé

@sylvanu
Pour moi du 14 au 31 ça fait 17 jours.
Tout dépend si on prend en compte le jour du 14 ou non.
Exemple : Si tu travailles du 14 au 31, tu auras travaillé 18 jours car le 14 tu as aussi travaillé.

@+ Lolote83
 

Pièces jointes

  • Copie de CHRYSTEL01 - Décomposition d'une ligne.xlsm
    21.4 KB · Affichages: 4
Dernière édition:

Chrystel01

XLDnaute Occasionnel
Un essai en PJ à tester.
Je ne suis pas d'accord avec vous sur le dispatch des jours.
Avec une date début au 2018-08-14 vous trouvez 18 jours restant pour le mois en cours.
Pour moi du 14 au 31 ça fait 17 jours.

NB: Le problème de cette macro est qu'on peut appuyer plusieurs fois sur le bouton et ainsi avoir des erreurs. Serait il possible d'avoir une colonne supplémentaire pour marquer que cette ligne est déjà traitée, on plus simple une cellule où écrire Non fait/Fait

Un grand MERCI Sylvanu !
Je n'étais pas du tout sûre qu'il soit possible de faire cette décomposition. Cela me sauve et nous évite un travail très long et fastidieux, risque d'erreur...

L'ajout d'une colonne avec un statut fait / non fait ne pose aucun problème...au contraire si cela fiabilise la base...
Concernant le calcul du nb de jours, je dois m'aligner sur le calcul fait par la mutuelle qui nous fournit les données et inclut les jours du 14 et du 31 => cela fait donc bien 18 jours (31-14+1)

Merci beaucoup !!!
Je vais tester sur une base plus importante et essayer de comprendre le VBA pour savoir refaire ce type de code.
 

Chrystel01

XLDnaute Occasionnel
Bonjour à tous,
Voici ce que j'ai imaginé

@sylvanu

Tout dépend si on prend en compte le jour du 14 ou non.
Exemple : Si tu travailles du 14 au 31, tu auras travaillé 18 jours car le 14 tu as aussi travaillé.

@+ Lolote83

Bonjour Lolote83,
Re bonjour Sylvanu

Effectivement, je crois que je me suis mélangée, j'ai lu le message de Sylvanu et ouvert fichier de Lolotte :(
J'allais répondre quand j'ai vu vos retours. Vous êtes beaucoup plus rapides que moi !

Lolotte a parfaitement raison sur le nombre de jours : le 14 est aussi inclus dans le calcul.

La macro est Extra Lolotte ! Le seul point qui me manquait est corrigé dans cette nouvelle version.
La ligne à décomposer a été supprimée et il ne me reste plus que sa décomposition :)

Je vais maintenant essayer de la comprendre en détail pour progresser en VBA et arriver un jour à faire ces codes plus difficiles, de manière autonome j'espère.

Un grand merci à tous les 2 pour votre aide très importante et réactive qui m'enlève une grosse épine du pied !
 

Chrystel01

XLDnaute Occasionnel
... comme c'est fait je livre la V2 . Ca pourra toujours servir aux futurs lecteurs. :)
Bonjour Lolotte83,
Bonjour Sylvanu,
Bonjour le Forum,

Merci à tous les 2 pour cette superbe programmation très très utile.

J'ai fait le test avec une base de 10 000 lignes et cela fonctionne parfaitement.
J'ai également vérifié que le nombre de jours initials correspond à celui qui est décomposé.
J'ai un petit écart avec celle de Sylvanu mais c'est normal car le code considère un nb maximum de 90j (c'était mon exemple) mais je peux avoir des intervalles de dates plus larges. Les potentiels utilisateurs devront faire attention à cette variable.

Par contre, étant de niveau VBA plutôt débutant j'ai un peu moins de difficultés à comprendre le code VBA de Sylvanu =>je pourrai donc essayer d'ajouter des périodes et proratiser le montant de remboursement en fonction de ces nouvelles périodes.

Lolotte,
Merci, elle fonctionne parfaitement et est immédiatement opérationnelle. Quand je le pourrai, je vais essayer de la décortiquer pour bien la comprendre, je pourrai revenir vers vous si besoin ?

Je vous remercie pour tout !
Bon week-end
 

Lolote83

XLDnaute Barbatruc
Bonjour,
Comme convenu le fichier avec le code commenté.
Mais ce n'est pas facile d'expliquer au mieux ce que l'on a voulu coder.
En espérant que cela permettra de mieux comprendre le code.
Cordialement
@+ Lolote83
 

Pièces jointes

  • Copie de CHRYSTEL01 - Décomposition d'une ligne.xlsm
    24.7 KB · Affichages: 3

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
311 725
Messages
2 081 941
Membres
101 846
dernier inscrit
Silhabib