Pb de separateur ds fichier txt

  • Initiateur de la discussion Initiateur de la discussion Coucou
  • 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 !

C

Coucou

Guest
Bonjour le forum,

Je dois trouver un code qui va extraire les données de plusieurs fichiers.

J'ai fait un essai sur un seul fichier au départ mais celui-ci ne marche que si le séparateur dans le fichier source est la virgule ','
Pourrais-je le remplacer par autre chose (';' ou tabulation)

Cf fichiers joints.

Merci et bonne journée [file name=Synthese_20060522104354.zip size=15272]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Synthese_20060522104354.zip[/file]
 

Pièces jointes

le code pour récuperer un fichier texte est le suivant

Workbooks.OpenText Filename:='C:\\fichiersource.txt', _
Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, _
Comma:=False, Space:=False, Otherchar:=';', TrailingMinusNumbers:=True


ou en face l'argument otherchar tu mets le caractère que tu veux
A+
Denis
 
Bonjour,

Merci pour ta réponse, mais ça bloque dans mon code.
Je ne suis pas assez calé pour l'intégrer ou il faut.

En fait, ce qui est fait actuellement est de lire le fichier sans l'ouvrir a l'ecran.

A+
 
bonjour coucou, droussel, le forum

peut etre pourrais tu t'inspirer de ce code pour le ; :


Sub Import_Donnees()

'Importer les données d'un fichier dans le classeur Synthese

'****** ATTENTION: NE MARCHE QUE SI SEPARATEUR ',' ******

Dim CeFichier As String ' Nom du fichier source
Dim Nlig As Integer 'N° ligne fichier Synthese
Dim ChampFichier As String 'Champ du fichier source
Dim NoC As Integer 'N° colonne ficier source
Dim ligne As Integer
Dim tablo
Dim calcul As String
Dim i As Byte

ligne = Range('b65536').End(xlUp).Row + 1
'Annuler le calcul automatique:
calcul = Application.Calculation
' Choix du fichier à importer
        ChDir 'C:'
        CeFichier = Application.GetOpenFilename('Tous fichiers (*.*),*.txt')

'SI BESOIN DE VERIFIER SI LE FICHIER DE DONNEES A DES CHAMPS VIDES:
'If Not FichierComplet(CeFichier) Then Exit Sub

Open CeFichier For Input As #1

'Recupérer les données du fichier txt (SI séparateur ','):
Do While Not EOF(1) 'Effectuer jusqu'a la fin du fichier:
        Line
Input #1, ChampFichier
       
Debug.Print ChampFichier
        tablo = Split(ChampFichier, ';')
       
For i = 0 To 9
                Cells(ligne, i + 2) = tablo(i)
       
Next i
        Cells(ligne, 12) = Cells(ligne, 10) * Cells(ligne, 11)
        ligne = ligne + 1
        Loop
Close #1
'reactiver calcul automatique:
            Application.Calculation = calcul

End Sub


salut
 
Bonjour Hervé,

Merci pour ton code ça marche impeccable.

Dernière exigence tout de meme, si mon fichier source a une ligne de titre dont je n'ai pas besoin comment peut-on commencer par la deuxieme ligne du fichier.

Bonne journée.
 
re

il te suffit de placer une condition, comme ceci :


Open CeFichier For Input As #1

'Recupérer les données du fichier txt (SI séparateur ','):
Do While Not EOF(1) 'Effectuer jusqu'a la fin du fichier:
        Line
Input #1, ChampFichier
       
If premier = 1 Then
               
               
Debug.Print ChampFichier
                tablo = Split(ChampFichier, ';')
               
For i = 0 To 9
                        Cells(ligne, i + 2) = tablo(i)
               
Next i
                Cells(ligne, 12) = Cells(ligne, 10) * Cells(ligne, 11)
                ligne = ligne + 1
       
Else
                premier = 1
       
End If
Loop

Close #1


reste du code inchangé.

salut
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
613
Retour