Import export txt

Bonjour à tous,

avant de rentrer dans le vif du sujet, j'espère que vous passer d'agréables fêtes de fin d'année ?

Je me permets de vous solliciter à la veille de cette nouvelle année au sujet d'une application sur laquelle je m'arrache les cheveux...

Celle-ci a pour objet de convertir au format .xlsx après retraitement de fichiers .txt ou .csv.

Le hic c'est que tout semble fonctionner... jusqu'à la phase de traitement.

La problématique est simple la délimitation des champs est bien réalisée, cependant, au lieu de revenir à la ligne pour traiter le deuxième enregistrement... et le traitement se poursuit mais... en colonne... pour illustrer mes propos :

traitement réalisé : 1,2,3...

traitement souhaité :

1

2

3...

Ci-dessous l'application... qui n'est pour l'heure pas aboutie... quelqu'un pourrait éclairer ma lanterne ?

Merci à vous

Vous souhaitant un bon réveillon.

'déclaration des variables globales

'mémorisation de la ligne et colonne de départ à partir de laquelle nous allons importer les données

Dim ligne_debut As Integer: Dim colonne_debut As Integer

' détermination de la dernière ligne et colonne à importer

Dim ligne_fin As Integer: Dim colonne_fin As Integer

' détermination de la ligne et colonne encours pour suivre la progression de l'insertion des données

Dim ligne_encours As Integer: Dim colonne_encours As Integer

Private Sub import_Click()

'proposer à l'utilisateur de sélectionner le ou les fichiers .txt ou .csv

Dim fichier_select As String

fichier_select = Application.GetOpenFilename("text files (*.txt;*.csv), *.txt; *.csv", , "Sélectionner un fichier .txt ou .csv")

's'assurer que l'utilisateur a bien sélectionner un fichier via la boîte de dialogue

If (LCase(fichier_select) <> "faux" And fichier_select <> "0") Then

liste_fichiers.AddItem (fichier_select)

End If

End Sub

Private Sub export_Click()

'déclarer la variable du nom du fichier sous lequel l'utilisateur souhaite exporter les données

Dim nom_fichier As String

'initialiser les variables globales

ligne_debut = 1: colonne_debut = 1

'initialisation des indices de lignes et colonnes afin de suivre la progression

ligne_encours = ligne_debut: colonne_encours = colonne_debut

'purger la feuille de travail encours

Cells.Clear

's'il y a 2 fichiers répertoriés dans la liste la procédure débutera sur les index 0 et 1... s'il y a 3 fichiers sur les index 0,1,2... et ainsi de suite

For i = 0 To liste_fichiers.ListCount - 1

lecture (liste_fichiers.List(i))

Next i

'appeler la procédure traitement des données

traitement

'proposer sous quel nom le fichier doit être enregistré

nom_fichier = Application.GetSaveAsFilename(fileFilter:="Excel files (*.xlsx), *.xslx")

‘lancer la procédure sortie

sortie.Value = nom_fichier

'lancer la procédure export

ecriture (nom_fichier)

End Sub

Private Sub fermer_Click()

End Sub

'procédure qui permet de passer en lecture les fichiers inscrits dans la zone de liste fichiers du formulaire

'déclaration d'une variable fichier correspondant au fichier

Private Sub lecture(fichier As String)

'déclaration de la variable départ pour connaître la position à laquelle nous nous situons dans le texte à délimiter, la variable position qui permet de délimiter les fichiers .txt ou .csv et la variable texte pour mémoriser les informations textuelles

Dim depart As Integer, position As Integer

Dim texte As String, tampon As String

'accéder au fichier en mode lecture et affecter une adresse mémoire avec un n° exemple: #1

Open fichier For Input As #1

'tant que la fin du fichier n'est pas atteinte EOF

Do While Not EOF(1)

'récupérer les données lignes à lignes et les mémoriser

Line Input #1, texte

'initialiser les variables départ et position

depart = 1: position = 1

'parcourir toute la ligne de texte de manière à trouver les séparateurs

Do While (position <> 0)

'stocker la position du séparateur

position = InStr(depart, texte, ";", 1)

'vérification qu'il n'y a plus de séparateur

If position = 0 Then

tampon = Mid(texte, depart)

'inscription de la donnée extraite dans la feuille "import"

Sheets("Import").Cells(ligne_encours, colonne_encours).Value = tampon

Exit Do

'sortir de la procédure de traitement de caractère si aucun séparateur n'est trouvé

Else

'sinon la procédure continue et réalise le traitement

tampon = Mid(texte, depart, position - depart)

End If

Sheets("Import").Cells(ligne_encours, colonne_encours).Value = tampon

depart = position + 1

colonne_encours = colonne_enours + 1

Loop

colonne_enours = colonne_debut

ligne_encours = ligne_encours + 1

Loop

Close #1

End Sub

'procédure qui permet de retranscrire les traitements réalisés dans un fichier

'déclaration d'une variable fichier correspondant au fichier

Private Sub ecriture(fichier As String)

End Sub

'procédure qui permet le traitement des données

'déclaration d'une variable fichier correspondant au fichier

Private Sub traitement()

End Sub

Private Sub liste_fichiers_Click()

End Sub

Bonjour et bienvenue,

Quelle est la version Excel utilisée ?

Sinon, essaie de joindre des éléments pour une aide adaptée.

Cdlt.

Re,

Multipost !...

Rechercher des sujets similaires à "import export txt"