7
8/19/2019 Vba Excel Lecture Modification Et Enregistrement d Un Fichier Txt 11080 n9vxjs (1) http://slidepdf.com/reader/full/vba-excel-lecture-modification-et-enregistrement-d-un-fichier-txt-11080-n9vxjs 1/7 High-Tech Santé-Médecine Droit-Finances CodeS-SourceS AppsTV Inscription Plan Connexion Identifiant Mot de passe (oublié ?) Connexion Rechercher  OK Accueil Forum Tutoriels Codes Sources Snippets Top membres Tous les langages Delphi / Pascal Java Python SQL RegEx Flash ASM IRC Graphisme PDA ColdFusion Foxpro Flex Visual Basic / VB.NET Forum Tutoriels Codes Sources Snippets Top membres

Vba Excel Lecture Modification Et Enregistrement d Un Fichier Txt 11080 n9vxjs (1)

  • Upload
    kikirn

  • View
    212

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Vba Excel Lecture Modification Et Enregistrement d Un Fichier Txt 11080 n9vxjs (1)

8/19/2019 Vba Excel Lecture Modification Et Enregistrement d Un Fichier Txt 11080 n9vxjs (1)

http://slidepdf.com/reader/full/vba-excel-lecture-modification-et-enregistrement-d-un-fichier-txt-11080-n9vxjs 1/7

High-TechSanté-MédecineDroit-FinancesCodeS-SourceSAppsTVInscriptionPlan

ConnexionIdentifiant

Mot de passe (oublié ?)

Connexion

Rechercher  OK

AccueilForumTutorielsCodes SourcesSnippetsTop membresTous les langagesDelphi / PascalJavaPythonSQLRegExFlash

ASMIRCGraphismePDAColdFusionFoxproFlexVisual Basic / VB.NETForum

TutorielsCodes SourcesSnippetsTop membres

Page 2: Vba Excel Lecture Modification Et Enregistrement d Un Fichier Txt 11080 n9vxjs (1)

8/19/2019 Vba Excel Lecture Modification Et Enregistrement d Un Fichier Txt 11080 n9vxjs (1)

http://slidepdf.com/reader/full/vba-excel-lecture-modification-et-enregistrement-d-un-fichier-txt-11080-n9vxjs 2/7

PHPForumTutorielsCodes SourcesSnippetsTop membresC/C++/C++.NET

ForumTutorielsCodes SourcesSnippetsTop membresJavascriptForumTutorielsCodes SourcesSnippetsTop membresC#/.NETForumTutorielsCodes SourcesSnippetsTop membres

ASP/ASP.NETForumTutorielsCodes SourcesSnippetsTop membresServicesAgendaAnnuaire des sites

BlogsDictionnaire de la progGroupesOutilsRFCAccueilConnexion

Identifiant

Mot de passe (oublié ?)

Connexion

Déposer un code CodeRecherche

Page 3: Vba Excel Lecture Modification Et Enregistrement d Un Fichier Txt 11080 n9vxjs (1)

8/19/2019 Vba Excel Lecture Modification Et Enregistrement d Un Fichier Txt 11080 n9vxjs (1)

http://slidepdf.com/reader/full/vba-excel-lecture-modification-et-enregistrement-d-un-fichier-txt-11080-n9vxjs 3/7

Donnez

votre avis

Août 2014

Haut

VBA Excel : Lecture, Modification et Enregistrement d'un fichier

txt

IntroductionLire dans un fichier texteModifier un fichier texteEcrire dans un fichier texteTéléchargement

Ce tutoriel est une partie de : celui-ci.Introduction

Le but ici est de créer un dictionnaire, au format texte (extension .txt), composé d'un mot parligne, à partir du dictionnaire disponible à l 'installation du navigateur firefox. Il va donc nousfalloir les outils nécessaires à la lecture, la modification et l'écriture dans un fichier texte à partirde VBA dans Excel.Lire dans un fichier texteIl existe plusieurs méthodes permettant la lecture d'un fichier texte. Celle retenue ici (accèsséquentiel) est la suivante :

Sub LireDicoFirefox()Dim Tb() As String, Chemin As String, num As Long, i As LongChemin = ThisWorkbook.PathNomFicTxt = "\DicoFirefoxFrancais.txt"'permet de retrouver le 1er numéro libre de désignation d'un fichiernum = FreeFile'ouvre le fichier en lectureOpen Chemin & NomFicTxt For Input As #numi = -1'boucle tant que l'on n'a pas atteint la fin du fichier

While Not EOF(1)  '***************Stockage des lignes dans la variable tableau Tb  i = i + 1  ReDim Preserve Tb(i)  Line Input #1, Tb(i)WendClose #num 'fermetureEnd Sub

Nota : Dans ce cas précis, l'utilisation de la variable tableau Tb() pour stocker les lignes du

fichier texte est inutile car le dictionnaire firefox ne comprends qu'une seule ligne.Modifier un fichier texteLa solution la plus facile est d'analyser le résultat présenté par la procédure de lecture, puis demodifier, directement dans Excel, les chaînes de caractères devant l'être. Dans notre exemple,

Page 4: Vba Excel Lecture Modification Et Enregistrement d Un Fichier Txt 11080 n9vxjs (1)

8/19/2019 Vba Excel Lecture Modification Et Enregistrement d Un Fichier Txt 11080 n9vxjs (1)

http://slidepdf.com/reader/full/vba-excel-lecture-modification-et-enregistrement-d-un-fichier-txt-11080-n9vxjs 4/7

à l'importation des données, on se rend compte que :Le dictionnaire firefox est composé d'une seule ligne,Elle-même composée de mots :Séparés par :des "/",des tabulations (Chr(9)),des sauts de ligne (Chr(10)).

Comportant des caractères :spéciaux,numériques.En minuscule.Il nous faut donc traiter cela sous Excel. Notre liste de mots est stockée dans la variable Tb().Nous allons, dans un premier temps, écrire deux fonctions nous permettant d'apurer la liste desmots des caractères spéciaux et de supprimer les mots contenant des chiffres (1er etc.) Voiciles codes de ces deux fonctions.

Page 5: Vba Excel Lecture Modification Et Enregistrement d Un Fichier Txt 11080 n9vxjs (1)

8/19/2019 Vba Excel Lecture Modification Et Enregistrement d Un Fichier Txt 11080 n9vxjs (1)

http://slidepdf.com/reader/full/vba-excel-lecture-modification-et-enregistrement-d-un-fichier-txt-11080-n9vxjs 5/7

'Cette fonction remplace les caractères spéciaux'contenus dans le dictionnaire firefoxFunction RemplaceCarSpec(monMot As String)Dim motTemp As String'La méthode utilisée ici est : Replace (cf aide VBA à ce sujet)motTemp = Replace(monMot, "é", "e")

motTemp = Replace(motTemp, "ï", "i")motTemp = Replace(motTemp, "è", "e")motTemp = Replace(motTemp, "-", "")motTemp = Replace(motTemp, "ç", "c")motTemp = Replace(motTemp, "ë", "e")motTemp = Replace(motTemp, "ê", "e")motTemp = Replace(motTemp, "ü", "u")motTemp = Replace(motTemp, "â", "a")motTemp = Replace(motTemp, "ä", "ae")

motTemp = Replace(motTemp, "ô", "o")motTemp = Replace(motTemp, "ÿ", "y")motTemp = Replace(motTemp, "î", "i")motTemp = Replace(motTemp, "Å""", "oe")motTemp = Replace(motTemp, "û", "u")motTemp = Replace(motTemp, "æ", "ae")motTemp = Replace(motTemp, "Ã¥", "a")motTemp = Replace(motTemp, "ö", "o")motTemp = Replace(motTemp, "Ã", "a")

motTemp = Replace(motTemp, "É", "e")motTemp = Replace(motTemp, "È", "e")motTemp = Replace(motTemp, "Ã...", "a")motTemp = Replace(motTemp, "Å'", "oe")motTemp = Replace(motTemp, "Å"", "oe")'Transforme notre chaîne de caractères en MajusculesRemplaceCarSpec = UCase(motTemp)End Function

Nota : Nous aurions pu résumer toute cette série de Replace en les cumulant sur une seuleligne. Exemple : motTemp = Replace(Replace(monMot, "é", "e"), "Å"", "oe"). Cependant, lecumul des fonctions Replace est plus lent que son utilisation en plusieurs lignes.

Page 6: Vba Excel Lecture Modification Et Enregistrement d Un Fichier Txt 11080 n9vxjs (1)

8/19/2019 Vba Excel Lecture Modification Et Enregistrement d Un Fichier Txt 11080 n9vxjs (1)

http://slidepdf.com/reader/full/vba-excel-lecture-modification-et-enregistrement-d-un-fichier-txt-11080-n9vxjs 6/7

'Cette fonction va stocker les mots ne contenant pas de chiffres'en début ou en fin de chaîne (ex : supprime 2ND)'Sa particularité est qu'on lui passe en paramètre une variable tableau'et qu'elle renvoie une variable tableauFunction Affine(Tbl)Dim TbTemp(), i As Long, CptTbNum As Long, CptTemp As Long

For i = LBound(Tbl) To UBound(Tbl)  If Len(Tbl(i)) > 2 And Len(Tbl(i)) < 17 Then  If Not IsNumeric(Right(Tbl(i), 1)) And Not IsNumeric(Left(Tbl(i), 1)) Then  ReDim Preserve TbTemp(CptTemp)  TbTemp(CptTemp) = Tbl(i)  CptTemp = CptTemp + 1  End If  End If

Next iAffine = TbTempEnd Function

Le code permettant de séparer les mots selon leurs séparateurs est le suivant (utilisation deSplit) :

Dim PremierJet() As String'Tb(0) car le dictionnaire firefox ne contient qu'une ligne'Dans le cas contraire il eut fallu boucler

PremierJet = Spli t(Tb(0), "/")For i = LBound(PremierJet) To UBound(PremierJet)  PremierJet(i) = Split(PremierJet(i), Chr(9))(1)  PremierJet(i) = Split(PremierJet(i), Chr(10))(1)Next i

 Ecrire dans un fichier textePour écrire dans un fichier texte, la méthode est sensiblement équivalente à la lecture.

num = FreeFile

'Ouvre en écriture et écrase un fichier précédent du même nomOpen Chemin & "\DicoFirefoxFrancaisTransforme.txt" For Output As #num'Boucle sur la liste des motsFor i = LBound(ListeMots) To UBound(ListeMots) 'Ecrit dans le fichier texte ligne par ligne Print #1, ListeMots(i)Next i'FermetureClose #num

 TéléchargementVous pouvez retrouver l'ensemble de cette procédure dans le classeur ci-joint :

Page 7: Vba Excel Lecture Modification Et Enregistrement d Un Fichier Txt 11080 n9vxjs (1)

8/19/2019 Vba Excel Lecture Modification Et Enregistrement d Un Fichier Txt 11080 n9vxjs (1)

http://slidepdf.com/reader/full/vba-excel-lecture-modification-et-enregistrement-d-un-fichier-txt-11080-n9vxjs 7/7

Ajouter un commentaire

http://cjoint.com/?DHfkA1c9DYZ. Est également joint le dictionnaire firefox « brut », au formattxt : http://cjoint.com/?DHfkBLhg1As Ce tutoriel est un complément de : celui-ci. Vous pourrez ytrouver un exemple d'utilisation.

Ce document intitulé « VBA Excel : Lecture, Modification et Enregistrement d'un fichier txt » issu de CodeS-SourceS (codes-sources.commentcamarche.net) est mis à disposition sous les termes de la licence CreativeCommons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tantque cette note apparaît clairement.

Commentaires

InscriptionConditions généralesContactCharte

RecrutementAnnonceursCCM Benchmark Group 

Carte de voeux 2013, Cinéma, Décoration, Expeert, Horoscope, Salon littéraire, Programme TV,Cuisine (Recette), Coiffure, Restaurant, Test débit, Voyage, Hayatouki

Ajouter un commentaire