Tri d'un fichier avec une macro excel
Résolu
Lionel_86
Messages postés
43
Statut
Membre
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Avec une macro Excel il est possible de créer un fichier.
Mais est il possible de trier ce fichier ?
D'avance Merci
Lionel
Avec une macro Excel il est possible de créer un fichier.
Mais est il possible de trier ce fichier ?
D'avance Merci
Lionel
A voir également:
- Tri d'un fichier avec une macro excel
- Fichier bin - Guide
- Comment faire un tri personnalisé sur excel - Guide
- Comment réduire la taille d'un fichier - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Fichier epub - Guide
4 réponses
Bonjour,
Oui, sans aucun doute tout est relativement possible avec VBA d'excel.
Quel type de fichier désirez vous trier ?
Lupin
Oui, sans aucun doute tout est relativement possible avec VBA d'excel.
Quel type de fichier désirez vous trier ?
Lupin
Bonjour,
Alors voici un exemple simple que vous devrez adapter à vos besoin.
Alors voici un exemple simple que vous devrez adapter à vos besoin.
Option Explicit
'
Dim Limite As Double
'
Sub EcrireFichierTexte()
Dim NumFic As Integer
Dim Valeur As String
Dim Boucle As Integer
Valeur = "C:\Essai.txt"
NumFic = FreeFile
Open Valeur For Output As #NumFic
For Boucle = 9 To 1 Step -1
Write #NumFic, Boucle
Next Boucle
Close #NumFic
End Sub
'
Sub LireFichierTexte()
Dim NumFic As Integer, Message As String
Dim Valeur As String, Resultat As Integer
Dim Compteur As Double
Dim Boite() As Integer
Valeur = "C:\Essai.txt"
NumFic = FreeFile
Limite = 0
' Premier passage, connaître le nombre d'élément à lire
Open Valeur For Input As #NumFic
While Not EOF(NumFic)
Input #NumFic, Resultat
Limite = (Limite + 1)
Wend
Close #NumFic
'Second passage, effectuer la lecture
ReDim Boite(Limite) As Integer
Compteur = 0
Open Valeur For Input As #NumFic
While Not EOF(NumFic)
Input #NumFic, Resultat
Boite(Compteur) = Resultat
Compteur = (Compteur + 1)
Wend
Close #NumFic
Trier Boite, Message
MsgBox Message
End Sub
'
Function Trier(ByRef Boite() As Integer, ByRef Message As String)
Dim Boucle As Integer, ValeurTmp As Integer, Compteur As Integer
For Boucle = 0 To (Limite - 1)
For Compteur = 0 To (Limite - 1)
If (Boite(Compteur) > Boite(Compteur + 1)) Then
ValeurTmp = Boite(Compteur + 1)
Boite(Compteur + 1) = Boite(Compteur)
Boite(Compteur) = ValeurTmp
End If
Next Compteur
Next Boucle
For Boucle = 0 To Limite
Message = Message & Boite(Boucle) & vbCrLf
Next Boucle
End Function
'
Merci pour l'exemple.
Je viens de tester cet exemple.
Le tri n'est pas physique dans le fichier.
Y a t'il une possibilité que le fichier soit physiquement trié ?
Car pour mon cas, je fais une création par un userform excel (listbox) et je souhaiterais que le fichier soit trié dans un ordre donné.
Exemple dans ma listbox j'ai :
Poitiers 01 à 10 - 10
Limoges 11 à 15 - 05
Montmorillon 16 à 20 - 05
Paris 21 à 21 - 01
Marseille 22 à 24 - 03
Rennes 25 à 30 - 06
Je créé ces enregistrements dans un fichier format TXT, et je souhaiterais qu'il trie dans ce fichier en décroissant sur le dernier nombre (celui après le -).
La seule solution que j'ai trouvé c'est de saisir les informations dans l'ordre dont je les voulais dans mon fichier.
Si vous avez une autre solution, je serais ravis de la connaitre.
Dans tous les cas merci encore pour l'exemple, il va me donner des possibiltés pour d'autres applications.
Lionel
Je viens de tester cet exemple.
Le tri n'est pas physique dans le fichier.
Y a t'il une possibilité que le fichier soit physiquement trié ?
Car pour mon cas, je fais une création par un userform excel (listbox) et je souhaiterais que le fichier soit trié dans un ordre donné.
Exemple dans ma listbox j'ai :
Poitiers 01 à 10 - 10
Limoges 11 à 15 - 05
Montmorillon 16 à 20 - 05
Paris 21 à 21 - 01
Marseille 22 à 24 - 03
Rennes 25 à 30 - 06
Je créé ces enregistrements dans un fichier format TXT, et je souhaiterais qu'il trie dans ce fichier en décroissant sur le dernier nombre (celui après le -).
La seule solution que j'ai trouvé c'est de saisir les informations dans l'ordre dont je les voulais dans mon fichier.
Si vous avez une autre solution, je serais ravis de la connaitre.
Dans tous les cas merci encore pour l'exemple, il va me donner des possibiltés pour d'autres applications.
Lionel
Un fichier de type TXT.
Lionel