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

Résolu
floflo18 Messages postés 14 Statut Membre -  
ccm81 Messages postés 11033 Statut Membre -
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 11033 Statut Membre 2 433
 
Bonjour

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

Attention. Lien modifié

Cdlmnt
0
via55 Messages postés 14730 Statut Membre 2 749
 
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 Statut Membre
 
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 11033 Statut Membre 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 11033 Statut Membre 2 433
 
Peux tu mettre le sujet à résolu (en haut à droite de ton premier message)

Bonne fin de journée
0