Automatiser les processus de rédaction de données, Excel VBA
Voici un exemple détaillé de code VBA pour automatiser la rédaction de données dans un fichier Excel. Ce script VBA permet de remplir automatiquement des cellules avec des données calculées ou définies à l’avance, et peut être adapté à différents cas d’utilisation comme l’insertion de données dans des tableaux, la mise à jour de cellules en fonction de conditions spécifiques, ou même la lecture et l’écriture dans plusieurs feuilles de calcul.
Scénario :
Imaginons que nous avons un tableau d’entreprises avec des colonnes pour le nom de l’entreprise, le revenu annuel, la région, et la date de création. Nous voulons automatiser la saisie des données dans ce tableau à l’aide de VBA, en remplissant ces colonnes avec des données prédéfinies.
________________________________________
1. Structure du Tableau (Exemple de feuille Excel)
A B C D
Nom Revenu Région Date Création
Entreprise A 5000000 Europe 01/01/2010
Entreprise B 12000000 Amérique 15/05/2012
Entreprise C 7500000 Asie 20/08/2015
________________________________________
2. Code VBA pour automatiser la rédaction des données
Étape 1 : Ouvrir l’éditeur VBA
1. Ouvrez Excel et appuyez sur Alt + F11 pour ouvrir l’éditeur VBA.
2. Dans le menu « Insertion », sélectionnez « Module » pour insérer un nouveau module.
3. Copiez et collez le code suivant dans la fenêtre du module.
Sub AutomatiserRedactionDonnees() ' Déclarez les variables pour la feuille de calcul et les données Dim ws As Worksheet Dim i As Integer Dim entreprises As Variant Dim revenus As Variant Dim regions As Variant Dim dates As Variant ' Référence à la feuille de calcul où les données seront insérées Set ws = ThisWorkbook.Sheets("Feuil1") ' Définir les données à insérer entreprises = Array("Entreprise A", "Entreprise B", "Entreprise C") revenus = Array(5000000, 12000000, 7500000) regions = Array("Europe", "Amérique", "Asie") dates = Array("01/01/2010", "15/05/2012", "20/08/2015") ' Démarre l'écriture des données à partir de la ligne 2 For i = 0 To UBound(entreprises) ' Insère le nom de l'entreprise dans la colonne A ws.Cells(i + 2, 1).Value = entreprises(i) ' Insère le revenu dans la colonne B ws.Cells(i + 2, 2).Value = revenus(i) ' Insère la région dans la colonne C ws.Cells(i + 2, 3).Value = regions(i) ' Insère la date de création dans la colonne D ws.Cells(i + 2, 4).Value = CDate(dates(i)) ' Conversion en format date Next i ' Message de confirmation MsgBox "Les données ont été saisies avec succès !", vbInformation End Sub
________________________________________
3. Explication du Code
Déclaration des variables
Dim ws As Worksheet Dim i As Integer Dim entreprises As Variant Dim revenus As Variant Dim regions As Variant Dim dates As Variant
• ws : une variable qui fait référence à la feuille de calcul où les données seront insérées.
• i : une variable pour itérer dans la boucle.
• entreprises, revenus, regions, dates : des tableaux qui contiennent les valeurs à insérer dans les colonnes respectives de la feuille de calcul.
Référence à la feuille de calcul
Set ws = ThisWorkbook.Sheets("Feuil1")
Cela permet de définir la feuille de calcul spécifique dans laquelle nous voulons écrire. Ici, nous avons utilisé « Feuil1 », mais cela peut être remplacé par le nom de la feuille souhaitée.
Définition des données
entreprises = Array("Entreprise A", "Entreprise B", "Entreprise C") revenus = Array(5000000, 12000000, 7500000) regions = Array("Europe", "Amérique", "Asie") dates = Array("01/01/2010", "15/05/2012", "20/08/2015")
Ces tableaux contiennent les données qui seront insérées dans les colonnes respectives du tableau Excel.
Boucle pour insérer les données
For i = 0 To UBound(entreprises) ws.Cells(i + 2, 1).Value = entreprises(i) ws.Cells(i + 2, 2).Value = revenus(i) ws.Cells(i + 2, 3).Value = regions(i) ws.Cells(i + 2, 4).Value = CDate(dates(i)) Next i
• For i = 0 To UBound(entreprises) : La boucle commence à l’index 0 et s’exécute jusqu’à la fin du tableau entreprises (ce qui est déterminé par UBound(entreprises)).
• ws.Cells(i + 2, 1).Value = entreprises(i) : Pour chaque itération, les valeurs des tableaux entreprises, revenus, regions, et dates sont insérées dans les cellules appropriées. Les indices des tableaux commencent à zéro, mais la première ligne de données commence à la ligne 2, d’où l’ajout de i + 2.
Message de confirmation
MsgBox "Les données ont été saisies avec succès !", vbInformation
Après que toutes les données ont été insérées, un message de confirmation apparaît pour informer l’utilisateur que l’opération a été effectuée avec succès.
________________________________________
4. Exécution du code
1. Dans l’éditeur VBA, allez dans le menu « Exécuter » et sélectionnez « Exécuter Sub/UserForm » ou appuyez sur F5 pour exécuter le script.
2. Lorsque vous retournez dans votre feuille Excel, vous devriez voir les données insérées automatiquement à partir de la ligne 2 dans les colonnes A à D.
________________________________________
5. Personnalisation
Vous pouvez facilement personnaliser ce code en modifiant :
• Les données dans les tableaux (entreprises, revenus, etc.).
• La feuille sur laquelle vous travaillez en changeant le nom de la feuille dans la ligne Set ws = ThisWorkbook.Sheets(« Feuil1 »).
• La plage de cellules où les données sont insérées.
6. Applications possibles
• Remplir automatiquement des rapports : Utilisez ce code pour insérer des données à partir d’une autre source (base de données, fichier CSV, etc.).
• Mise à jour des informations : Vous pouvez automatiser la mise à jour des valeurs des cellules en fonction de certaines conditions.
• Création de rapports financiers : Par exemple, calculer les revenus mensuels en fonction des revenus annuels.
Ce code est une base solide pour l’automatisation de l’insertion de données dans Excel et peut être adapté à divers cas d’usage pour gagner du temps dans vos tâches répétitives.