XL 2010 problème TextToColomns avec espaces

corloste

XLDnaute Nouveau
Bonjour,

J'utilise un TextToColumns pour redistribuer les items de mon dictionnaire dans plusieurs cellules sur les colonnes qui suivent.
Code:
[H7].Resize(dico2.Count, 1) = Application.Transpose(dico2.items)
    Application.DisplayAlerts = False
    [H7].Resize(dico2.Count).TextToColumns Other:=True, OtherChar:="|"

Je veux que cela soit un caractère spécial qui délimite le texte à fractionner et non un espace.
Lorsque la première chaine de caractère contient un espace (par exemple deux mots)puis le séparateur et un autre mot etc..., la méthode retiens l'espace comme séparateur et non le caractère.
J'ai essayé en spécifiant le "space" à false, mais rien n'y fait.
Et le plus bizarre c'est que j'ai le même type de code dans la même sub pour une autre instruction (qui n'interfère pas avec la précédente) et elle n'a pas ce problème.
Connaitriez-vous une solution ?

PS : désolé pour la faute dans le titre, je n'arrive pas à la corriger, c'est bien TextToColumns.
 
Dernière édition:

corloste

XLDnaute Nouveau
Je me suis découragé trop vite, même si cela fait 3 heures que je suis dessus...

La solution est de rajouter le DataType à 1

Code:
[H7].Resize(dico2.Count).TextToColumns DataType:=1, Other:=True, OtherChar:="|"

Mr Microsoft nous précise que cela indique que le fichier est délimité par des caractères séparateurs.
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

@corloste
Si tu avais d'emblée utiliser l'enregisteur de macros, tu aurais économisé 175 minutes de ton temps ;)
Ci-dessous première macro tout droit issue de l'enregistreur
VB:
Sub Macro1()
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :="|", FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
End Sub
'premier coup de ciseau
Sub Macro1Remanié_I()
Selection.TextToColumns Cells(1, 1), xlDelimited, Other:=True, OtherChar:="|"
End Sub
' on élague encore un peu ;-)
Sub Macro1Remanié_II()
Selection.TextToColumns Cells(1, 1), 1, Other:=-1, OtherChar:="|"
End Sub
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

@corloste
J'ai du mal à comprendre?
Si dans ton code VBA, tu utilises déjà TextToColumns c'est qu'en toute logique tu connais Données/Convertir, non ?
Et si tu pratiques déjà le VBA, c'est que tu connais également l'enregistreur de macros.
Dans ce cas, je ne comprends pas cette phrase ;)
Je l'ai trouvée dans l'onglet "Données " la commande "convertir".
 

corloste

XLDnaute Nouveau
Bonsoir,

Non en fait TextToColumns je l'ai connu sur le site de BOISGONTIER en épluchant les exemples qu'il donne dans la partie Dictionary. En fait je cherchais une solution pour afficher des Offset en plus des Items directement sur le classeur (j'avais surtout l'habitude de la faire dans des ListBox). Et une solution est de tout regrouper (Items et Offsets) dans les Items avec un caractère spécial pour les séparer. Puis d'afficher les Items dans les cellules et ensuite d'utiliser un TextToColumns pour les dispatcher dans les cellules voisines.
Ne connaissant pas spécialement la commande Données/Convertir, il ne m'est pas venu à l'idée d'utiliser l'enregistreur de macro.
Mais ce n'est pas grave, on progresse tous les jours, et grâce à toi je connais quelque chose en plus.
 

Discussions similaires

Réponses
2
Affichages
446

Statistiques des forums

Discussions
312 182
Messages
2 086 003
Membres
103 084
dernier inscrit
Hervé30120