La lecture des données à partir d’un fichier texte en utilisant Excel VBA
nous examinerons ci-dessous à un programme dans Excel VBA qui lit les données à partir d’un fichier texte. Ce fichier contient des coordonnées géographiques que nous voulons importer dans Excel.
Situation:
-
Tout d’abord, téléchargez le fichier texte et l’ajouter à « C: \ test \ »
Placez un bouton de commande sur votre feuille de calcul et ajoutez les lignes de code suivant:
-
Nous déclarons quatre variables. myFile de type String, texte de type String, TextLine de type String, posLat de type entier, et posLong de type entier.
Dim myFile As String, text As String, textline As String, posLat As Integer, posLong As Integer
-
Nous avons besoin d’initialiser la myFile variable avec le chemin complet et le nom du fichier.
myFile = "C:\test\geographical-coordinates.txt"
ou utiliser la méthode GetOpenFilename de l’objet d’application pour afficher la boîte de dialogue Ouvrir standard et sélectionnez le fichier (sans avoir à ouvrir le fichier).
myFile = Application.GetOpenFilename()
Note: la partie vide entre les parenthèses signifie que nous ne donne rien Excel VBA comme entrée. Placez votre curseur sur GetOpenFilename dans l’éditeur Visual Basic, puis cliquez sur F1 pour l’aide sur les arguments.
-
Ajoutez la ligne de code suivant:
Open myFile For Input As #1
Remarque: cette déclaration permet de lire le fichier. On peut se référer au fichier en tant que n ° 1 pendant le reste de notre code.
-
Ajoutez les lignes de code suivantes:
Do Until EOF(1) Line Input #1, textline text = text & textline Loop
Note: jusqu’à la fin du fichier (EOF), Excel VBA lit une seule ligne à partir du fichier et l’affecte à TextLine. Nous utilisons l’opérateur & pour concaténer (joindre) toutes les lignes simples et le stocker dans le texte variable.
-
Fermez le fichier.
Close #1
-
Ensuite, nous cherchons la position des mots latitude et la longitude dans le texte variable. Nous utilisons la fonction instr.
posLat = InStr(text, "latitude") posLong = InStr(text, "longitude")
-
Nous utilisons ces positions et la fonction Mid pour extraire les coordonnées du texte variable et écrire les coordonnées à la cellule A1 et la cellule A2.
Range("A1").Value = Mid(text, posLat + 10, 5) Range("A2").Value = Mid(text, posLong + 11, 5)
-
Tester le programme.
Résultat: