Ecrit une plage Excel dans un fichier texte CSV, Excel VBA

Nous examinerons un programme dans Excel VBA qui écrit une plage Excel dans un fichier texte CSV (valeurs séparées par des virgules).

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 Ecrire 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 Ecrire As String, rng As Range, cellValue As Variant, i As Integer, j AsInteger

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

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

Remarque: la propriété DefaultFilePath renvoie le chemin du fichier par défaut. Chemin d’accès au dossier que vous voyez lorsque vous ouvrez ou enregistrez un fichier.

3. Nous initialisons l’objet de plage rng avec la plage sélectionnée.

Set rng = Selection

4. Ajoutez la ligne de code suivante:

Open Ecrire For Output As #1

Remarque: cette instruction permet d’écrire dans le fichier. Nous pouvons nous référer au fichier comme # 1 pendant le reste de notre code. Si le fichier existe déjà, il sera supprimé et un nouveau fichier du même nom sera créé.

5. Démarrez une boucle double.

For i = 1 To rng.Rows.Count
    For j = 1 To 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.

cellValue = rng.Cells(i, j).Value

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

If j = rng.Columns.Count Then
    Write #1, cellValue
Else
    Write #1, cellValue,
End If

Explication: en raison de l’instruction If Then Else, Excel VBA démarre uniquement une nouvelle ligne (Write # 1, cellValue) 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.

   Next j
Next i

9. Fermez le fichier.

Close # 1

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

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