Import fichier txt + transposition datas

Bonjour a tous,

Aujourd'hui pour importer plusieurs fichier txt dans une meme feuille excel j'utilise le code ci-dessous :

Sub ImportFichiers()
  On Error GoTo TestErreur
  Dim sh As Worksheet
  Dim import As Variant
  Dim dossierRacine As String
  Dim n As Integer
  Dim fichier$
  Dim DossierParent$

  dossierRacine = ThisWorkbook.Path
  Set sh = Sheets("Import fichiers")
  sh.Cells.Clear

  With Application.FileDialog(msoFileDialogOpen)
    .InitialFileName = dossierRacine: .AllowMultiSelect = True: .Show
    For n = 1 To .SelectedItems.Count
      fichier = .SelectedItems(n)
      DossierParent = TrouveDossierParent(fichier)
      sh.Cells(1, 1) = DossierParent
      sh.Cells(2, n) = Right(fichier, Len(fichier) - InStrRev(fichier, "\"))
      import = LireFichierTexte(fichier) 'appelle la fonction "LireFichierTexte"
      import = Split(import, Chr(10))
      sh.Cells(3, n).Resize(UBound(import) + 1) = Application.Transpose(import)
    Next n
  End With

  Exit Sub
TestErreur:
    MsgBox "Le fichier n'a pas pu être lu..."

End Sub

et :

Public Function LireFichierTexte(ByVal MonFichier As String) As String
    On Error GoTo LireFichierTexteErreur
    Dim IndexFichier As Integer
    IndexFichier = FreeFile()
    Open MonFichier For Binary Access Read As #IndexFichier
    LireFichierTexte = Space$(LOF(IndexFichier))
    Get #IndexFichier, , LireFichierTexte
    Close #IndexFichier

    Exit Function
LireFichierTexteErreur:
    Close #IndexFichier
    LireFichierTexte = ""
End Function

le resultat obtenu est celui-ci :

image

en revanche je souhaiterais commencer a ecrire mes datas en B2-2 plutot qu'en A1-1 comme ci -dessous et transposer directement ces datas :

image

Comment dois-je corriger le code en question pour obtenir ce que je souhaite svp ?

Merci d'avance et bonne journee

Bonjour

En l'absence de fichier....

sh.Cells(2, 2) = DossierParent
      sh.Cells(2, n+1) = Right(fichier, Len(fichier) - InStrRev(fichier, "\"))
import = LireFichierTexte(fichier) 'appelle la fonction "LireFichierTexte"
      import = Split(import, Chr(10))
      sh.Cells(3, n+1).Resize(UBound(import) + 1) =....

A+ François

Hello,

Merci du retour.

J'ai integre ton code juste en modifiant la place du chemin du fichier. En revanche on ne transpose pas les données comme dans mon exemple .

Ci joint mon fichier

3fichier.xlsm (22.23 Ko)

Bonjour

Il aurai ete souhaitable d'avoir un fichier texte. Car avec un fichier vide je ne peux rien faire

A+ François

Ci dessous 2 fichiers txt pour exemple :

5document1.txt (29.00 Octets)
3document2.txt (38.00 Octets)

J'espère que ça te va

3fichier.xlsm (23.45 Ko)

A+ François

Euh non , on ne transpose pas les donnees avec ta macro si je ne me trompe.

Ce que j'entends pas transposer c'est de passer de ca :

image

a ca :

image

Bonjour,

Remplace

sh.Cells(3, n).Resize(UBound(import) + 1) = Application.Transpose(import)

par ca

For i = 0 To UBound(import)
      sh.Cells(n + 2, i + 1).Value = import(i)
      Next i

Cdlt

@ +

Et ce coup ci

4fichier.xlsm (23.60 Ko)

A+ François

Top cela correspond a ce que j'attendais.

En revanche j'ai une autre question, est-il possible de possible de predispositionner dans la feuille ou j'importe mes donnes des formules ?

L'idee serai pour moi de realiser une sorte de cartouche en dehors des zones utilisees par les datas pour me facilier la vie

Par exemple en A:1 si je souhaite recuperer une information d'un des fichiers que j'importe cela est-il possible ? a l'heure actuelle l'importation ecrase tout le contenu precedemment existant

Je te conseille d'être beaucoup plus précis et d'ouvrir un nouveau post car moi je m'absente une quinzaine de jours....

A+ François

Non je pense que ma question fait encore partie de ce meme sujet mais avec une mise en forme differente.

Voila ce que je souhaite, en partant du principe que la zone encadree en verte fait partie des datas importees depuis mes fichiers TXT et la zone en rouge des informations que j'aurai au prealable enregistrees :

image

le probleme c'est qu'avec la macro cree a chaque importation la feuille est completement effacee ( et je perds mes infos en rouge )

Dans mon cas jaimerai que l'on ecrase les anciennes donnees uniquement la ou j'importe mes nouvelles datas

Il suffit de demander

3fichier.xlsm (23.68 Ko)

A+ François

fichier changé à 17h35...

Tip top, en revanche pour le type de donnee importee n'est pas correcte ?

image

on peut convertir tout le fichier importer via la macro egalement ?

Bonjour

Ci joint les données sont converti en valeur double (cdbl)https://learn.microsoft.com/fr-fr/office/vba/Language/Concepts/Getting-Started/type-conversion-funct...

2fichier.xlsm (24.15 Ko)

A+ François

Ca fonctionne bien avec des nombres en revanche si dans mes fichiers j'ai un texte2 alors cela ne fonctionne plus.

Existe t'il une solution pour ne pas avoir une erreur au premier caractere rencontré ?

Rechercher des sujets similaires à "import fichier txt transposition datas"