[VBA] transposer des lignes en colonnes avec cellules vides

Hello,

Dans une macro, je bloque sur un truc, j'aimerais copier les valeus d'une ligne et les coller dans une colonne (transposer) mais de facon à ce qu'il y ait un espace entre chaque cellule collée !

exemple: copier les données de la ligne 1 ci-dessous (le nombre peut varier):

ABCDEF

1

donnée1donnée2donnée3donnée4donnée5......
2

Et les coller de cette manière:

ABCDEF
1DESCRIPTION:
2donnée1
3
4DESCRIPTION:
5donnée2
6
7DESCRIPTION:
8donnée3
9
10DESCRIPTION:
11donnée4
12
13DESCRIPTION:
14donnée5
15
16DESCRIPTION:
17......

Comment procéder ?

Merci d'avance.

Bonjour

Un essai à tester. Te convient-il ?

24classeur1-v1.xlsm (15.05 Ko)

Bye !

Salut,

En effet c'est top, merci ! sauf qu'en fait... je t'ai pas tout dit... ;)

Je pensais pouvoir intégrer ca dans une macro que je suis en train d'écrire mais je galère sans connaissance.

En annexe 2 fichiers.

En fait je voudrais copier toutes les valeurs des lignes (celles en couleurs) du fichier source vers le fichier de destination (en transposant avec décalage donc).

J'ai essayé d'adapter comme ca (deja juste pour la 1ère ligne) mais ca marche pas ca rempli uniquement la cellule en dessous du 1er "DESCRIPTION".

Dim tabloH, tabloV
Dim nb& 'variables
    lastcol = ws.Cells(4, Columns.Count).End(xlToLeft).Column 'dernière colonne remplie
    tabloH = ws.Range("D4:D" & lastcol) 'range à copier
    ReDim tabloV(1 To UBound(tabloH, 2) * 3, 1 To 1) 'on passe de lignes en colonnes ???

    For nb = 1 To UBound(tabloH, 2) 'nombre de cellules du tableau ???
        tabloV(3 * nb - 2, 1) = tabloH(1, nb) 'valeur sur 1ère ligne du tableau
        tabloV(3 * nb - 1, 1) = "" 'valeur sur 2ème ligne du tableau
        tabloV(3 * nb, 1) = "" 'valeur sur 3ème ligne du tableau
    Next nb

    ns.Range("C12").Resize(UBound(tabloV, 1), 1) = tabloV 'on colle le tableau en C12

J'ai du mal à comprendre ces histoires de Ubound avec les chiffres derrière, t'arrives à mettre des commentaires en face pour savoir ce que ca fait exactement ?

Ou si tu arrive à faire la macro pour les fichiers

Merci.

12classeur-src.xlsx (18.89 Ko)

Au fait j'ai zappé de répondre mais c'est tout bon, je copiais le range à la verticale au lieu de l'horizontal donc ca marchait forcément moins bien .

J'ai réussi à adapter et faire ce que je voulais, et presque tout compris comment ca marchait

Je clos.

++

Rechercher des sujets similaires à "vba transposer lignes colonnes vides"