Re : Question sur VBA
Bonsoir,
Cela dépend de ce que fait ton programme.
En pratique, les modules standards, par opposition aux modules de classe sont l'endroit ou placer le code sauf cas particuliers, et ils sont assez nombreux.
S'il s'agit simplement d'opérations de mise en forme, de report de données entre feuilles et/ou classeurs un module standard est l'endroit ou placer ton code.
Si tu veux gérer un événement particulier, il faut placer le code dans le module associé à l'élément concerné par l'événement :
Pour l'ouverture du classeur, par exemple, c'est l'événement Open, le code doit être placé dans "ThisWorkbook :
Private Sub Workbook_Open()
End Sub
C'est le cas pour tous les événements de niveau classeur, "BeforeClose", "NewSheet", "SheetActivate", ...
Pour un événement de niveau feuille ("Change", "SelectionChange", "Activate"), c'est le module associé à la feuille qui doit être utilisé.
Voici la syntaxe pour gérer l'événement Change :
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
End Sub
Si tu as besoin de gérer de la même façon un événement particulier pour plusieurs feuilles, tu peux écrire une procédure dans un module normal, et l'appeler depuis le code de chaque feuille, ce qui évite d'avoir plusieurs fois le même code, cause fréquente de pépins lors de futures mises à jour :
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
MaProcedure ' Procédure (Sub) figurant dans un module normal SANS le mot-clef "Private"
End Sub
Si tu as besoin de réaliser des dialogues (UserForms), le code associé aux controles (boutons, liste, ...) et celui associé aux événements du UserForm devra être dans le module du UserForm, tandis que l'instruction pour afficher le UserForm sera en général dans un module standard, parfois dans le module d'un autre UserForm, si 2 UserForms sont actifs en même temps.
Enfin, il y les modules de classe qui permettent de gérer la définition de classes (Salarie par exemple, avec des propriétés, comme le nom, le prénom, la fonction, ...), et d'autres choses encore.
Essaie de digérer tout cela, et si ce n'est pas clair, n'hésite pas à demander des compléments, mais dans ce cas, précise ce que tu veux faire, sinon, il faudrait écrire des pages entières pour te répondre.
Cordialement,
Bonjour
Je voudrais savoir quel est la difference entre rentrer son code dans "this workbook", "un module ", "ou dans la page"?
Je suis en train de creer un programme qui a plusieurs fonctions et ce que je peu traiter toute les fonctions separement et apres les regrouper en 1 seul programe? Si oui dois je creer mes parties de programe dna sl module, dans la page ou dans workbook ?
merci