Extraction de chaînes

Bonjour à tous,

En A1 j'ai une chaîne formée d'un assez grand nombre de sous-chaînes par exemple LQPX84705 LQZG02671, ...

Je voudrais afficher chacune de ces sous-chaînes en A3, A4, ...

J'ai écrit le code assez simple mais l'exécution affiche dans chaque cellule "#NOM?". Je ne trouve pas l'erreur ?

Je joins le fichier. Pouvez-vous m'aider ?

Sylb

Bonjour,

sélectionner la plage et 'Données / Convertir'
Délimité, choisir Espace
eric

Bonsoir,

un SPLIT avec le caractère espace, puis copie du tableau dans la colonne A.

@ bientôt

LouReeD

bonsoir

sans vba ni ...... ; pour les intêressés

26sylb.xlsx (11.24 Ko)

Bonjour à tous,
Pour le principe avec VBA !...
Sur la base du fichier du tridactyle.

8sylb.xlsm (19.93 Ko)
Public Sub SplitData()
Dim sText As String, tbl, i As Long, lRow As Long
    With Worksheets("Feuil1")
        lRow = 4
        .Cells(lRow, 4).CurrentRegion.ClearContents
        sText = .Cells(2, 2).Value
        tbl = VBA.Split(sText)
        For i = LBound(tbl) To UBound(tbl)
            .Cells(lRow, 4).Value = tbl(i)
            lRow = lRow + 1
        Next i
    End With
End Sub

Bonsoir à tous !

Pour le principe sans VBA mais avec ......

Sur la base du fichier de notre horticulteur préféré....

Bonjour JFL,

Merci beaucoup pour ta réponse. Je n'avais pas pensé utiliser le menu données et convertir, solution signalée aussi par plusieurs autres personnes.

Mais je reste quand même sur ma faim concernant ma question ... "quelle est l'erreur qui me donne chaque fois "#NOM?" dans les lignes que j'avais écrites en VBA"?

Cela m'ennuie car je peux faire la même erreur dans d'autres codes.

Sylb

Bonjour sylb..

Euh, tu as bien relu ton message initial?

Perso, je n'ai pas trouvé de fichier exemple...

Donc, ça ne va pas être simple pour t'aider à trouver l'erreur..

Bonne journée

Bonjour Cousin hub,

Merci pour ta réponse . J'ai sans doute fait une mauvaise manipulation pour le joindre ... voici le fichier.

Sylb

Re-,

Pour commencer, je ne pourrais te donner comme conseil que de toujours inclure une majuscule lorsque tu déclares une variable.
Ainsi, tu peux voir si cette variable est bien prise en compte lorsque tu l'insères toute en minuscule dans une instruction quelconque (elle va automatiquement se mettre au bon format)

Dans la procédure qui suit, j'ai pris pour acquis les deux termes ("Résultats" et "2/2", en position 2964 et 3145 dans la suite des codes) (si ces 2 termes n'apparaissent pas, il va falloir modifier en conséquence)

Essaie ainsi :

Sub extractchaine3()
Dim I As Long, Pos1 As Long, J As Long, Pos2 As Long
Dim LesCodes As String
Pos1 = InStr(1, Range("A1"), " Résultats") 'calcul de la position de " Résultats"
Pos2 = InStr(1, Range("A1"), " 2/2") + 4 'calcul de la position de "2/2"
LesCodes = Left(Range("A1"), Pos1) & Right(Range("A1"), Len(Range("A1")) - Pos2) 'on extrait les codes
Range("A2") = LesCodes 'codes mis dans la cellule A2
For I = 1 To Len(LesCodes) Step 10
    Range("A3").Offset(J) = ("= mid(A2," & I & ", 10)"): J = J + 1
Next I
End Sub

Comme tu peux déjà le voir, la variable I est bien en majuscule dans la formule "mid.."

Bonne journée

Rebonjour Cousinhub,

Merci pour ta réponse, elle me servira d'exemple pour mes prochains codes.

Bonne journée.

Sylb

Rechercher des sujets similaires à "extraction chaines"