Comment dupliquer n fois un bloc de données ?

Sebast

XLDnaute Impliqué
Bonsoir à toutes et à tous,

je n'arrive pas à mettre dans une boucle des instructions de collage de données.

J'ai besoin de copier n fois un bloc de données, à mettre en colonne les unes sous les autres

Pour faire simple dans le présent exemple (simplifié), il y a
3 produits
28 pays

et je cherche à empiler 28 fois le groupe des 3 produits
et à copier le nom de chaque pays dans la colonne de droite pour chaque bloc de 3 produits
du genre :

Pêche Allemagne (DE)
Pomme Allemagne (DE)
Poire Allemagne (DE)
Pêche Autriche (AT)
Pomme Autriche (AT)
Poire Autriche (AT)
Pêche Belgique (BE)
Pomme Belgique (BE)
Poire Belgique (BE)
etc.

mais comme et le nombre de produits et le nombre de pays peut varier, je cherche à avoir une solution dynamique
Mon code ne donne rien et est très partiel (voir pièce jointe) …

Quelqu'un peut-il m'aider à réaliser en VBA ce que je viens de décrire ?

Merci d'avance à celles et à ceux qui se seront penchés sur mon cas
 

Pièces jointes

  • Fichier_calcul_05032015.xlsm
    32.4 KB · Affichages: 33
  • Fichier_calcul_05032015.xlsm
    32.4 KB · Affichages: 40
  • Fichier_calcul_05032015.xlsm
    32.4 KB · Affichages: 38

Staple1600

XLDnaute Barbatruc
Re : Comment dupliquer n fois un bloc de données ?

Bonsoir àtous


Sebast
Si j'ai bien compris le résultat à atteindre, vois si cette macro te convient
Code:
Sub test()
Dim a, b, tablo(), i&, j&, n&
Application.ScreenUpdating = False
a = Sheets("Produit").Range("A1").CurrentRegion.Value
b = Sheets("Pays").Range("A1").CurrentRegion.Value
ReDim tablo(1 To UBound(a) * UBound(b), 1 To 3)
    For i = 1 To UBound(a)
    For j = 1 To UBound(b)
    n = n + 1: tablo(n, 1) = a(i, 1): tablo(n, 2) = b(j, 1)
    Next: Next
Feuil3.Cells(1, 1).Resize(n, 2).Value = tablo
End Sub
 
Dernière édition:

Sebast

XLDnaute Impliqué
Re : Comment dupliquer n fois un bloc de données ?

Bonsoir Staple1600,

merci pour ta réponse.
Ce sera l'occasion pour moi de me mettre aux tableaux, dont je lis partout la rapidité par rapport aux solutions classiques.
Mais c'est pour moi tout neuf et je dois dire que je suis totalement novice en la matière.

Ta solution fonctionne mais peut-on garder la séquence Pêche Pomme Poire plutôt que de les avoir à la queue leu leu (ça paraît anodin mais cela aura une certaine importance pour la suite de mon projet) ?

Merci d'avance
 

Sebast

XLDnaute Impliqué
Re : Comment dupliquer n fois un bloc de données ?

Bonjour à tous,

merci pour vos précisions et désolé pour ma réponse tardive, due à un problème d'accès internet hier soir (d'où d'ailleurs mon double post de la première question !).

JCGL : ta remarque reste sans effet, ça ne conserve pas la séquence (car l'instruction est la même qu' initialement ? et/ou je n'ai pas de recul sur les tableaux pour ajuster moi-même)

For j = 1 To UBound(B)


Peux-tu me dire ce qui coince ?

Merci d'avance
 

Sebast

XLDnaute Impliqué
Re : Comment dupliquer n fois un bloc de données ?

Re,

JCGL : j'essaie en vain de conserver la séquence "Pêche-Pomme-Poire" mais je ne vois pas où intervenir dans le code (totalement nouveau pour moi ces tableaux ...).
Peux-tu me dire ce qu'il faut modifier ?

Bonne journée
 

ROGER2327

XLDnaute Barbatruc
Re : Comment dupliquer n fois un bloc de données ?

Bonjour à tous.


Re,

JCGL : j'essaie en vain de conserver la séquence "Pêche-Pomme-Poire" mais je ne vois pas où intervenir dans le code (totalement nouveau pour moi ces tableaux ...).
Peux-tu me dire ce qu'il faut modifier ?

Bonne journée
Essayez en remplaçant​
Code:
    For i = 1 To UBound(a)
    For j = 1 To UBound(b)
par​
Code:
    For j = 1 To UBound(b)
    For i = 1 To UBound(a)
dans le code de Staple1600.​


Bonne journée.


ℝOGER2327
#7795


Jeudi 12 Pédale 142 (Saint Hari Seldon, psychohistorien galactique - fête Suprême Quarte)
16 Ventôse An CCXXIII, 5,5741h - épinard
2015-W10-5T13:22:40Z
 

Sebast

XLDnaute Impliqué
Re : Comment dupliquer n fois un bloc de données ?

Bonjour Roger2327,

merci beaucoup de vous être penché sur ma demande, qui peut paraître incongrue car pour moi les tableaux sont vraiment une nouveauté ... je suis un peu dans le brouillard et cherche à comprendre plutôt qu'à simplement recopier.

La modif fonctionne parfaitement, encore merci !


Je cherche à aller un peu plus loin :
si ma feuille Produit contenait deux colonnes de plus (par exemple "Pêche catégorie 1 gros calibre") je n'arrive pas à adapter le code ...

Quelles seraient les modifs ?

Bonne soirée
 

Staple1600

XLDnaute Barbatruc
Re : Comment dupliquer n fois un bloc de données ?

Bonsoir à tous

Merci à ROGER2327 pour la correction de ma macro du message #2

Comme la question semble devenir une question à tiroirs, je passe le relais à mes petits camarades de jeu ;)
 

Discussions similaires