Pb ouverture fichier .txt sous Excel

  • Auteur de la discussion Janniv
  • Date de début

Janniv

Nouveau membre
Bonjour,

Je commence juste à m'intéresser aux macros d'excel et je tombe sur un pb. Je souhaite faire une macro qui m'ouvre un fichier .txt dans excel avec des séparateurs tels que ";", "tab"... mais aussi ce symbole "┘". Le problème est que VBA ne prend pas ce symbole et ne veut pas me séparer le texte quand je relance la macro!!!

Avez-vous une solution??
Merci beaucoup d'avance.

Voici le code de ma programmation :
Workbooks.OpenText Filename:= _
"blablabla.txt", _
Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=True, _
Comma:=False, Space:=True, Other:=True, OtherChar:="+", 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

On voit bien que le OtherChar ne prend pas le symbole "┘" mais le symbole "+"...

Je ne sais pas quoi faire... :whistle:
 

Freeman23

Expert
Attention aux règles de publication rajoute les balises code.
Alors je sais pas d'où sort ce symbole :D

Peux tu remplacer le "+" par ton symbole? je suppose que non.

La solution que je vois et se trouver le code ASCII de ton symbole (enfin son interprétation sous VBA) pour cela :

-Ouvre ton fichier et copie le symbole.
-dans VBA dans la fenetre d'exécution (Ctrl+G) tu tapes (sans les <> c pour signaler une valeur à renseigner)
- ?Asc("<symbole>")
- Ca devrait te renvoyer le code du symbole
- Après tu teste l'inverse avec le chiffre obtenu
- ?Chr(<code>)
- Si ca te renvoie pas le même symbole c'est pas sur que ca marche, mais ca vaut le coup de tester.

Donc tu remplaceras à la fin :

Code:
Workbooks.OpenText Filename:= _ 
        "blablabla.txt", _ 
        Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _ 
        xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=True, _ 
        Comma:=False, Space:=True, Other:=True, OtherChar:=chr(<code>), 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
 

kiki29

Habitué
Peut-être qqch du genre , à adapter
[fixed]

Option Explicit

Sub Tst()
Dim Fichier As Variant
ChDir ThisWorkbook.Path
Fichier = Application.GetOpenFilename("Text Files (*.txt), *.txt" )
If Fichier <> False Then
Lire Fichier
End If
End Sub

Sub Lire(ByVal NomFichier As String)
Dim Chaine As String
Dim Ar() As String
Dim i As Long
Dim iRow As Long, iCol As Long
Dim NumFichier As Integer
Dim Separateur As String * 1

' Séparateur Point Virgule
Separateur = ";"

Cells.Clear
Application.ScreenUpdating = False
NumFichier = FreeFile
iRow = 1

Open NomFichier For Input As #NumFichier
Do While Not EOF(NumFichier)
iCol = 1
Line Input #NumFichier, Chaine
Ar = Split(Chaine, Separateur)
For i = LBound(Ar) To UBound(Ar)
Cells(iRow, iCol) = Ar(i)
iCol = iCol + 1
Next
iRow = iRow + 1
Loop
Close #NumFichier

Application.ScreenUpdating = True
End Sub

[/fixed]
 

Janniv

Nouveau membre
Merci Freeman23 pour la rapidité de ta réponse. Apparemment, il ne connait pas ce symbole. J'ai cherché parmi les 256 symboles mais aucun ne correspond à celui-ci. Je vais essayer de trouver autre chose.
*Merci :hello:
 

zeb

Modérateur
Avec quoi ouvres-tu ton fichier txt pour "voir" le symbole "┘" ?
Une application DOS ?

Ca ressemble à un problème de conversion ANSI/ASCII.
 

Janniv

Nouveau membre
j'ouvre mon fichier avec une application DOS en effet!!!
est-ce là le problème??
 

Janniv

Nouveau membre
Merci zeb
qd je converti avec ANSI, j'obtiens un caractère que Excel connait et je peux donc exécuter ma macro.

Merci à vous tous.
Vous êtes très utiles, rapides et efficaces. ça fait plaisir.
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 098
Messages
6 717 083
Membres
1 586 286
Dernier membre
petitangebleu1977
Partager cette page
Haut