Creation tableau de synthese a partir de basede donnée

Fermé
mar_4654 Messages postés 1 Date d'inscription dimanche 17 avril 2016 Statut Membre Dernière intervention 17 avril 2016 - 17 avril 2016 à 21:28
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 - 17 avril 2016 à 22:41
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.

1 réponse

melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
17 avril 2016 à 22:41
Bonjour,

Voici la macro :

sub synthèse ()

source=1
dest = 1

'booucle qui va balauer le tableau de la cellule 1 jusqu'à ce qu'il y ait du vide dans la première colonne
do while sheets("Sheet1).cells(source,1) <> ""
'va copier la ligne de la feuille 1 dans la feuille 4
Sheets("Sheet1").Rows(source).Copy Sheets("Sheet4").Cells(dest, 1)
dest=dest+1

'va copier la ligne de la feuille 2 dans la feuille 4 2 fois
Sheets("Sheet2").Rows(source).Copy Sheets("Sheet4").Cells(dest, 1)
dest=dest+1
Sheets("Sheet2").Rows(source).Copy Sheets("Sheet4").Cells(dest, 1)
dest=dest+1

'va copier 4 fois la feuille 3 dans la feuille 4
Sheets("Sheet3").Rows(source).Copy Sheets("Sheet4").Cells(dest, 1)
dest=dest+1
Sheets("Sheet3").Rows(source).Copy Sheets("Sheet4").Cells(dest, 1)
dest=dest+1
Sheets("Sheet3").Rows(source).Copy Sheets("Sheet4").Cells(dest, 1)
dest=dest+1
Sheets("Sheet3").Rows(source).Copy Sheets("Sheet4").Cells(dest, 1)
dest=dest+1

source = source+1
loop

end sub
0