Passer au contenu

Comment améliorer la lisibilité des données dans un état ?

Solution : en écrivant un programme en VBA appliquant un fond gris à un enregistrement sur deux.

Avec des états présentés sous forme de tables et comportant un grand nombre d’enregistrements par page (plus d’une trentaine par exemple), il est difficile de lire correctement les données. Pour faciliter la lecture des informations, il est conseillé de modifier la couleur du fond une ligne sur deux. Sous Access 97, cette opération s’effectue de la manière suivante. Optez pour l’onglet Etats de la fenêtre Base de données et activez [nouveau]. Choisissez EtatInstantané : Tableau. Dans la liste déroulante, sélectionnez la table ou la requête dont vous désirez imprimer les données. Validez. Puis, une fois l’état terminé, modifiez-le en optant pour la commande Création du menu Affichage. Sélectionnez le bouton situé dans le coin supérieur gauche de la fenêtre de l’état et dont l’icône représente un carré de couleur noire. Le libellé Etat s’affiche alors dans la liste Objet de la barre d’outils Créer un état. Cliquez sur Affichage/Code. Saisissez la ligne suivante :

Dim NbLignes As integer

Puis, optez pour Détail dans la liste Objet (située à gauche). Entrez alors le listing ci-dessous. Affichez l’état en cliquant sur Fenêtre et en choisissant son libellé dans le menu qui s’affiche. Choisissez la commande Aperçu avant impression du menu Affichage et vérifiez qu’une ligne sur deux possède un fond grisé. Enregistrez l’état avant de l’imprimer. La macro repère les lignes paires à l’aide de la fonction Mod (reste de la division) et leur attribue la couleur grise. Si vous voulez changer la couleur de la ligne, il suffit de modifier les paramètres de la fonction RGB affecté à la propriété BackColor. Le premier, le deuxième et le troisième correspondent respectivement aux composantes rouges, vertes et bleues.Listing :
Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
If FormatCount = 1 Then
If NbLignes Mod 2 = 0 Then
Section(0).BackColor = RGB(192,192,192)
Else
Section(0).BackColor = RGB(255,255,255)
End If
Nblignes=NbLignes+1
End If
EndSub

🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.


Filigrane Press