/ / Objet d'application VBA Excel

Objet d'application Excel VBA

Feuille de travail | Mise à jour de l'écran | DisplayAlerts | Calcul

La mère de tous les objets est Excel lui-même. Nous l'appelons le Objet d'application. L'objet d'application donne accès à de nombreuses options liées à Excel.

Feuille de travail

Vous pouvez utiliser la propriété WorksheetFunction dans Excel VBA accéder aux fonctions Excel.

1. Par exemple, placez un bouton de commande sur votre feuille de calcul et ajoutez la ligne de code suivante:

Range("A3").Value = Application.WorksheetFunction.Average(Range("A1:A2"))

Lorsque vous cliquez sur le bouton de commande de la feuille de calcul, Excel VBA calcule la moyenne des valeurs des cellules A1 et A2 et place le résultat dans la cellule A3.

WorksheetFunction dans Excel VBA

Remarque: au lieu de Application.WorksheetFunction.Moyenne, utilisez simplement WorksheetFunction.Average. Si vous regardez la barre de formule, vous pouvez voir que la formule elle-même n'est pas insérée dans la cellule A3. Pour insérer la formule elle-même dans la cellule A3, utilisez la ligne de code suivante:

Range("A3").Value = "=AVERAGE(A1:A2)"

Mise à jour de l'écran

Parfois, il peut être utile de désactiver la mise à jour de l’écran (pour éviter le scintillement) lors de l’exécution du code. En conséquence, votre code sera exécuté plus rapidement.

1. Par exemple, placez un 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 de la feuille de calcul, Excel VBA affiche chaque valeur une fraction de seconde à quelques secondes près, ce qui peut prendre un certain temps.

Mise à jour de l'écran

2. 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 fonctionnera beaucoup plus rapidement et vous ne verrez que le résultat final (10000).

DisplayAlerts

Vous pouvez indiquer à Excel VBA de ne pas afficher les alertes lors de l’exécution du code.

1. Par exemple, placez un bouton de commande sur votre feuille de calcul et ajoutez la ligne de code suivante:

ActiveWorkbook.Close

Lorsque vous cliquez sur le bouton de commande de la feuille de calcul, Excel VBA ferme votre fichier Excel et vous invite à enregistrer les modifications apportées.

DisplayAlerts

2. Pour indiquer à Excel VBA de ne pas afficher cette alerte lors de l'exécution du code, mettez-le à jour comme suit.

Application.DisplayAlerts = False

ActiveWorkbook.Close

Application.DisplayAlerts = True

Excel VBA ferme donc votre fichier Excel sans vous demander de sauvegarder les modifications que vous avez apportées. Tous les changements sont perdus.

Calcul

Par défaut, le calcul est défini sur automatique. En conséquence, Excel recalcule automatiquement le classeur chaque fois qu'une valeur affectant une formule est modifiée. Si votre classeur contient de nombreuses formules complexes, vous pouvez accélérer votre macro en définissant le calcul sur manuel.

1. Par exemple, placez un bouton de commande sur votre feuille de calcul et ajoutez la ligne de code suivante:

Application.Calculation = xlCalculationManual

Lorsque vous cliquez sur le bouton de commande de la feuille de calcul, Excel VBA définit le calcul sur manuel.

2. Vous pouvez le vérifier en cliquant sur Fichier, Options, Formules.

Options de calcul

3. Désormais, lorsque vous modifiez la valeur de la cellule A1, la valeur de la cellule B1 n'est pas recalculée.

Calcul manuel

Vous pouvez recalculer manuellement le classeur en appuyant sur F9.

4. Dans la plupart des cas, vous définissez de nouveau le calcul automatique à la fin de votre code. Ajoutez simplement la ligne de code suivante pour y parvenir.

Application.Calculation = xlCalculationAutomatic
Lisez aussi: