VBA pour transformer text en colonne

Bonjour

je souhaite transformer une colonne avec des séparateurs ";" en plusieurs colonnes.

L'option Text to column ne fonctionne pas.

Y a t-il moyen de la faire en VBA pour les colonnes B, L, V, AP, AS du fichier excel joint?

Merci

Bonsoir,

Sous forme de fonction personnalisée :

Function EXTRACT(tx As String, rg As Integer) As String
    Dim txt
    Application.Volatile
    txt = Split(";" & tx, ";")
    If rg <= UBound(txt) Then
        EXTRACT = txt(rg)
    Else
        EXTRACT = ""
    End If
End Function

Utilisation :

=EXTRACT($B4;COLONNE(A:A))

Exemple en C4, et tirer sur la ligne.

Préalable :

Avant de taper la moindre formule, mettre toutes les cellules au format Standard (éliminer tout format Texte, incompatible avec des formules), et mettre en calcul auto !

Cordialement.

Merci mais j'ai un retour d'erreur comme quoi la fonction n'est pas valide

Dans le classeur test ?

Qu'as-tu fait pour obtenir l'erreur ?

appliquer en cellule C4 la formule que tu as donné à savoir =EXTRACT($B4;COLUMN(B:B))

Il semble que ce soit la fonction EXTRACT qui ne soit pas reconnue

Salut Sophie, MFerrand,

si j'ai bien compris l'affaire... un petit bouton rouge...

'
Dim tTab
'
Application.ScreenUpdating = False
For x = 1 To 5
    sFlag = Choose(x, "B", "L", "V", "AP", "AS")
    iCol = Val(Mid(Columns(sFlag).Address(ReferenceStyle:=xlR1C1), 2))
    iRow = Range(sFlag & Rows.Count).End(xlUp).Row
    '
    For y = 2 To iRow
        If InStr(Cells(y, iCol), ";") > 0 Then
            tTab = Split(Cells(y, iCol), ";")
            For Z = 0 To UBound(tTab)
                Cells(y, iCol + Z) = tTab(Z)
            Next
        End If
    Next
Next
Application.ScreenUpdating = True
'

A+

Justement, en C4 je l'avais déjà mise et elle fonctionnait !

Je ne comprends donc pas le problème !

Et je l'ai mise ailleurs en colonne C, elle fonctionne toujours !

Merci

je ne vois pas la formule que tu as pu mettre en C4 mais je devine que ceci se fait via ton code VBA

Par contre, ceci est peut etre un effet de bord d'Excel 2016 mais en cliquant sur le petit bouton rouge, le prog tourne sans discontinuité...

Mais par contre les colonnes sont bien renseignées

Y a t il un moyen de fixer ce bug?

Car je dois ensuite faire un copy paste afin de mettre ces lignes sous format de colonne

Bonsoir Sophie,

pas de formule! Pas assez fort pour ça! Que du VBA!

Par contre, sur ma machine, pas de bug ni de macro qui tourne folle!

Peut-être ajouter : Application.EnableEvents = False

'
Dim tTab
'
Application.EnableEvents = False
.
.
Application.EnableEvents = True
'

A+

Probleme resolu merci, il fallait que je sauvegarde le fichier et que je le reouvre.

merci pour votre aide

je ne vois pas la formule que tu as pu mettre en C4

C'est un peu fort !

Je te remets le fichier ! Les cellules où j'ai mis la formule sont colorées en jaune. Et la formule est tirée sur la ligne pour la recopier.

Le code de la fonction se trouve en Module1.

Rechercher des sujets similaires à "vba transformer text colonne"