Extraire texte selon caractère spéciaux

Bonjour,

Je cherche à extraire proprement du texte d'une cellule fusionné qui comporte des caractères spéciaux ([*] et <*>). L'intérêt est que je puisse répartir dans chaque colonne les textes comprit entre ces caractères. J'étais auparavant passé par des formules Excel mais la mise en forme n'était pas correcte donc j'aimerai adapter tous ça en VBA mais j'avoue avoir un peu de mal. Je vous joint un fichier qui résume ce que je cherche à obtenir en Feuil2 via les données brut de la Feuil1.

Merci d'avances pour toute aide que vous pourrez m'apporter!

25classeur1.xlsx (11.61 Ko)

Bonjour,

En supposant les données dans la 1ère colonne (A)

Et qu'il n'y a que trois colonnes à distribuer

Essaie avec ce code :

Sub Macro1()
    With Columns(1)
        .MergeCells = False
        .Replace What:="[", Replacement:="", LookAt:=xlPart
        .Replace What:="<", Replacement:="", LookAt:=xlPart
        .Replace What:=">", Replacement:="]", LookAt:=xlPart
        .Replace What:=Chr(10), Replacement:="", LookAt:=xlPart
        .TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
            TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
            Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
            :="]", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1)), _
            TrailingMinusNumbers:=True
        .Resize(, 3).SpecialCells(xlCellTypeBlanks).Delete
    End With
End Sub

Bon appétit

Top! Je n'imaginais vraiment pas une solution comme ça mais je comprend la logique et ça marche parfaitement.

Merci beaucoup!

Je me permets de demander, comment faire si l'on cherche à ne garder que le texte qui n'est pas entre des caractères spéciaux (dans notre cas : garder uniquement "Informations supp.").

Re-,

pour ta dernière question, une simple formule dans la cellule B1 ferait le boulot :

=STXT(A1;CHERCHE(">";A1)+1;NBCAR(A1)-CHERCHE(">";A1))

Yes c'est exactement ce que j'avais lorsque je passais par les formules Excel ! Mais j'ai besoin d'adapter ça dans une macro et j'ai du mal à adapter cette fonction en VBA...

Re-,

par exemple (pas tout à fait une retranscription de la formule, mais par une autre méthode) :

x = Right(Replace(Range("A1"), Chr(10), ""), Len(Range("A1").Value) - InStrRev(Range("A1"), Chr(10)))

Re,

Déjà merci pour le temps que tu consacres à répondre à mes questions, mais malheureusement la réponse que tu m'a donné ne fonctionne pas...

Je me suis peut être mal exprimé, alors voici un fichier joint regroupant en Feuil1 les données brut dans une colonne et ce que je souhaite obtenir via une macro en Feuil2.

6classeur1.xlsx (12.01 Ko)

Bonjour,

pourtant, dans ton fichier, et avec ce code, on obtient bien le résultat voulu

19essai.xlsm (16.76 Ko)

Okay en effet c'est une erreur de ma part, il à fallu que j'adapte un petit peu le code car j'étais dans une boucle avec certaines conditions!

Merci beaucoup!

Rechercher des sujets similaires à "extraire texte caractere speciaux"