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 :

Génération de rectangles par VBA sous ACCESS 2000


Sujet :

VBA Access

  1. #1
    Membre régulier Avatar de keketteboy
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2008
    Messages : 100
    Points : 73
    Points
    73
    Par défaut Génération de rectangles par VBA sous ACCESS 2000
    Bonjour,

    Je suis sous ACCESS 2000, et j'aimerais pouvoir créer des rectangles qui seront coloriés par la suite mais tout ça en passant par du code VBA sans avoir à le dessiner à la main car je dois générer un nombre assez conséquent de rectangles donc les dessiner tous à la main serait une trop grande perte de temps (il y en a 365 x 3 à faire), les 365 rectangles doivent être générés les uns à la suite des autres puis se colorier en fonction de paramètres que je rentrerai par la suite.
    Quelqu'un pourrait-il me dire si c'est possible ou dois-je me taper toute la création à la main?

    Merci d'avance.

  2. #2
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Bonjour......

    Est-ce que tes 365 rectangles seront visibles tous en même temps..

    Car tu peux très bien "créer" en "dur" tes 3 x 365 rectangles avec leur propriété Visible = non et les afficher (les rendre visible) à la demande.

    Sinon, en fonction de ce que tu souhaite faire, tu peux envisager la création "dynamique" de ton formulaire et des rectangles necessaires...

    Un peu plus de précision serait bienvenue.....

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Heu petit problème, Access (du moins la version 2002) n'accepte que 754 contrôles dans un formulaire, hors 365*3 = 1095.

    Problème, revoit ce que tu veux faire.

    Starec

  4. #4
    Membre régulier Avatar de keketteboy
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2008
    Messages : 100
    Points : 73
    Points
    73
    Par défaut Quelques précisions
    Bonjour et merci de vous intéresser à mon cas.

    Je souhaiterais, en fait, faire une sorte de planification sous ACCESS : pour un produit, j'ai 3 types de tests {test01, test02, test03} à réaliser à une certaine fréquence dans l'année, respectivement {n, m, p} fois. Donc pour visualiser l'avancée des tests, je dois voir une ligne de rectangles représentant les jours de l'année (d'où les 365 carrés). C'est pourquoi je souhaiterais pouvoir générer par le code VBA tous les rectangles car ils devront être coloriés en fonction du nombre de tests à faire.

    Sinon je voulais savoir si le fait d'utiliser les sous-formulaires réglait le problème du nombre de contrôles d'ACCESS, par exemple, comme sur l'image jointe, plutôt que de mettre la barre des 3 tests sur le même formulaire, découper chaque ligne (donc les 365 contrôles) dans un sous-formulaire, ainsi j'aurai bien mes 3 x 365 contrôles mais répartis dans 3 sous-formulaires différents compris dans un formulaire qui regrouperait les 3 autres.

    Si cela ne marche pas,je ne raisonnerai plus par jours mais par semaines ainsi je n'aurais que 52 x 3 = 156 rectangles à générer pour un produit.

    Légende de la figure : les couleurs importent peu, c'est seulement pour dire qu'on est dans une autre période donc on a un test par couleur, par exemple, pour le test01, il y a 4 couleurs différentes donc 4 test01 à réaliser, et ainsi de suite.

    Petit récapitulatif de mes problèmes :
    1) Utiliser des sous-formulaires me permet-il de dépasser la limite du nombre de contrôles imposé par ACCESS 2000 ?
    2) Comment générer par code VBA ces rectangles afin de leur affecter un numéro (n° rectangle = n° jour) ?
    3) Comment colorier ces rectangles par code VBA ?

    Merci encore une fois de bien vouloir me consacrer du temps.
    Images attachées Images attachées  

  5. #5
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 920
    Points : 4 828
    Points
    4 828
    Par défaut
    Si tu peux n'afficher que par semestre ça peut être une application de cet exemple de planning
    http://www.developpez.net/forums/sho...d.php?t=281969

    Et par la suite, si j'étais toi j'envisagerais une autre @ mail ...

  6. #6
    Membre régulier Avatar de keketteboy
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2008
    Messages : 100
    Points : 73
    Points
    73
    Par défaut Excuses
    Désolé pour le pseudo mais rien à voir avec la connotation qu'on pourrait lui prêter. Sinon, la visualisation se fait forcément sur une année et non sur un semestre et ce détail est assez important. Mais merci quand même.

  7. #7
    Membre régulier Avatar de keketteboy
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2008
    Messages : 100
    Points : 73
    Points
    73
    Par défaut
    J'ai résolu au moins une de mes 3 questions : on peut effectivement régler le problème de la limite du nombre de contrôles par des sous-formulaires : je mets chacun des types de tests dans un sous-formulaire du coup ça me donne 365 x 3 contrôles mais répartis dans 3 sous-formulaires contenus dans un formulaire ... maintenant, reste le problème de les générer par le code VBA et non à la main, puis de les colorier par code, toujours.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Regarde dans l'aide VB du coté de CreateControl

    Starec.

  9. #9
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 917
    Points
    281 917
    Par défaut idée pour créer les rectangles
    Si le formulaire s'appelle "Formulaire1" et que l'on a dessiné un rectangle "modèle" appelé "1" dans la section "Détail", la fonction suivante va juxtaposer 364 rectangles identiques à la droite du rectangle "modèle"
    Ces rectangles seront appelés 2,3 ... (sans doute pratique pour la suite)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Sub créerRectangle()
    Dim R  As Control
    Dim i As Integer
    For i = 2 To 364
     
    Set R = CreateControl("Formulaire1", acRectangle, , , , _
        Forms!Formulaire1("1").Left + (i - 1) * Forms!Formulaire1("1").Width, Forms!Formulaire1("1").Top, Forms!Formulaire1("1").Width, Forms!Formulaire1("1").Height)
    R.Name = i
    Next i
    End Sub
    Remarque : avant d'exécuter, il faut ouvrir "Formulaire1" en mode création.

  10. #10
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 917
    Points
    281 917
    Par défaut idée pour colorier
    Dans le même contexte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Public Sub ColorierLesRectangles()
    Dim R  As Control
    Dim i As Integer
    For i = 1 To 3
    Forms.Formulaire1("" & i & "").BackColor = vbBlack
    Forms.Formulaire1("" & i & "").BackStyle = 1
    Next i
    For i = 4 To 6
    Forms.Formulaire1("" & i & "").BackColor = vbYellow
    Forms.Formulaire1("" & i & "").BackStyle = 1
    Next i
    For i = 7 To 9
    Forms.Formulaire1("" & i & "").BackColor = vbRed
    Forms.Formulaire1("" & i & "").BackStyle = 1
    Next i
    'NB sans doute un test belge!
    End Sub

  11. #11
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 917
    Points
    281 917
    Par défaut un variante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Public Sub ColorierLesRectanglesVariante()
    Dim R  As Control
    For Each R In Forms.Formulaire1.Controls
      Select Case R.Name
        Case 1 To 3
        R.BackColor = vbBlue
        R.BackStyle = 1
        Case 4 To 6
        R.BackColor = vbWhite
        R.BackStyle = 1
        Case 7 To 9
        R.BackColor = vbRed
        R.BackStyle = 1
      End Select
    Next R
    MsgBox "Allons enfants ...", vbExclamation, "Claude Joseph Rouget de Lisle"
    End Sub
    Remarque : le formulaire doit être ouvert

  12. #12
    Membre régulier Avatar de keketteboy
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2008
    Messages : 100
    Points : 73
    Points
    73
    Par défaut Remerciements !!
    Merci beaucoup à tous !!! Vous m'avez enlevé une grosse épine du pied !!
    Developpez.com, c'est vraiment le meilleur site d'entraide sur internet !!

  13. #13
    Membre à l'essai
    Inscrit en
    Juillet 2008
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 28
    Points : 21
    Points
    21
    Par défaut
    Bonjour,

    J'essaye de dessiner les rectangles avec le code au-dessus. Mais comment éxécuter du code en mode Création ?

  14. #14
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 920
    Points : 4 828
    Points
    4 828
    Par défaut
    Bonjour,
    Si c'est pour débugger : tu peux vérifier des variables ou des fonctions dans la fenêtre Exécuter du VBE. Il y a de bons tutos sur ce site.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 23/12/2015, 11h54
  2. Executer et/ou ouvrir un fichier en VBA sous access 2000
    Par Access_ible dans le forum VBA Access
    Réponses: 10
    Dernier message: 01/09/2009, 11h36
  3. Réponses: 1
    Dernier message: 27/05/2008, 18h43
  4. Réponses: 2
    Dernier message: 14/09/2007, 08h44
  5. Réponses: 1
    Dernier message: 23/11/2005, 11h06

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