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 :

Planning hebdomadaire colorisation


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 23
    Points : 12
    Points
    12
    Par défaut Planning hebdomadaire colorisation
    Bonjour,

    J'ai créé une base access pour gérer des rendez-vous dans un planning, en utilisant le planning hedomadaire "Agenda d'entreprise" de l'excellent User (que je salue et remercie grandement au passage pour ses explications très claires pour le modeste initié VBA que je suis).

    Le planning initial couvrait la plage horaire journalière 8:00/20:00 que j'ai dû étendre pour des raisons pratiques à 7:00/22:00. Pour cela, j'ai ajouté un certain nombre de lignes supplémentaires dans le formulaire planning et modifié en conséquence les codes VBA qui s'y rapportent.

    Tout fonctionne correctement à la prise des rendez-vous, tant que leur plage ne franchit pas les 20:00 et 21:00. Plus exactement, la colorisation du rendez-vous qui dépasserait ces heures précises stoppe net. Pour être encore plus clair, un rendez-vous pris par exemple de 19:00 à 21:00 (bien que pris en compte) colorise uniquement la plage 19:00 à 20:00. Par contre, un rendez-vous pris de 20:00 à 21:00 colorise correctement. En gros, la colorisation se heurte aux heures entières que j'ai ajoutées, elle ne les franchit pas.

    Je suppose qu'un des paramètres du codage doit être modifié, mais malgré maintes relectures, je ne vois pas lequel jouerait ce rôle.

    J'ai reproduit ce phénomène dans la base exemple "Agenda d'entreprise" que j'avais téléchargé. S'il faut vous la transmettre, je le ferai volontiers.

    A votre disposition pour tout renseignement complémentaire et merci d'avance de m'avoir lu,

    Cordialement,

    Gamberge

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 269
    Points : 19 441
    Points
    19 441
    Billets dans le blog
    63
    Par défaut
    Bonjour et merci,

    Je crois comprendre votre souci :

    Les tranches horaires de "19:00-20:00" se glissent sous les tranches "20:00-21:00", car les tranches "20:00-21:00" ont été crées après les tranches "19:00-20:00" :

    Nom : agenda.jpg
Affichages : 351
Taille : 134,5 Ko

    Pour que les labels "19:00-20:00" viennent se positionner par dessus les labels "20:00-21:00" quand ils s'agrandissent en hauteur, ils faut que les labels "20:00-21:00" soient créés avant les labels "19:00-20:00".

    Une solution serait de couper-coller tous les labels de "08:00-20-00", comme cela ils seraient recréés après les labels "20:00-21:00".

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    Bonjour User,

    Magnifique, vous avez très bien compris et votre solution fonctionne parfaitement, bravo et merci pour la réactivité !

    Et puisque j'ai le privilège d'être dépanné par le concepteur en personne, je tente une deuxième question :

    Dans votre base "Agenda", vous utilisiez un système très sophistiqué (enfin, pour moi) pour coloriser les labels en fonction du type de Rendez-vous. Dans mon cas, je préférerais que la couleur des labels dépendent plutôt du nom des clients. Exemple : les RV avec MARTIN se colorisent en rouge et ceux avec DURAND en bleu. Je pensais m'inspirer évidemment de votre méthode mais pour ne pas faire fausse route :

    - Est-il préférable de repartir de zéro ? Plus sûr de partir de vos tables et vos codes en les adaptant à ma situation ? ou auriez-vous une piste pour une solution disons plus simpliste ?

    Cordialement,

    Gamberge

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 269
    Points : 19 441
    Points
    19 441
    Billets dans le blog
    63
    Par défaut
    Rebonjour,

    Comme on dit "les goûts et les couleurs..".

    Mais c'est pas compliqué à adapter :

    i) - Créer un champ supplémentaire nommé "Couleur" dans la table T_Client de type entier long.

    ii) - Insérer ce champ sur le formulaire "F_Client" en mode création.

    iii) - Mettre du code dans le module de ce formulaire F_Client, pour modifier le code couleur en double-cliquant sur la zone de texte "Couleur" lié au champ "Couleur" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Couleur_DblClick(Cancel As Integer)
    Dim NewColor As Long
     
        NewColor = aDialogColor(Me("Couleur").BackColor)  ' Appel la boîte de dialogue pour choisir la couleur sur la palette
        If NewColor <> -1 Then
            Me("Couleur").BackColor = NewColor ' Colorie la zone de texte avec la couleur choisie
            Me("Couleur").Value = NewColor ' Mise à jour du champ
        End If
     
    End Sub
    iv) - Toujours sur le formulaire F_Client mettre du code sur activation pour mettre à jour la couleur de la zone de texte en fonction du code enregistré :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Form_Current()
    Me!NC = Me!NumE
    Me("Couleur").BackColor = Nz(Me("Couleur").Value, vbWhite) ' Mise à jour de la couleur
     
    End Sub
    v) - Enfin, modifier la requête R_RendezVous pour y insérer le champ Couleur de la table T_Client :


    Nom : r_rendezvous.jpg
Affichages : 331
Taille : 75,1 Ko

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    Alors là, un grand merci User, un jeu d'enfant ou presque quand la procédure est parfaitement expliquée et mâchée.

    Pour être précis, dans mon application, avant de commencer la procédure, j'ai pensé qu'il valait mieux supprimer tous les codes se rapportant aux couleurs des types de rendez-vous pour éviter les interférences.

    Mais en final, lorsque je validais le RV de n'importe quel client, les labels se colorisaient tous en noir (?).

    Alors j'ai récupéré (un peu au pif, j'avoue, même si ce code me parlait) dans votre appli le bout de code supplémentaire qui suit, que j'ai inséré dans Public Sub MajPlanning() juste après le Do While Not (RsPL.EOF) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
          If Not IsNull(RsPL!Couleur) Then
             Color = RsPL!Couleur ' définit la couleur du label.
     
          Else
             Color = vbWhite
     
          End If
    et là les labels se sont colorisés à la bonne couleur (pour moi, comme par enchantement).

    Vous en voyez certainement la raison ?

    En tous cas, encore merci pour le temps passé sur mes problèmes de néophyte.

    Cordialement,

    Gamberge

  6. #6
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 269
    Points : 19 441
    Points
    19 441
    Billets dans le blog
    63
    Par défaut
    Pour ma part je n'ai rien supprimé, si ce n'est la référence au champ couleur de la table T_CouleurRdv, dans la requête R_RendezVous.

    Donc, c'est la seule chose à supprimer, ensuite, bien sûr vous pouvez supprimer le formulaire de paramétrage des couleurs puisque vous ne passez plus par ce paramétrage.
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. planning hebdomadaire d'ecole
    Par smailhop dans le forum Windows Forms
    Réponses: 5
    Dernier message: 14/10/2009, 02h24
  2. Planning Hebdomadaire : couleur de remplissage
    Par Thomas_73 dans le forum Excel
    Réponses: 3
    Dernier message: 19/03/2009, 09h42
  3. Planning hebdomadaire d'entrainement
    Par alainGL dans le forum IHM
    Réponses: 2
    Dernier message: 21/03/2008, 11h08
  4. Réponses: 1
    Dernier message: 08/02/2007, 08h26

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