Je connais le bouton texte en colonnes. Le contraire peut-il être fait en sélectionnant des colonnes et éventuellement en exécutant une macro ou en utilisant un bouton similaire?
Normalement, je dis "S'il vous plaît, postez votre code" pour obtenir de l'aide/assistance pour la rédaction de macros, mais celle-ci est vraiment très simple.
Public Function ColumnsToText(rng As Range, Optional DelimitBy As String = " ") As String
'Applies on a row/partial row of data. Must be continuous cells, e.g., A1:D1.
Dim var As Variant
var = Application.Transpose(Application.Transpose(rng.Value))
ColumnsToText = Join(var, DelimitBy)
End Function
Entrez-le dans une cellule de la feuille de calcul comme:
=ColumnsToText(A1:F1)
Ou vous pouvez spécifier un délimiteur facultatif, il s’agit d’un espace par défaut, mais vous pouvez utiliser n’importe quel caractère de chaîne:
=ColumnsToText(A1:F1,"%")
Etc.
La réponse que @David Zemens a donnée en utilisant une double transposition m'a intriguée. Sa réponse fonctionne bien. J'ai trouvé un autre moyen d'obtenir une seule ligne dans un tableau à 1 dimension. Aussi, je voulais une fonction capable de gérer une colonne. Alors voici ma réponse alternative.
Public Function ColumnOrRowToText(rng As Range, Optional DelimitBy As String = " ") As String
'rng must be a single row or a single column; cannot handle multiple columns or rows
Dim var As Variant
If rng.Rows.Count = 1 Then
var = Application.WorksheetFunction.Index(rng.Value, 1, 0) 'for a single row
Else
var = Application.Transpose(rng.Value) 'for a single column
End If
'var must be a 1 dimensional array
ColumnOrRowToText = Join(var, DelimitBy)
End Function
Si au lieu de cela, ce qui vous intéresse, c’est que votre colonne ne soit pas "pivotée" et qu’elle soit une valeur dans sa propre colonne, vous devez créer un fichier plat.
Ceci est mieux réalisé avec la fonction "Rassembler" de R 'ou la fonction "Fusion" de Python Pandas. Cela peut également être accompli par le biais de macros dans Excel. Si vous ne connaissez pas les macros, une approche plus rudimentaire consiste à:
Voici un exemple: