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 -
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
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:
- Ajouter autant de ligne qu'il y a de jours dans un péridode
- Partage de photos en ligne - Guide
- Nombre de jours entre deux dates excel - Guide
- Aller à la ligne excel - Guide
- Formulaire en ligne de meta - Guide
- Mètre en ligne - Guide
5 réponses
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
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
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
Encore merci
Cordialement
floflo18
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question