Table des matières
Dans les grandes bases de données, vous passez le plus clair de votre temps à manipuler des plages et des cellules. Parfois, vous devez répéter la même action dans de grandes plages ou un grand nombre de cellules, ce qui vous fait perdre du temps et réduit votre efficacité. La solution intelligente à ce problème est de créer une base de données de l'entreprise. Code de programmation VBA Aujourd'hui, dans cet article, nous allons voir comment faire du VBA pour chaque cellule de la plage dans Excel.
Télécharger le cahier d'exercices
Téléchargez ce livre d'exercices pour vous exercer à la tâche pendant que vous lisez cet article.
Code VBA pour chaque cellule d'une plage dans Excel.xlsx3 façons appropriées d'appliquer le VBA pour chaque cellule d'une plage dans Excel
En utilisant un code VBA, vous pouvez appliquer la même formule à chaque cellule d'une plage, d'une colonne ou d'une ligne. Dans cette section, nous allons passer en revue toutes les sections.
1. appliquer le VBA pour chaque cellule de la plage
Considérons une situation où vous devez appliquer le même code VBA pour chaque cellule d'une plage donnée ( B3:F12 Pour ce faire, nous allons créer un code VBA, dont voici les instructions
Étape 1 :
- Tout d'abord, nous allons insérer un bouton de commande pour nous simplifier la tâche. Onglet Développeur , sélectionnez Insérer et cliquez sur le bouton de commande pour en obtenir un.
- Nous avons notre bouton de commande.
- Cliquez avec le bouton droit sur le bouton de commande pour ouvrir les options. Sélectionnez et cliquez sur Propriétés pour modifier certaines options.
- Changez la légende du bouton de commande. Ici, nous changeons le nom en, " Cliquez ici ".
Étape 2 :
- Maintenant, double-cliquez sur le bouton de commande pour ouvrir la fenêtre VBA. Module Nous allons écrire ici notre code VBA pour cette tâche.
- Tout d'abord, nous allons déclarer deux variables, que nous appellerons les objets de la gamme CL et Rng Vous pouvez les nommer comme vous le souhaitez.
Dim CL As Range Dim Rng As Range
- Assignez une gamme spécifique par cette commande,
Set Rng = Worksheets("VBA1").Range("B3:F12")
- Ici, VBA1 est le nom de notre feuille de calcul et B3:F12 est notre gamme définie.
- Maintenant, nous allons utiliser le code pour parcourir chaque cellule de la plage. Le code est le suivant,
For Each CL In Rng CL.Value = 100 Next CL
- Valeur = 100 fait référence au fait qu'il retournera 100 pour chaque cellule de la plage donnée.
- Donc notre code final devient,
Private Sub CommandButton1_Click () Dim CL As Range Dim Rng As Range Set Rng = Worksheets("VBA1").Range("B3:F12") For Each CL In Rng CL.Value = 100 Next CL End Sub
- Allez dans votre feuille de calcul principale et cliquez sur le bouton de commande pour exécuter VBA pour chaque cellule de la plage.
Étape 3 :
- Comme pour les valeurs numériques, nous pouvons aussi mettre des valeurs de texte pour chaque cellule de la plage. Dans ce cas, allez dans la fenêtre VBA, et au lieu de 100, insérez la valeur de texte que vous voulez faire passer. La ligne modifiée est la suivante
CL.Value = "ExcelWIKI" (anglais)
- Cliquez sur le bouton de commande et le code VBA renverra cette valeur de texte pour chaque cellule de la plage.
Étape 4 :
- Dans cette étape, nous allons creuser un peu plus loin. Disons que nous voulons mettre en évidence chaque cellule vide de notre plage.
- Pour cela, ajoutez une nouvelle condition à votre code existant. La nouvelle formule est la suivante,
Si CL.Value = " " Then CL.Interior.ColorIndex = 3 End If
- Ce nouveau code mettra en évidence la cellule vide avec une couleur rouge. Le code complet est donc le suivant,
Private Sub CommandButton1_Click () Dim CL As Range Dim Rng As Range Set Rng = Worksheets("VBA1").Range("B3:F12") For Each CL In Rng If CL.Value = " " Then CL.Interior.ColorIndex = 3 End If Next CL End Sub
- Obtenez le résultat en cliquant sur le bouton de commande.
Lectures similaires :
- Comment utiliser l'objet Range de VBA dans Excel (5 propriétés)
- Utiliser le décalage de plage de VBA (11 façons)
- Comment compter du texte dans Excel (7 astuces faciles)
2. insérer un code VBA pour chaque cellule d'une colonne d'une plage
Nous pouvons également exécuter un code VBA pour chaque cellule d'une colonne. Supposons que nous ayons une colonne contenant des chiffres et que nous devions colorer les valeurs inférieures à 10. Nous allons créer un code VBA pour exécuter chaque cellule de la colonne.
Étape 1 :
- Créez un bouton de commande en suivant les instructions dont nous avons parlé.
Étape 2 :
- Double-cliquez sur le bouton de commande pour ouvrir la fenêtre VBA.
- Nous allons déclarer une variable appelée " c "Nous utilisons ici la variable de type Long car les variables Long ont une plus grande capacité que les variables Integer.
Dim c As Long
- Ensuite, ajoutez la ligne de code qui change la couleur de la police de toutes les cellules de notre colonne en noir.
Columns(1).Font.Color = vbBlack
- Insérez la boucle pour ce code.
For c = 1 To Rows.Count Next c
- Dans cette étape, nous allons entrer une condition pour colorer les valeurs qui sont inférieures à la valeur de la cellule C4 (10). Entrez ce code pour le faire.
If Cells(c, 1).Value <; Range("C4").Value And Not IsEmpty(Cells(c, 1).Value) Then Cells(c, 1).Font.Color = vbRed End If
- Donc le code final est,
Private Sub CommandButton1_Click () Dim c As Long Columns(1).Font.Color = vbBlack For c = 1 To Rows.Count If Cells(c, 1).Value <; Range("C4").Value And Not IsEmpty(Cells(c, 1).Value) Then Cells(c, 1).Font.Color = vbRed End If Next c End Sub
- Le VBA s'exécute et affiche les résultats lorsque vous cliquez sur le bouton de commande.
3. écrire un code VBA pour chaque cellule d'une rangée d'une plage.
Nous pouvons également exécuter un code VBA pour chaque cellule d'une ligne. Dans la ligne donnée, nous devons effectuer la même action sur chaque cellule de la ligne.
Étape 1 :
- Ajoutez un bouton de commande et changez son nom en " Cliquez ici ! "
- Double-cliquez sur le bouton pour ouvrir la fenêtre VBA et écrivez le code VBA fourni ci-dessous.
Private Sub CommandButton1_Click () Dim r As Range Dim MyString As String 'Pour chaque cellule d'une ligne, et appliquer un remplissage de couleur jaune For Each r In Range("B3:F3").Rows r.Interior.ColorIndex = 6 Next End Sub
- Le code va parcourir chaque cellule de la ligne et appliquer un remplissage de couleur jaune à chaque cellule.
- Cliquez sur le bouton et notre résultat est là.
Notes rapides
👉 Si votre onglet développeur n'est pas visible, vous pouvez l'activer en suivant cette instruction.
Barre d'outils d'accès rapide personnalisée → Autres commandes → Personnalisation du ruban → Développeur → OK.
Conclusion
Nous avons examiné trois approches différentes pour exécuter VBA pour chaque cellule d'une plage. N'hésitez pas à commenter si vous avez des questions ou des requêtes. Vous pouvez également consulter nos autres articles relatifs aux tâches Excel !