Dans cet article, nous allons créer une macro pour délimiter le texte d’une cellule dans une colonne verticalement. Nous pouvons délimiter le texte dans la cellule en fonction du délimiteur. Le délimiteur peut être une virgule, un espace, une barre oblique inverse, etc.

Pour expliquer le fonctionnement de la macro, nous avons pris l’URL comme exemple de texte dans la cellule A10. La macro peut être exécutée en cliquant sur le bouton «Soumettre».

ArrowSampleData

Après avoir exécuté la macro, elle retournera la sortie dans la colonne suivante.

La valeur de texte dans la cellule est séparée en plusieurs sous-chaînes dans plusieurs cellules de la deuxième colonne.

ArrowAfterRunningMacro

Explication logique

Nous avons créé une macro «texttocolumns» qui effectue deux tâches.

Premièrement, il délimite la chaîne de l’A10 en plusieurs sous-chaînes, en fonction du délimiteur. Dans cet exemple, nous avons utilisé le tiret (-) comme délimiteur. Deuxièmement, il parcourt les sous-chaînes générées de plusieurs colonnes vers une seule colonne.

Explication du code

Rng.texttocolumns Destination: = Rng.Offset (0, 1), DataType: = xlDelimited, _ TextQualifier: = xlDoubleQuote, ConsecutiveDelimiter: = True, Other: = True, OtherChar _: = « -« 

Le code ci-dessus est utilisé pour délimiter la chaîne dans la plage «Rng». Destination spécifie la plage d’emplacement où la sortie apparaîtra. DataType spécifie le type de délimiteur utilisé. TextQualifier spécifie le caractère utilisé pour le qualificatif de texte. OtherChar spécifie le caractère utilisé comme délimiteur.

Veuillez suivre ci-dessous pour le code

Sub texttocolumns()

'Declaring variables

Dim StartRow, i, LastCol As Long

Dim Rng As Range

'disabling the display alerts

Application.DisplayAlerts = False

'Initializing the variable

StartRow = 10

Set Rng = Range("A10")

'Separting the text based on the delimiter

Rng.texttocolumns Destination:=Rng.Offset(0, 1), DataType:=xlDelimited, _

TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Other:=True, OtherChar _

:="-"

'Finding the column number of cell containing the last string after delimiting

LastCol = Rng.End(xlToRight).Column

'arranging the text in columns to rows

For i = 2 To LastCol

Cells(10, i).Cut Cells(StartRow, 2)

StartRow = StartRow + 1

Next i

End Sub

Si vous avez aimé ce blog, partagez-le avec vos amis sur Facebook et Facebook.

Nous serions ravis de vous entendre, faites-nous savoir comment nous pouvons améliorer notre travail et le rendre meilleur pour vous. Écrivez-nous à [email protected]