Ajouter autant de ligne qu'il y a de jours dans un péridode

Résolu
floflo18 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -  
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

J'essaye actuellement d'automatiser un fichier Excel mais je n'y arrive pas. Ce tableur est composé de plusieurs lignes avec de nombreuses données dont une date de début et une date de fin.
J'aimerais passer du tableur suivant :
Données 1-----Données 2 ----Date de début ---Date de fin
-----a -----------------b-------------01/01/15---------03/01/15
-----d -----------------v-------------02/02/15---------03/02/15

A celui la :
Données 1-----Données 2 ----Date de début ---Date de fin
-----a -----------------b-------------01/01/15---------01/01/15
-----a -----------------b-------------02/01/15---------02/01/15
-----a -----------------b-------------03/01/15---------03/01/15
-----d -----------------v-------------02/02/15---------02/02/15
-----d -----------------v-------------03/02/15---------03/02/15

Pouvez-vous m'aider SVP ?

Merci beaucoup.

floflo18
A voir également:

5 réponses

ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Bonjour

Un exemple via une macro
https://www.cjoint.com/?3DCpayAIKSA

Attention. Lien modifié

Cdlmnt
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Bonjour

Par macro (en supposant les données de départ en colonnes A, B, C et D de Feuil 1 à transposer en feuil 2):

Sub trans()
lignecopie = 1 'n° de la ligne précédent la 1ere ligne à copier
For ligne = 2 To 3 ' boucle sur les lignes 2 à 3 du 1er tableau
diff = Sheets("Feuil1").Range("D" & ligne).Value - Sheets("Feuil1").Range("C" & ligne).Value 'calcul difference de dates
For n = 0 To diff 'boucle à partir de la difference
lignecopie = lignecopie + 1 'incremente de 1 la ligne de recopie en feuil2
' effectue les copies en feuilles 2 en colonnes A B C et D
Sheets("Feuil2").Range("A" & lignecopie) = Sheets("Feuil1").Range("A" & ligne)
Sheets("Feuil2").Range("B" & lignecopie) = Sheets("Feuil1").Range("B" & ligne)
Sheets("Feuil2").Range("C" & lignecopie) = Sheets("Feuil1").Range("C" & ligne) + n
Sheets("Feuil2").Range("D" & lignecopie) = Sheets("Feuil1").Range("C" & ligne) + n
Next n
Next ligne
End Sub

Macro à mettre dans le Worksheet de la feuille 1

A adapter à tes besoins

Cdlmnt

"L'imagination est plus importante que le savoir." A. Einstein
0
floflo18 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
Merci ccm81. La macro est presque parfaite. Le seul problème est que la ligne copier n'a pas sa date de fin de changée.

Encore merci

Cordialement

floflo18
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Désolé, il me semblait avoir modifié le lien du post #1
https://www.cjoint.com/?3DCprIkws1J

Cdlmnt
0

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

Posez votre question
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Peux tu mettre le sujet à résolu (en haut à droite de ton premier message)

Bonne fin de journée
0