IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Morceaux de fonction utilisés dans plusieurs formulaires


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 31
    Points : 29
    Points
    29
    Par défaut Morceaux de fonction utilisés dans plusieurs formulaires
    Bonjour tout le monde.

    Voilà j'ai une base avec des boutons que je colorise suivant un état d'avancement défini. Ces boutons sont présents dans 12 formulaires et je n'ai pas trouvé d'autres moyens que de répéter le code dans les objets de classe de tous les formulaires concernés.
    Bon certes, ca fonctionne, mais cela allourdi considérablement le code inutillement.
    J'ai essayé de déclarer ça un Public Function, mais je me fais jeter car j'utilise des valeurs du formulaire en cours d'utilisation.
    Voici un petit exemple du code que je répète :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    If IsNull([CAL_DATE_DEB_VIEILL]) = True Then
        Me.Bout_VIEILL.BackColor = rouge
        Me.Bout_VIEILL.ForeColor = Noir
    Else
        If ([CAL_DATE_FIN_VIEILL]) < Now Then
        Me.Bout_VIEILL.BackColor = Vert
        Me.Bout_VIEILL.ForeColor = Noir
        Else
        Me.Bout_VIEILL.BackColor = Bleu
        Me.Bout_VIEILL.ForeColor = blanc
        End If
    End If
    L'erreur est "nom externe non défini" pour les champs [CAL_DATE_DEB_VIEILL] et [CAL_DATE_FIN_VIEILL] qui font parti du formulaire dans lequel je souhaite lancer le code.

    Je vous remercie par avance pour vos idées pour alléger mon mastodonte

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 128
    Points : 55 940
    Points
    55 940
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Question bête...

    Tu as douze formulaires... -> 1 pour chaque mois de l'année?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 31
    Points : 29
    Points
    29
    Par défaut
    Non, en fait j'ai un atelier comprenant douze postes de charge disctinct. Mes produits étant réalisés de manière séquentielle, je cherche à pouvoir connaitre l'avancement simplement grâce à des codes couleur.
    Je joint un screen des boutons avec les couleurs (chaque bouton étant un lien vers le formulaire correspondant à la phase concernée).

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 128
    Points : 55 940
    Points
    55 940
    Billets dans le blog
    131
    Par défaut
    Je ne suis pas certain d'avoir compris ce que tu souhaites réaliser.

    Quoi qu'il en soit, si tes formulaires ont les mêmes boutons (ou à tout le moins que tu veux modifier par proc des boutons qui se trouvent sur chaque formulaire, tu peux utiliser une procédure publique à laquelle tu passes le formulaire en paramètre, et tu remplaces alors le ME par l'objet formulaire.

    Mais j'avoue que j'ai des difficultés à comprendre la finalité, sans voir la structure et le fonctionnement de ta base

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 31
    Points : 29
    Points
    29
    Par défaut
    Je vais essayer d'être un peu plus clair (c'est pas mon fort)

    Les 12 boutons correspondent à 12 activités distinctes de mon atelier.
    Par défaut lorsqu'une nouvelle pièce arrive, tous les boutons sont en fond rouge (en gros, on a encore rien glandé et on va pas tarder à se faire taper sur les doigts)

    Dès que la première activité a démarré, le bouton lui correspondant change de couleur.
    Ici on voit que la première activité a été entierement réalisée (je suis dans le formulaire de la première étape). Tous les champs ont été renseignés et le bouton correspondant est passé en fond vert (les autres restent en rouge car rien n'a été fait plus loin) :

    Ensuite, je passe à l'étape suivante et je démarre l'activité (seuls les champs de gauche sont remplis). L'activité étant démarrée, le bouton associé passe en bleu :

    Le cycle de fabrication continue ainsi. L'avantage de ce principe, c'est qu'en cherchant le n° de ma pièce dans n'importe quel formulaire, je connait immédiatement son état de réalisation.

    Au niveau Access, j'ai utilisé la base d'un formulaire avec tous ses boutons et les macros permettant la navigation et la colorisation que j'ai recopié autant de fois que j'avais d'étapes disctinctes (mes 12 étapes correspondant à mes 12 formulaires).
    J'ai réussi à créer des fonctions publiques pour la navigation, mais je bloque pour la colorisation.
    J'ai donc environ 150 lignes de code que je répète dans chaque formulaire. Alors certes ma méthode fonctionne, mais je la trouve un peu "bourrine".

    Peux-tu STP me donner un exemple de ton astuce de remplacement de Me ?

    Merci !

Discussions similaires

  1. [AC-2010] Fonction recherche d'une entrée dans plusieurs formulaires
    Par kinine dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/01/2013, 20h56
  2. Réponses: 2
    Dernier message: 08/01/2007, 10h01
  3. Réponses: 21
    Dernier message: 29/11/2006, 23h51
  4. [C# 1.1] Fonction appelée dans plusieurs classes
    Par fregolo52 dans le forum C#
    Réponses: 1
    Dernier message: 25/10/2006, 10h36
  5. Plot fonction surf dans plusieurs plans
    Par AppleGuy dans le forum MATLAB
    Réponses: 2
    Dernier message: 30/06/2006, 18h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo