Puis-je transposer une colonne vers une ligne AVEC des espaces dans Excel VBA?

J'ai actuellement un projet excel que j'utilise pour sortinger de grandes sections de données afin d'importer ces données dans un programme spécifique. J'utilise actuellement cette section de code dans un module et je l'appelle ailleurs dans mes autres modules.

Sub CopyTransposed(rngSource As Range, rngTargetCell As Range) rngTargetCell.Resize(rngSource.Columns.Count, rngSource.Rows.Count).Value = _ Application.WorksheetFunction.Transpose(rngSource) End Sub ------------------------------------------------------------------------------------------- Sub Trans() CopyTransposed [A1:A4], [C1] End Sub 

Maintenant, je dois juste comprendre comment append des espaces entre chaque cellule. Donc A1 copy à C1, A2 copys à C3, et ainsi de suite.

Je vous remercie

Rejoignez-les avec un double délimiteur puis divisez-le sur un seul.

 Sub CopyTransposed(rngSource As Range, rngTargetCell As Range) Dim str As Ssortingng, vals As Variant str = Join(Application.Transpose(rngSource), "||") vals = Split(str, "|") rngTargetCell.Resize(1, UBound(vals) + 1) = vals End Sub Sub Trans() CopyTransposed [A1:A4], [C1] End Sub 

Vous ne savez pas si vous avez toujours besoin de cela pour les lignes dans les colonnes, mais vous pouvez utiliser la même chose pour les colonnes dans les lignes avec une instruction If de si rngSource.Columns.Count> rngSource.Rows.Count.

Je pense que vous pouvez split votre solution en deux phases:

1er – continuez à faire la transposition comme maintenant;

2ème – créez une boucle pour déplacer le contenu vers la ligne suivante. Quelque chose comme:

  for i = 1 to 8 range("C" & i).EntireRow.Insert i = i + 1 next