Création de macros à partir de zéro
Voici un exemple de création d’un macro à partir de zéro qui enregistre des étapes simples dans une feuille de calcul, les modifie en ajoutant une mise en forme de cellule et affiche les résultats des calculs de salaire à l’aide de Message Box.
1. Enregistrement des macros
À ce stade, nous enregistrerons les étapes pour saisir les chiffres et calculer le salaire automatiquement :
- Entrez le numéro de salaire dans la cellule A1.
- Entrez le nombre d’heures dans la cellule A2.
- Additionnez les résultats dans la cellule A3 pour calculer le salaire.
2. Modifier les macros
Après avoir enregistré ces étapes de base, vous pouvez ouvrir Visual Basic Editor (VBE) et ajouter du code à :
- Mettez en forme une plage de cellules avec les propriétés font et interior (par exemple, mettez le texte en gras et donnez-lui une couleur d’arrière-plan).
- Ajout d’un Message Box pour afficher les résultats du calcul de la paie.
Exemple de macro simple : calcul du salaire et formatage des cellules.
Sub Calculate_Salary()
Dim wage As Single
Dim hours As Single
Dim salary As Single
wage = Range(“A1”).Value
hours = Range(“A2”).Value
salary = wage * hours
MsgBox “Your salary is “ & salary, vbInformation, “Salary Calculation”
Range(“A3”).Value = salary
With Range(“A1:A3”)
.Font.Bold = True
.Interior.Color = RGB(144, 238, 144) ' Latar belakang hijau muda
End With
End Sub
Explication du code :
- Dim wage As Single : Il s’agit d’une déclaration de variable wage (salaire) avec le type de données Single.
- Dim hours As Single : Il s’agit d’une déclaration de variable hours (heures de travail) avec un type de données Single.
- salary =wage * hours : Ici, le salaire total est calculé en multipliant les salaires et les heures travaillées.
- MsgBox : Les résultats du calcul du salaire seront affichés dans la boîte de message (Message Box).
- Range(“A3”).Value = salary : Les résultats du calcul du salaire sont stockés dans la cellule A3.
- With Range(“A1 :A3”) : Les cellules A1 à A3 seront formatées avec du texte en gras et un arrière-plan vert clair (RGB(14444, 238, 144)).
Résultats attendus :
- Vous entrerez la valeur des salaires en A1 et des heures travaillées en A2.
- Lorsque le macro est exécuté, le salaire est automatiquement calculé et affiché dans la cellule A3.
- Les résultats salariaux apparaîtront également dans le Message Box.
- Les cellules A1 à A3 seront formatées avec du texte en gras et une couleur d’arrière-plan vert clair.
Utilisation de For…Next Loop dans les macros
En tirant parti de la structure For…Next Loop, vous pouvez automatiser le remplissage de cellules dans des feuilles de calcul Excel avec des données spécifiques. For…Next Loop vous permet d’itérer sur des lignes ou des colonnes dans une plage spécifiée, ce qui le rend très efficace pour répéter des tâches dans le remplissage de données.
Exemple : Remplir une plage de cellules avec des résultats de sommation de lignes et de colonnes
Voici un exemple d’macro qui utilise For…Next Loop pour remplir la plage de cellules A1 :E10 avec la valeur générée par la somme entre le numéro de ligne et le numéro de colonne.
Sub Fill_Cells_With_Loop()
Dim i As Integer, j As Integer
For i = 1 To 10
For j = 1 To 5
Cells(i, j).Value = i + j
Next j
Next i
With Range(“A1:E10”)
.Font.Bold = True
.Interior.Color = RGB(224, 255, 255)
End With
End Sub
Explication du code :
- For i =1 To 10 : La première boucle pour l’itération à travers les rangées, de 1 à 10 (rangées 1 à 10).
- For j =1 To 5 : La deuxième boucle pour les itérations à travers les colonnes, de 1 à 5 (colonnes A à E).
- Cells(i, j).Value =i + j : Remplissez la cellule avec le résultat de la somme entre le numéro de ligne (i) et le numéro de colonne (j).
- With Range(“A1 :E10”) : Mettez en forme les cellules A1 à E10 avec du texte en gras et un fond bleu clair.