Creation tableau de synthese à partir de 3 tableaux

Y compris Power BI, Power Query et toute autre question en lien avec Excel
M
Marc_465
Nouveau venu
Nouveau venu
Messages : 3
Inscrit le : 17 avril 2016
Version d'Excel : 2007

Message par Marc_465 » 17 avril 2016, 21:11

Bonsoir à tous,
Je suis novice sur excel-VBA. Je vous demande un peu d'aide svp pour solutionner mon probléme. Voici ce que je n'arrive pas à faire:
Je souhaite à partire de 3 tableaux (qui me servent de base de donnée et qui ont le même nombre de lignes avec une ligne d'entête qui n'est pas à prendre en compte), chacun dans une feuille excel (Feuil1->tableau 1, Feuil2->tableau 2 et Feuil3->tableau 3) construire un tableau de synthése situé en Feuil4 (tableau 4) et constitué par exemple des lignes suivantes:

1ére ligne du tableau 4 de synthése = 1ére ligne du tableau 1 situé en Feuil1;{ne pas prendre en compte la ligne d'entête}

2éme ligne du tableau 4 de synthése = 1ére ligne du tableau 2 situé en Feuil2; {cette ligne est copiée 2 fois}
3éme ligne du tableau 4 de synthése =1ére ligne du tableau 2 situé en Feuil2;

4éme ligne du tableau 4 de synthése = 1ére ligne du tableau 3 situé en Feuil3; {cette ligne est copiée 4 fois}
5éme ligne du tableau 4 de synthése = 1ére ligne du tableau 3 situé en Feuil3;
6éme ligne du tableau 4 de synthése = 1ére ligne du tableau 3 situé en Feuil3;
7éme ligne du tableau 4 de synthése = 1ére ligne du tableau 3 situé en Feuil3;

puis incrémenter la lecture de la ligne du tableau 1 et à nouveau
8éme ligne du tableau 4 de synthése = 2éme ligne du tableau 1 situé en Feuil1;

9éme ligne du tableau 4 de synthése = 2éme ligne du tableau 2 situé en Feuil2; {cette ligne est copiée 2 fois}
10éme ligne du tableau 4 de synthése = 2éme ligne du tableau 2 situé en Feuil2;

11éme ligne du tableau 4 de synthése = 2éme ligne du tableau 3 situé en Feuil3; {cette ligne est copiée 4 fois}
12éme ligne du tableau 4 de synthése = 2éme ligne du tableau 3 situé en Feuil3;
13éme ligne du tableau 4 de synthése = 2éme ligne du tableau 3 situé en Feuil3;
14éme ligne du tableau 4 de synthése = 2éme ligne du tableau 3 situé en Feuil3;

Continuez ainsi jusqu'à ceque toutes les lignes du tableau 1 soient parcourues.

Merci d'avance pour votre aide. En espérant avoir été assez clair dans ma présentation du probléme.
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'198
Appréciations reçues : 445
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 17 avril 2016, 21:25

Bonsoir,

Il ne te reste plus qu'à mettre un fichier à traiter selon tes spécifications d'une part,
et d'autre part de confirmer que c'est bien la question définitive que tu veux poser et que ton expression : "constitué par exemple des lignes suivantes" ne constitue en rien un prélude indiquant qu'en fait ta question serait autre et que tu entends t'en approcher par une série de questions successives.

Cordialement.
M
Marc_465
Nouveau venu
Nouveau venu
Messages : 3
Inscrit le : 17 avril 2016
Version d'Excel : 2007

Message par Marc_465 » 17 avril 2016, 21:39

Tableau_Synthese.xlsx
(17.01 Kio) Téléchargé 22 fois
Bonsoir,
Le fichier à traiter est en PJ. La question est définitive. Seulele contenu des lignes va être enrichi. j'aurai à terme beaucoup plus de colonnes dans mes tableaux par contre le nombre de lignes ne vas paschanger.
Merci pour votre aide.
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'198
Appréciations reçues : 445
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 17 avril 2016, 22:08

Re,
Sub Synthèse()
    Dim Lgn As Range, n%, i%, j%
    With Worksheets("Feuil4")
        n = 2
        For i = 1 To [Tablo1].Rows.Count
            Set Lgn = [Tablo1].Rows(i)
            .Range("A" & n).Resize(, Lgn.Columns.Count) = Lgn.Value
            Set Lgn = [Tablo2].Rows(i)
            For j = n + 1 To n + 2
                .Range("A" & j).Resize(, Lgn.Columns.Count) = Lgn.Value
            Next j
            Set Lgn = [Tablo3].Rows(i)
            For j = n + 3 To n + 6
                .Range("A" & j).Resize(, Lgn.Columns.Count) = Lgn.Value
            Next j
            n = n + 7
        Next i
    End With
End Sub
Cordialement.
marc465_Tableau_Synthese.xlsm
(29.36 Kio) Téléchargé 32 fois
M
Marc_465
Nouveau venu
Nouveau venu
Messages : 3
Inscrit le : 17 avril 2016
Version d'Excel : 2007

Message par Marc_465 » 17 avril 2016, 22:12

Merci infiniment MFerrand pour votre aide et le temps que vous avez consacré à la résolution de mon probléme.
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message