Recherche
Les mémos
-
Tables
- · Annuler la suppression
- · Attacher feuilles Excel
- · Cacher une table
- · Concaténer une colonne
- · Créer une table
- · Dernière modification
- · Index composé
- · Limiter les enregistrements
- · Liste des champs
- · Modifier valeur de champ
- · Où est la table
- · Peupler une table de Logs
- · Renuméroter un champ
- · Réattacher les liens
- · Réattacher les liens locaux
- · Scinder un champ
- · Supprimer les tables liées
- · Trouver la différence
-
Formulaires
- · Afficher les derniers
- · Ajout à liste modifiable
- · Ajouter enregistrement
- · Barre de progression
- · Click ou double-click
- · Confirmer l'enregistrement
- · Copier - Coller
- · Défilement de la roulette
- · Exporter un graphique
- · Filtres personnalisés
- · Identifiants d'un Form continu
- · Importer les formulaires
- · Langue utilisateur
- · Limiter la saisie
- · Mémoriser une valeur
- · No enregistrement
- · Ouvert en normal
- · Position des formulaires
- · Recopier dernière valeur
- · Scroll automatique
- · Switch Modal
- · Tri manuel dans form
- · Tri personnalisé
- · Verrouillage de formulaire
- · Vérifier les saisies
-
Automation
-
Administration
- · Chemin de la base
- · Déconnecter utilisateur
- · Désactiver le Shift
- · Désactiver le Shift(2)
- · Liste des références
- · Liste des utilisateurs
- · Lister les applications
- · Mode exclusif
- · Nom d'utilisateur
- · Nom de l'ordinateur
- · Paramètres régionaux
- · Propriétés de la base
- · Sauvegarde journalière
- · Sauvegarde mensuelle
- · Shell and Wait
- · Version de Windows
-
Envoyer un mail
-
Outlook
- · Ajouter des contacts
- · Déplacer les messages
- · Enregistrer pièces jointes
- · Est ouvert ?
- · Exporter les contacts
- · Exporter les rendez-vous
- · Importer les messages
- · Integrer un état
- · Lire les contacts
- · Lire les rendez-vous
- · Lister les dossiers
- · Lister les tâches
- · SendMail (MAPI)
- · SendMail Automation
-
Dates - Heures
-
Fichiers
- · Compter les dossiers
- · Créer un dossier
- · Générer fichier TXT
- · Importer fichier TXT
- · Le dossier existe ?
- · Le fichier existe ?
- · Lister les fichiers
- · Lister les fichiers (2007)
- · Lister les sous-dossiers
- · Rechercher un répertoire
- · Répertoire dans table
- · Supprimer ReadOnly
- · Sélection de dossier
- · Sélection de dossier (API)
- · Sélection de fichiers
- · Sélection fichier (MOL)
-
Références
Je débute...
-
La normalisation
-
VBA
Visites
1263822 visiteurs
3 visiteurs en ligne
Nous contacter
Contact
Ou placer le code
Module général ou module de classe ?
Lorsque le débutant rencontre du code VBA, la question est parfois : "Ou dois-je placer ce code ?"
La réponse est simple : cela dépend
Imaginons que vous disposé de code représentant une fonction. Cette fonction qui vous retourne le nombre de fois que la lettre "e" existe dans une chaîne de caractères.
Il est évident que vous souhaiteriez utiliser cette remarquable fonction partout et de n'importe ou dans votre base.
Il n'existe alors qu'un seul endroit digne de recevoir ce code: le module général !
Module général, c'est ou ?
Lorsque vous ouvrez une base Access 2000/2003, vous retrouvez dans la fenêtre d'Access, une fenêtre qui porte le nom de votre base.
Ce que l'on appelle un module général est un module de code créé via le bouton "Modules" du volet de gauche (ici coloré en orange).
Pour Access 2007, choisissez le ruban "Créer" et complètement à droite de ce ruban, le bouton Macro / Module / Module de classe via lequel vous sélectionnez Module.
Access chargera et affichera alors automatiquement l'éditeur qui vous permettra de saisir le code de votre précieuse fonction.
Le raccourci :
Il existe également un raccourci clavier qui vous permet d'ouvrir directement l'éditeur, c'est Alt + F11.
Profitons-en pour définir une propriété importante de l'éditeur.
Par le menu Outils, Options dans l'onglet Editeur, cocher la case devant la ligne Déclaration des variables obligatoire.
Cela vous évitera beaucoup d'erreurs et de longues recherches inutiles pour trouver la variable mal orthographiée. Accessoirement, cela vous poussera également à mieux structurer votre code.
Dans l'image ci-dessus, la ligne Option Explicit indique que vous devez déclarer les variables avant leur utilisation. Elle n'est affichée que si vous avez bien coché l'option concernée.
Lors de la déclaration de vos variables, précisez le type et n'hésitez surtout pas à utiliser des noms de variables "parlants".
Dim strNomClient As String
Dim lngNumeroArticle As Long
sera plus parlant que N, S ou i, surtout dans les fonctions ou modules importants et vous permettra de relire facilement votre code, même après de nombreux mois ou années.
Une bonne habitude pour augmenter la lisibilité et donc diminuer les sources d'erreurs, est d'indenter le code comme montré ci-dessous.
Cela se fait par tabulations et un automatisme de l'éditeur.
Vous pouvez également utiliser cette extension qui fonctionne aussi bien sous Windows Xp et Access 2000, que sous Windows 7 et Access 2007.
Et les modules de classe alors ?
Comme déjà dit dans l'article précédent, nous ne parlerons que des modules que l'on place directement "sous" les formulaires ou états. En fait, ce sont les différents événements que l'on trouve dans les formulaires et les états qui déclenche l'exécution du code.
Ces événements sont par exemple l'ouverture ou fermeture du formulaire; le clic sur un bouton ou une zone de texte, la mise à jour ou la sortie d'une zone de texte, etc.
En fait, il existe tellement d'événements qu'il est difficile de les lister de mémoire
Le code exécuté lors de l'un de ces événements prend place dans une Sub (de Sub-routine) et pour s'y retrouver, chaque Sub comporte le nom de l'événement qui conduit à l'exécution du code.
Par exemple:
- Vous créé un bouton nommé cmd_Imprimer destiné à imprimer un état, la Sub portera alors le nom de cmd_Imprimer_Click.
- Vous voulez agir sur la couleur d'une zone de texte "NoCode" selon la saisie, vous placerez alors le code de vérification dans la Sub de l'événement après mise à jour de la zone de texte. Cela créera la Sub nommée NoCode_AfterUpdate.
Toutes les Sub, donc tout le code VBA, concernant un formulaire se retrouvera regroupé dans un module. Ce module sera le module de classe du formulaire concerné.
On peut encore remarquer que le code VBA ne connait plus que l'anglais.
Via les propriétés du formulaire, on cherchera à placer du code sur l'événement "Après MAJ" (après mise à jour), mais dans l'éditeur, cet événement se nommera AfterUpdate comme on peut le constater sur l'image ci-dessus.
Si on y ajoute le fait que leur nom d'origine en anglais est souvent plus parlant, ainsi que plus court, le choix ne devrait pas être difficile.
Il faut alors constater que l'apprentissage des noms anglais de ces fonctions simplifiera cet apprentissage. A défaut, il faudra apprendre les deux versions
Page lue 9255 fois