Séparer une chaîne et la mettre dans des colonnes

Bonjour,

Je voulais savoir s'il était possible de séparer un texte autrement qu'avec des ";", des "," des " ", etc.

En effet, j'ai besoin de séparer mon texte en utilisant les accolades fermantes comme séparateur.

Merci d'avance

Bonjour,

Avec tant de détails sur ton problème on ne peut que te répondre que tu peux séparer tes textes avec ce que tu veux du moment que tu en tiens compte dans tes traitements.

eric

Merci de votre réponse et désolé du peu de détail donné.

Voilà le code que l'on m'a donné tout à l'heure.

Sub Convertir()
    Worksheets("Import").Rows("1:500").RowHeight = 15
    Columns("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
        Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1)), _
        TrailingMinusNumbers:=True
End Sub

En fait, j'ai une fonction qui me permet d'importer un fichier .txt dans une feuille de calcul Excel, mais tout est dérangé. Avec le code ci-dessus, j'ai pu ranger chaque valeur dans une colonne en utilisant ";" comme séparateur.

Mais, le deuxième fichier .txt que j'importe est de la forme suivante :

/* 1 */

{

"colonne1" : xxxxxxx,

"colonne2" : xxxxxxxx,

"colonne3" : xxxxxxxxxx,

"colonne4" : xxxxxxx,

"colonne5" : xxxxxxx,

"colonne6" : xxxxxx

}

Et j'aimerais donc savoir comment faire pour pouvoir séparer ce bout de texte pour que chaque "colonneX" soit dans une colonne différente. (Le /* 1*/ représente chaque ligne, et "colonneX" sont ses colonnes correspondantes.)

J'espère avoir été assez compréhensible.

Cordialement

EDIT : J'ai oublié de préciser que le nombre de colonnes dans chaque /* X */ est variable, il peut y en avoir 5 comme il peut y en avoir 15.

Pourquoi faire une macro ?

Sélectionne ta colonne, 'données / convertir', tu choisis 'Délimité' et et le caractère éparateur que tu veux.

eric

Bonjour,

J'ai essayé et cela ne marche pas, il ne se passe rien.

Bonjour,

Merci de votre réponse,

Cela ne m'aide pas tant que ça, je vais essayer d'être plus clair sur ce que j'ai besoin de faire :

Dans mon classeur Excel, j'importe un fichier texte de la forme suivante :

/* 1 */

{

"colonne1" : xxxxxxx,

"colonne2" : xxxxxxxx,

"colonne3" : xxxxxxxxxx,

"colonne4" : xxxxxxx,

"colonne5" : xxxxxxx,

"colonne6" : xxxxxx

}

/* 2 */

{

"colonne1" : xxxxxxx,

"colonne2" : xxxxxxxx,

"colonne3" : xxxxxxxxxx,

"colonne4" : xxxxxxx,

"colonne5" : xxxxxxx,

"colonne6" : xxxxxx,

"colonne7" : xxxxx,

"colonneX" : xxxxx

}

Le nombre de colonnes est variable selon le numéro /* X */, et donc certaines colonnes seront vides pour certaines lignes.

En espérant avoir été assez compréhensible

Cordialement

Bonjour,

dépose ton fichier avec sur un onglet les données brutes, sur un autre ce que tu veux obtenir.

Mets qq lignes avec tous les différents cas.

eric

En sélectionnant une colonne, Données, convertir, délimité, autres 'avec ta parenthèse'.

Ça fonctionne ?

Bonjour,

Merci de vos réponses,

k0ni : Non, ça ne fonctionne malheureusement pas.

eriiic : Je ne peux pas vous donner les données brutes, je suis en stage et les données sont confidentielles, et étant donné le nombre de données, cela me prendrait des heures pour toutes les modifier.

Cordialement

Re,

La solution qui s'impose ... pratiquement à chaque fois ... anonymiser ...

Concrètement, une fois ton fichier copié ... tu supprimes dans la copie toutes les données que tu veux ... et tu conserves la structure de ton fichier ...

Pour faire le tout en 10 secondes ... utiliser Control+H ...

Voilou ...

Bon Courage pour la suite ...

Rechercher des sujets similaires à "separer chaine mettre colonnes"