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

5 réponses

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
  2. 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
  3. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  4. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Peux tu mettre le sujet à résolu (en haut à droite de ton premier message)

    Bonne fin de journée
    0