Lire les données d’un fichier texte, Excel VBA

Nous examinerons un programme dans Excel VBA qui lit les données d’un fichier texte. Ce fichier contient des coordonnées géographiques que nous voulons importer dans Excel.

1. Tout d’abord, téléchargez le fichier texte et ajoutez-le à “C: \ test \”

Placez un bouton de commande sur votre feuille de calcul et ajoutez les lignes de code suivantes:

2. Nous déclarons quatre variables. information de type String, texte de type String, ligne de texte de type String, posLat de type Integer et posLong de type Integer.

Dim information As String, texte As String, textline As String, posLat As Integer, posLong As Integer

3. Nous devons initialiser la variable myFile avec le chemin complet et le nom de fichier.

information = "C: \ test \ coordonnées-géographiques.txt"

ou

utilisez la méthode GetOpenFilename de l’objet Application pour afficher la boîte de dialogue d’ouverture standard et sélectionnez le fichier (sans réellement ouvrir le fichier).

Information = Application.GetOpenFilename ()

Remarque: la partie vide entre les crochets signifie que nous ne donnons rien à Excel VBA en entrée. Placez votre curseur sur GetOpenFilename dans Visual Basic Editor et cliquez sur F1 pour obtenir de l’aide sur les arguments.

4. Ajoutez la ligne de code suivante:

Open myFile For Input As # 1

Remarque: cette instruction permet de lire le fichier. Nous pouvons faire référence au fichier comme # 1 pendant le reste de notre code.

5. Ajoutez les lignes de code suivantes: Faire jusqu’à EOF (1)

Do Until EOF(1)
    Line Input #1, textline
    text = text & textline
Loop

Remarque: jusqu’à la fin du fichier (EOF), Excel VBA lit une seule ligne du fichier et l’affecte à la ligne de texte. Nous utilisons l’opérateur & pour concaténer (joindre) toutes les lignes simples et les stocker dans le texte variable.

6. Fermez le fichier.

Close # 1

7. Ensuite, nous recherchons la position des mots latitude et longitude dans le texte variable. Nous utilisons l’Instrfunction.

posLat = InStr (texte, "latitude")
posLong = InStr (texte, "longitude")

8. Nous utilisons ces positions et la fonction Mid pour extraire les coordonnées du texte variable et écrire les coordonnées dans les cellules A1 et A2.

Range("A1").Value = Mid(text, posLat + 10, 5)
Range("A2").Value = Mid(text, posLong + 11, 5)

9. Testez le programme.

 Résultat:

S’abonner
Notifier de
0 Commentaires
Inline Feedbacks
Voir tous les commentaires

Initiation à Excel

Fonctions Excel

Excel VBA

Macros VBA Utiles

Plus d'outils

Sur Facebook

Sur YouTube

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x