Écrire des données dans 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 écrit une plage Excel dans un fichier texte CSV (valeurs séparées par des virgules).

Situation:

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

1. Tout d'abord, nous déclarons une variable appelée myFile de type String, un objet appelé rng de type Range, une variable appelée cellValue de type Variant, une variable appelée i de type Integer et une variable appelée j de type Integer. Nous utilisons ici une variable Variant car une variable Variant peut contenir n'importe quel type de valeur.

Dim myFile As String, rng As Range, cellValue As Variant, i As Integer, j As Integer

2. Nous devons spécifier le chemin complet et le nom de fichier du fichier.

myFile = Application.DefaultFilePath & "\sales.csv"

Remarque : la propriété DefaultFilePath renvoie le chemin de fichier par défaut. Pour modifier l'emplacement de fichier par défaut, dans l'onglet Fichier, cliquez sur Options, Enregistrer.

3. Nous initialisons l'objet range rng avec la plage sélectionnée.

Définir rng = Sélection

4. Ajoutez la ligne de code suivante :

Ouvrir monFichier pour la sortie en tant que #1

Remarque : cette instruction permet d'écrire dans le fichier. Nous pouvons faire référence au fichier en tant que #1 pendant le reste de notre code. Si le fichier existe déjà, il sera supprimé et un nouveau fichier portant le même nom sera créé.

5. Démarrez une double boucle.

Pour i = 1 To rng.Rows.Count
Pour j = 1 à rng.Columns.Count

Remarque : rng.Rows.Count renvoie le nombre de lignes (17 dans cet exemple) et rng.Columns.Count renvoie le nombre de colonnes (4 dans cet exemple).

6. Excel VBA écrit la valeur d'une cellule dans la variable cellValue.

valeurcellule = rng.Cellules(i, j).Valeur

7. Ajoutez les lignes de code suivantes pour écrire la valeur de cellValue dans le fichier texte.

Si j = rng.Columns.Count Alors
Écrivez #1, cellValue
Autre
Écrivez #1, cellValue,
Fin si

Explication : en raison de l'instruction If Then Else, Excel VBA ne démarre une nouvelle ligne (Write #1, cellValue) que lorsque j est égal au nombre de colonnes (dernière valeur d'une ligne). Pour séparer les valeurs par une virgule, utilisez Write #1, cellValue, (avec une virgule).

8. N'oubliez pas de fermer les deux boucles.

 j suivant
Ensuite je

9. Fermez le fichier.

Fermer #1

10. Sélectionnez les données et cliquez sur le bouton de commande sur la feuille.

Résultat:

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

wave wave wave wave wave