Lire les données d'un fichier texte à l'aide d'Excel VBA - Macros Excel faciles

Table des matières

Ci-dessous, nous examinerons un programme en Excel VBA ce lit les données d'un fichier texte. Ce fichier contient des coordonnées géographiques que nous souhaitons importer dans Excel.

Situation:

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. myFile de type String, text de type String, textline de type String, posLat de type Integer et posLong de type Integer.

Dim myFile As String, text 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 du fichier.

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

ou alors

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

monFichier = 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 :

Ouvrir myFile pour l'entrée en tant que #1

Remarque : cette instruction permet la lecture du fichier. Nous pouvons faire référence au fichier en tant que #1 pendant le reste de notre code.

5. Ajoutez les lignes de code suivantes :

Faire jusqu'à EOF(1)
Entrée de ligne #1, ligne de texte
texte = texte et ligne de texte
Boucle

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

6. Fermez le fichier.

Fermer #1

7. Ensuite, nous recherchons la position des mots latitude et longitude dans le texte de la variable. Nous utilisons la fonction Instr.

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.

Plage("A1").Valeur = Milieu(texte, posLat + 10, 5)
Range("A2").Valeur = Mid(text, posLong + 11, 5)

9. Testez le programme.

Résultat:

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave