Excel VBA objet Application
La mère de tous les objets est Excel lui-même. Nous appelons l’objet Application. L’objet de l’application donne accès à un grand nombre d’options connexes Excel.
WorksheetFunction
Vous pouvez utiliser la propriété WorksheetFunction dans Excel VBA pour accéder aux fonctions Excel.
-
Par exemple, placez un
lien: / ABV-create-a-macro-commande bouton # [bouton de commande]
sur votre feuille de calcul et ajoutez la ligne de code suivant:
Range("A3").Value = Application.WorksheetFunction.Average(Range("A1:A2"))
Lorsque vous cliquez sur le bouton de commande sur la feuille de calcul, Excel VBA calcule la moyenne des valeurs dans la cellule A1 et la cellule A2 et place le résultat dans la cellule A3.
Note: au lieu de Application.WorksheetFunction.Average, utilisez simplement WorksheetFunction.Average. Si vous regardez la barre de formule, vous pouvez voir que la formule elle-même est pas insérée dans la cellule A3. Pour insérer la formule elle-même dans la cellule A3, utiliser la ligne de code ci-dessous:
Range("A3").Value = "=AVERAGE(A1:A2)"
ScreenUpdating
Parfois, vous trouverez peut-être utile pour la mise à jour de l’écran désactiver (pour éviter le clignotement) lors de l’exécution du code. En conséquence, votre code fonctionnera plus rapidement.
-
Par exemple, placez un
lien: / ABV-create-a-macro-commande bouton # [bouton de commande]
sur votre feuille de calcul et ajoutez les lignes de code suivantes:
Dim i As Integer For i = 1 To 10000 Range("A1").Value = i Next i
Lorsque vous cliquez sur le bouton de commande sur la feuille de calcul, Excel VBA affiche chaque valeur une minuscule fraction de seconde et cela peut prendre un certain temps.
-
Pour accélérer le processus, mettez à jour le code comme suit.
Dim i As Integer Application.ScreenUpdating = False For i = 1 To 10000 Range("A1").Value = i Next i Application.ScreenUpdating = True
En conséquence, votre code sera beaucoup plus rapide et vous ne verrez que le résultat final (10000).
DisplayAlerts
Vous pouvez demander à Excel VBA ne pas afficher les alertes lors de l’exécution du code.
-
Par exemple, placez un
lien: / ABV-create-a-macro-commande bouton # [bouton de commande]
sur votre feuille de calcul et ajoutez la ligne de code suivant:
ActiveWorkbook.Close
Lorsque vous cliquez sur le bouton de commande sur la feuille de calcul, Excel VBA ferme votre fichier Excel et vous demande d’enregistrer les modifications apportées.
-
Pour charger Excel VBA ne pas afficher cette alerte lors de l’exécution du code, mettre à jour le code comme suit.
Application.DisplayAlerts = False ActiveWorkbook.Close Application.DisplayAlerts = True
Par conséquent, Excel VBA ferme votre fichier Excel, sans vous demander d’enregistrer les modifications apportées. Toute modification sont perdus.
Calcul
Par défaut, le calcul est automatique. En conséquence, Excel recalcule le classeur automatiquement chaque fois une valeur affectant un changement de formule. Si votre classeur contient de nombreuses formules complexes, vous pouvez accélérer votre macro en réglant le calcul manuel.
-
Par exemple, placez un
lien: / ABV-create-a-macro-commande bouton # [bouton de commande]
sur votre feuille de calcul et ajoutez la ligne de code suivant:
Application.Calculation = xlCalculationManual
Lorsque vous cliquez sur le bouton de commande sur la feuille de calcul, Excel VBA définit le calcul manuel.
-
Vous pouvez le vérifier en cliquant sur Fichier, Options, formules.
-
Maintenant, lorsque vous modifiez la valeur de la cellule A1, la valeur de la cellule B1 est pas recalculées.
Vous pouvez manuellement recalcule le classeur en appuyant sur F9.
-
Dans la plupart des cas, vous partirez à nouveau calcul automatique à la fin de votre code. Il suffit d’ajouter la ligne de code suivant pour y parvenir.
Application.Calculation = xlCalculationAutomatic