Académique Documents
Professionnel Documents
Culture Documents
EXPLICATIONS
For Each cellule In Selection : Cette boucle vous permet de parcourir chaque cellule slectionne. Cest pourquoi vous aviez dclar la variable cellule de type Range identique lobjet Selection que vous parcourez. If cellule.Row > ligne_max Then ligne_max = cellule.Row : Ds que lindice de ligne de la cellule parcourue est suprieur la dernire valeur maximum mmorise, vous considrez quil sagit de la ligne la plus grande jusqu dnitivement trouver la dernire ligne du tableau. If cellule.Row < ligne_min Then ligne_min = cellule.Row : Ds que lindice de ligne de la cellule parcourue est infrieur la dernire valeur minimum mmorise, vous considrez quil sagit de la ligne la plus petite jusqu atteindre la premire ligne du tableau. If cellule.Column > col_max Then col_max = cellule.Column : Ds que lindice de colonne de la cellule parcourue est suprieur la dernire valeur maximum mmorise, vous considrez quil sagit de la colonne la plus grande jusqu atteindre la dernire colonne du tableau. If cellule.Column < col_min Then col_min = cellule.Column : Ds que lindice de colonne de la cellule parcourue est infrieur la dernire valeur minimum mmorise, vous considrez quil sagit de la colonne la plus petite jusqu atteindre la premire colonne du tableau. Document libre de droits. Partagez ! Pour nous retrouver sur le Web : www.dreamlive.fr
EXPLICATIONS
DU CODE
Open ThisWorkbook.Path & \chier.txt For Output As #1 : Linstruction Open issue du Basic, vous permet douvrir un chier texte en mmoire de faon y crire ou le lire. Le chier en question est : ThisWorkbook.Path & \chier.txt. La proprit Path de lobjet ThisWorkbook dsigne le chemin daccs au dossier du classeur. Donc vous accdez au chier chier.txt situ dans le mme dossier que celui de votre classeur. Linstruction suivante For Output signie que vous y accdez en criture. Avec ce mode daccs, si le chier nexiste pas, VBA le cre. As #1 permet dallouer un numro dadresse mmoire virtuel et arbitraire pour stocker le chier en mmoire et le manipuler laide de cette adresse (1). For ligne = ligne_min To ligne_max For colonne = col_min To col_max A laide de cette boucle imbrique et des variables ligne et colonne, vous parcourez pour chaque ligne, toutes les colonnes du tableau, grce aux quatre bornes mmorises dans les variables. texte = texte & Cells(ligne, colonne).Value & , : Dans la mme variable texte, vous mmorisez ainsi lintgralit des donnes dune ligne (toutes ses colonnes) en sparant les donnes par une virgule. Print #1, texte texte =
Document libre de droits. Partagez ! Pour nous retrouver sur le Web : www.dreamlive.fr
TEST DU CODE
Basculez sur la feuille Excel, Cliquez sur le contrle bouton de la barre doutils Formulaires, Tracez un rectangle sur la feuille de manire dessiner un bouton, Dans la fentre qui apparat, slectionnez la macro export_tableau, Puis, validez par Ok. Vous associez ainsi la macro au bouton sur lequel il suft de cliquer pour lexcuter. Slectionnez une partie du tableau ou tout le tableau, Cliquez sur le bouton. En apparence rien ne se produit. Pourtant les donnes ont bien t inscrite dans un chier texte qui, par la mme occasion a t cr. Ouvrez le dossier de votre classeur laide de lexplorateur Windows, Vous y trouvez le chier chier.txt. Double cliquez sur ce dernier pour louvrir. Comme vous le constatez, les donnes ont bien t exportes, spares par des virgules pour dlimiter les colonnes. Il sagit maintenant de crer une macro pour importer ces donnes et capable de reconstituer la structure du tableau dans une feuille Excel.
IMPORTATION
Basculez en mode Visual Basic Editor, Crez la procdure importation_dyn() en saisissant les bornes de sa procdure, comme suit : Sub importation_dyn() End Sub Lobjectif est de rcuprer les informations du chier texte ligne ligne et pour chaque ligne de trononner la chane de caractres selon les virgules dtectes de faon reconstituer les colonnes du tableau.
Document libre de droits. Partagez ! Pour nous retrouver sur le Web : www.dreamlive.fr
EXPLICATIONS
DU CODE
Open ThisWorkbook.Path & \chier.txt For Input As #1 : Comme pour la macro dexportation linstruction Open permet douvrir le chier texte dont le chemin est prcis dans la suite de linstruction. Cette fois en revanche, vous accdez au chier en lecture et non en criture par le biais de linstruction For Input. Do While Not EOF(1) : Cette boucle vous permet de parcourir ligne ligne lintgralit du chier texte. Linstruction EOF signie End Of File, soit tant que la n du chier nest pas atteinte. Line Input #1, texte : En accs lecture, Line Input est linstruction permettant de rcuprer lintgralit de la ligne en cours de lecture dans le chier texte et de la mmoriser dans la variable texte ici. Une fois le contenu rcuprer, Line Input passe automatiquement la ligne suivante, du fait de la boucle. depart = 1: position = 1 : A chaque nouvelle ligne, vous rinitialisez les variables de positionnement dans la chane de caractres car vous dbutez lanalyse dun nouveau texte. Do While (position <> 0) : Vous dbutez ensuite une boucle qui dmarre lanalyse et la dcoupe de la ligne mmorise. Le test position <> 0 tient au fait que vous utilisez ensuite la fonction InStr pour trouver les positions des virgules. Or cette fonction renvoie la valeur 0 lorsque plus aucune virgule nest trouve. Lanalyse se termine ainsi. position = InStr(depart, texte, ,, 1) : A chaque passage vous mmorisez la position de la virgule suivante car la variable dpart permet de repartir juste aprs la prcdente virgule trouve (Dernier passage dans la boucle). La fonction InStr qui renvoie cette position demande trois paramtres en commenant par la position de dpart partir de laquelle chercher dans le texte (dpart), puis vient le texte en question (texte) et enn le caractre recherch dans cette chane (,). Le dernier paramtre est facultatif.
Document libre de droits. Partagez ! Pour nous retrouver sur le Web : www.dreamlive.fr
Document libre de droits. Partagez ! Pour nous retrouver sur le Web : www.dreamlive.fr
Ces documents DreamLive sont libres de droits et ouverts tous alors, protez, partagez et apprciez ! Pour nous retrouver sur le Web : http://www.dreamlive.fr.
Document libre de droits. Partagez ! Pour nous retrouver sur le Web : www.dreamlive.fr