fichier txt avec , (decimale) et ; (séparateur)

  • Initiateur de la discussion Initiateur de la discussion dg62
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

dg62

XLDnaute Barbatruc
Bonsoir le forum


Comment traiter un fichier txt de ce type : , pour les décimales et ; comme séparateur.


23,1234 ; 12,345
.
.
.
12,234 ; 123

quand je lis les données par input au lieu d'avoir 2 variables, je me retrouve avec 23 1234 12 345.

est-il possible d'éviter cela ?


La procédure est presente dans le post 'probleme vba' auteur Gaby.


Merci
 
Bonsoir didier

As tu essayé de passer par un split ?

En reprenant la macro trouvé dans le post de gaby, et sans test :

faut peut etre passé par line input pour récupérer une ligne complète et la mouliné pas un split

Dim v2 As Variant
       
        interRow = interRow + 1
        Line
Input #1, v1
        v2 = Split(v1, ';')
            Range('A' & interRow).Value = v2(0)
            Range('B' & interRow).Value = v2(1)

Ca fait un peu soluce à deux balles, mais en attendant mieux.

salut
 
re didier

Comme je te le disais sur le tchat, c'est surement par ce que tu n'a pas de données en deuxième colonne de ton fichier texte.

Par contre je t'ai donné une soluce, qui ne fonctionne pas 😱

Je te propose donc une autre méthode :


Dim v2 As Variant
Dim i As Byte

interRow = interRow + 1
Line
Input #1, v1
v2 = Split(v1, ';')
For i = 0 To UBound(v2)
    Cells(interRow, i + 1).Value = v2(i)
Next i
lig = lig + 1


En espérant t'avoir aidé.

Salut
 
re


Code:
Line Input #1, var1
        var2 = Split(var1, ';')
        Debug.Print var1
        Debug.Print UBound(var2)
            Range('A' & interRow).Value = var2(0)
         Range('B' & interRow).Value = var2(1)


var1 renvoie 50 1,0233 c'est ok

et Ubound(var2) 0 That is the problem !

Bonne soirée
 
Salut Hervé


j'ai trouvé l'erreur, elle venait du fichier lui même.


pour mes essais j'avais généré un fichier 'txt dos' donc avec tabulation.

en le remplaçant par un csv ça marche impec



Code:
Do While Not EOF(1)
        
        interRow = interRow + 1
       
        
        Line Input #1, var1
        var2 = Split(var1, ';')
        
        
            Range('A' & interRow).Value = CDbl(var2(0))
            Range('B' & interRow).Value = CDbl(var2(1))


Encore Merci
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

C
Réponses
0
Affichages
1 K
Cerealkiller57
C
L
Réponses
1
Affichages
2 K
laskar
L
Retour