Macro exc el pour convertir données d'un .txt
UsulArrakis
Messages postés
7683
Statut
Contributeur
-
UsulArrakis Messages postés 7683 Statut Contributeur -
UsulArrakis Messages postés 7683 Statut Contributeur -
Bonjour à tous
je dispose d'office 2007
un petit pb pour les macroteurs :
je récupère un fichier .txt qui est une suite de données séparées par des ;
ces données correspondent à une personne tout les 15 ;
mais il n'y a pas de retour à la ligne pour marquer le changement de personne
donc excel importe tout dans les les 20 premières lignes de la colonne A et ensuite pour convertir les données en indiquant le ; comme séparateur ça ne permet pas d'avoir une ligne par personne
si qq'un a une idée ça me dépannerait grandement
merci
je dispose d'office 2007
un petit pb pour les macroteurs :
je récupère un fichier .txt qui est une suite de données séparées par des ;
ces données correspondent à une personne tout les 15 ;
mais il n'y a pas de retour à la ligne pour marquer le changement de personne
donc excel importe tout dans les les 20 premières lignes de la colonne A et ensuite pour convertir les données en indiquant le ; comme séparateur ça ne permet pas d'avoir une ligne par personne
si qq'un a une idée ça me dépannerait grandement
merci
A voir également:
- Macro exc el pour convertir données d'un .txt
- Fuite données maif - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Trier des données excel - Guide
- Boutique el mordjene avis - Accueil - Arnaque
4 réponses
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...
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
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