Macro exc el pour convertir données d'un .txt
Fermé
UsulArrakis
Messages postés
7399
Date d'inscription
vendredi 28 mars 2003
Statut
Contributeur
Dernière intervention
27 janvier 2022
-
19 janv. 2010 à 08:44
UsulArrakis Messages postés 7399 Date d'inscription vendredi 28 mars 2003 Statut Contributeur Dernière intervention 27 janvier 2022 - 20 janv. 2010 à 11:19
UsulArrakis Messages postés 7399 Date d'inscription vendredi 28 mars 2003 Statut Contributeur Dernière intervention 27 janvier 2022 - 20 janv. 2010 à 11:19
A voir également:
- Macro exc el pour convertir données d'un .txt
- Convertir youtube en mp3 tuto - Guide
- Macro logiciel - Télécharger - Organisation
- Convertir une note sur 20 ✓ - Forum Bureautique
- Convertir chiffre en lettre excel sans macro ✓ - Forum Excel
- Macro recorder - Télécharger - Confidentialité
4 réponses
gbinforme
Messages postés
14939
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 657
19 janv. 2010 à 22:49
19 janv. 2010 à 22:49
bonjour UsulArrakis,
Comme personne ne se bouscule pour te dépanner, une petite macro qui ouvre le fichier texte choisi et le ventile sur 15 colonnes à partir de la ligne 3 (à modifier) de la feuille active.
En espérant avoir compris le problème...
Comme personne ne se bouscule pour te dépanner, une petite macro qui ouvre le fichier texte choisi et le ventile sur 15 colonnes à partir de la ligne 3 (à modifier) de la feuille active.
Public Sub txt_15col()
Dim lig As Long ' ligne
Dim col As Integer ' colonne
Dim art As String ' article lu
Dim cel As String ' valeur cellule
Dim fic As String ' chemin fichier
Dim idx As Integer ' index caractère
fic = Application.GetOpenFilename("Textes,*.txt")
Open fic For Input As #1 ' ouvre fichier texte
lig = 3 ' ligne début
Do
Input #1, art ' lecture
idx = 0 ' initiatisation index
While idx < Len(art) ' boucle mongueur article
For col = 1 To 15 ' 15 colonnes
cel = "" ' initiatisation cellule
Do
idx = idx + 1
If Mid(art, idx, 1) = ";" Then Exit Do
cel = cel & Mid(art, idx, 1)
Loop While idx < Len(art)
Cells(lig, col).Value = cel ' valorisation cellule
Next col
lig = lig + 1 ' changement de ligne
Wend
Loop While Not EOF(1)
Close #1
End Sub
En espérant avoir compris le problème...
UsulArrakis
Messages postés
7399
Date d'inscription
vendredi 28 mars 2003
Statut
Contributeur
Dernière intervention
27 janvier 2022
3 181
20 janv. 2010 à 11:11
20 janv. 2010 à 11:11
hello gb
merci pour cette macro
je viens de la tester. tu avais bien compris mon pb.
mais car il y a un mais ;-) elle s'arrête à la 217ème ligne avec un message d'erreur : "dépassement de capacité" et en débogage la ligne idx = idx + 1 est en surbrillance
est-ce qu'il n'y aurait pas une limite à #32 000 caractères ?
pour être complet c'est 37 et non pas 15, mais là j'ai modifié la macro et c'est tout bon
par contre je dois obtenir environ 4500 lignes à partir du txt soit # 700 000 caractères
si tu as une idée
encore merci
merci pour cette macro
je viens de la tester. tu avais bien compris mon pb.
mais car il y a un mais ;-) elle s'arrête à la 217ème ligne avec un message d'erreur : "dépassement de capacité" et en débogage la ligne idx = idx + 1 est en surbrillance
est-ce qu'il n'y aurait pas une limite à #32 000 caractères ?
pour être complet c'est 37 et non pas 15, mais là j'ai modifié la macro et c'est tout bon
par contre je dois obtenir environ 4500 lignes à partir du txt soit # 700 000 caractères
si tu as une idée
encore merci
eriiic
Messages postés
24513
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 mars 2023
7 168
20 janv. 2010 à 11:14
20 janv. 2010 à 11:14
Bonjour tout le monde,
met Dim idx As long au lieu de Dim idx As Integer
met Dim idx As long au lieu de Dim idx As Integer
UsulArrakis
Messages postés
7399
Date d'inscription
vendredi 28 mars 2003
Statut
Contributeur
Dernière intervention
27 janvier 2022
3 181
20 janv. 2010 à 11:19
20 janv. 2010 à 11:19
YESSSSSSSSSSSSSSSSS !
nickel eriiic
un grand merci à vous 2
donc voici la macro qui fonctionne parfaitement dans mon cas :
nickel eriiic
un grand merci à vous 2
donc voici la macro qui fonctionne parfaitement dans mon cas :
Public Sub txt_37col()
Dim lig As Long ' ligne
Dim col As Integer ' colonne
Dim art As String ' article lu
Dim cel As String ' valeur cellule
Dim fic As String ' chemin fichier
Dim idx As Long ' index caractère
fic = Application.GetOpenFilename("Textes,*.txt")
Open fic For Input As #1 ' ouvre fichier texte
lig = 3 ' ligne début
Do
Input #1, art ' lecture
idx = 0 ' initiatisation index
While idx < Len(art) ' boucle mongueur article
For col = 1 To 37 ' 37 colonnes
cel = "" ' initiatisation cellule
Do
idx = idx + 1
If Mid(art, idx, 1) = ";" Then Exit Do
cel = cel & Mid(art, idx, 1)
Loop While idx < Len(art)
Cells(lig, col).Value = cel ' valorisation cellule
Next col
lig = lig + 1 ' changement de ligne
Wend
Loop While Not EOF(1)
Close #1
End Sub