Excel VBA

De Banane Atomic
Révision datée du 21 août 2018 à 14:11 par Nicolas (discussion | contributions) (→‎Watch Window)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigationAller à la recherche

Liens

Astuces

Afficher l'onglet Developper

File → Options → Customize Ribbon → Customize the Ribbon = Main Tabs → cocher Developer

Afficher les macros VBA

  • Alt + F11
  • Outils → Macros → Afficher Visual Basic Editor

Configurer la sécurité des Macros

  • Excel 2010 / Office 365: File → Options → Trust Center → Trust Center Settings → Macro Settings
  • Excel 2003: Outils → Macros → Sécurité

Choix:

  • Disable all macros with notification → les macros sont désactivés, mais on peut les activer une fois le fichier excel ouvert

Afficher l'Edit toolbar

View → Toolbars → Edit

Debug

Écrire dans l'Immediate Window

Vba.svg
Debug.Print "Texte"

View → Immediate Window (Ctrl + G)

Immediate Window
? MaVariable
Valeur de MaVariable

Assert

Vba.svg
' Stoppe le code si l'assertion est fausse
Debug.Assert (MaVariable < 0)

Variables locales

View → Locals Window

Watch Window

View → Watch Window

  • Conditional break points

Error Trapping Settings

Tools → Options → General → Error Trapping

  • Break on All Errors
  • Break in Class Module
  • Break on Unhandled Errors

Police et couleurs

Fenêtre VBA → Tools → Options → Editor Format

  • Font (Consolas)
  • Normal Text: Fg=White Bg=Black
  • Comment Text: Bg=Black
  • Keyword Text: Bg=Black
  • Identifier Text: Fg=White Bg=Black

VBEThemeColorEditor

Pour changer les valeurs des couleurs.
C:\Program Files (x86)\Microsoft Office\root\VFS\ProgramFilesCommonX86\Microsoft Shared\VBA\VBA7.1\VBE7.DLL

Convention de nommage

  • M - Code Module
    • MVBA - VBA libraries
      • MVBAStrings - Library of string functions
    • MMSOffice - Functions for working with Microsoft Office apps
    • MWwinAPI - Windows API functions
      • MWwinAPIRegistry - Functions for working with the Registry APIs
  • F - UserFOrm
  • C - Class Module
  • I - Interface
  • gb - variable globale
  • s - string

Scope

Vba.svg
' Module level
Private MyVar1 As String

' Global level
Public MyVar2 As String

Public Sub MyFunction()
    ' Local level
    Dim MyVar3 As String
End Sub

Ajouter un bouton

Onglet Developer → Insert → Form Controls → Button

Named range

Définir un nom: sélectionner un range → changer le nom dans la Name Box en haut à gauche.

Formulas → Name Manager

Vba.svg
ThisWorkbook.Names.Add Name:="MyRange", RefersTo:=Range("A1:A9")
Range("MyRange").Value = "VVV"

Accéder au contenu d'une cellule

Vba.svg
content = Range("A1").Value
Range("B3:B5").Value = content
' Item permet de sélectionner un sous élément de range (row,column)
Range("B3:C5").Item(1, 2) = content

content = Cells(ligne, colonne).Value
Cells(ligne, colonne).Value = content

Changer la couleur d'une cellule

Vba.svg
Cells(ligne, colonne).Interior.Color = RGB(210, 210, 210)

Changer la largeur d'une colonne

Vba.svg
Columns(colonne).ColumnWidth = 25

Tester si une cellule contient un chiffre

Vba.svg
If IsNumeric(Cells(1, 2).Value) Then
	command
End If

Erreurs

Projet ou bibliothèque introuvable

Une dll ou un exe n'est pas enregistrée dans le GAC (utiliser regsvr32 et fermer le fichier Excel).

Informations

Visual Basic for Applications a été lancé en 1993 avec Excel 5.0