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

IHM Discussion :

[VBA]mettre en arrière plan un controle en code vba


Sujet :

IHM

  1. #1
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    183
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 183
    Points : 76
    Points
    76
    Par défaut [VBA]mettre en arrière plan un controle en code vba
    Bonjour,

    connaissez-vous le code vba pour faire tout simplement "format" "mettre en arrière plan" un controle?


    Merci

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    Le formulaire étant ouvert en mode création et le contrôle concerné étant sélectiionné, tu peux essayer une commande d'interface
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunCommand acCmdSendToBack
    Bon courage,

    PGZ

  3. #3
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 128
    Points : 12 185
    Points
    12 185
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    La méthode ZOrder ne fonctionne pas avec Access.
    Mais s'il s'agit de contrôles "Textboxes", le fait de donner le Focus suffit à le placer au premier plan même s'ils sont superposés...
    Sinon, tu peux jouer avec la propriété Visible dynamiquement.

    Argy

  4. #4
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    183
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 183
    Points : 76
    Points
    76
    Par défaut
    Merci pour vos réponses:

    j'ai essayé DoCmd.RunCommand acCmdSendToBack
    ave cun fomrulaire en mode création
    mais ça m'écrit la commande ou l'action 'placerarrièreplan' n'est pas disponible pour le moment.

    Avez-vous une idée?

    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    'boite
    Set ctlboite = CreateControl("frm_tableau", acRectangle, , "", "", _
    entDonnéeX, entDonnéeY)
        ctlboite.name = name
        ctlboite.BackStyle = 1
        ctlboite.BorderStyle = 1
        ctlboite.BorderColor = "13936755"
        ctlboite.BackColor = "15590879"
        ctlboite.Width = 8400
       'ctlboite.Height = nb * 1000
         ctlboite.Height = hauteur
         'en arrière plan

  5. #5
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 128
    Points : 12 185
    Points
    12 185
    Billets dans le blog
    5
    Par défaut
    Je ne savais pas que c'était en mode Design... Il fallait préciser
    DoCmd.RunCommand acCmdSendToBack ne marche que si le contrôle est sélectionné.

    Utilise alors la Propriété .InSelection dans ton code.

    Argy

  6. #6
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    183
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 183
    Points : 76
    Points
    76
    Par défaut
    Merci!

    J'ai selectionné mon controle et mis
    DoCmd.RunCommand acCmdSendToBack mais ça m'affiche que la commande n'est pas disponible poour le moment

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Set ctlboite = CreateControl("frm_tableau", acRectangle, , "", "", _
    entDonnéeX, entDonnéeY)
        ctlboite.name = name
        ctlboite.BackStyle = 1
        ctlboite.BorderStyle = 1
        ctlboite.BorderColor = "13936755"
        ctlboite.BackColor = "15590879"
        ctlboite.Width = 8400
       'ctlboite.Height = nb * 1000
         ctlboite.Height = hauteur
         'en arrière plan
         ctlboite.InSelection = True
    DoCmd.RunCommand acCmdSendToBack

  7. #7
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    183
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 183
    Points : 76
    Points
    76
    Par défaut
    J'ai essayé de mettre le code après l'ouverture d'un formulaire.
    Mais ça ne marche pas.

    Savez-vous où je devrais plutot le mettre?
    Merci

  8. #8
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 128
    Points : 12 185
    Points
    12 185
    Billets dans le blog
    5
    Par défaut
    DoCmd.RunCommand acCmdSendToBack ne marche pas en mode pas à pas...
    Dommage pour tes essais.

    Argy

  9. #9
    seb92400
    Invité(e)
    Par défaut
    Juste pour info, histoire que tout le monde comprenne (et surtout moi )... Ca sert à quoi de mettre un contrôle en arrière plan en mode design ??

  10. #10
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 128
    Points : 12 185
    Points
    12 185
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par noawsen
    Juste pour info, histoire que tout le monde comprenne (et surtout moi )... Ca sert à quoi de mettre un contrôle en arrière plan en mode design ??
    Quand tu construits un formulaire, tu peux très bien avoir besoin de poser certains contrôles en arrière-plan comme des Rectangle ou des Images.
    Le mode création est le mode requis pour utiliser CreateControl.

    Argy

  11. #11
    seb92400
    Invité(e)
    Par défaut
    Ahhhh... Que suis-je bête... J'avais imaginé totalement autre chose en lisant ce post...

    En tout cas, MERCI !

  12. #12
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    183
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 183
    Points : 76
    Points
    76
    Par défaut
    tout d'abord tu as une très jolie pahe web argyronet! j'adore!
    sinon concernant ce post j, que ce soit en pas à pas ou sans ça me met toujours la même erreur...ou peut-être ai-je mal compris ta remarque?

    peux-tu me la clarifier?

    Merci

  13. #13
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 128
    Points : 12 185
    Points
    12 185
    Billets dans le blog
    5
    Par défaut
    Mmmm,
    Bon, je viens d'ecrire ce code sur le pouce et il marche très bien donc je pense que tu as omis quelque chose...

    Option Compare Database
    Option Explicit

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    Private Sub cmdTestCreateControl_Click()
    Const FORM_NAME = "frmTest"
    Dim oCTL As Control
     
      DoCmd.OpenForm FORM_NAME, acDesign
     
      Set oCTL = CreateControl(FORM_NAME, acRectangle, , "", "", 150, 50)
        With oCTL
          .Name = "shpBack"
          .BackStyle = 1
          .BorderStyle = 1
          .BackColor = 255
          .Top = 500
          .Width = 3000
          .Height = 2500
          .InSelection = True
        End With
        DoCmd.RunCommand acCmdSendToBack
        Set oCTL = Nothing
        DoCmd.Close acForm, FORM_NAME, acSaveYes
        DoCmd.OpenForm FORM_NAME, acDesign
     
      Set oCTL = CreateControl(FORM_NAME, acRectangle, , "", "", 500, 25)
        With oCTL
          .Name = "shpFront"
          .BackStyle = 1
          .BackColor = 65535
          .BorderStyle = 1
          .Width = 2000
          .Height = 2000
          .InSelection = True
        End With
        DoCmd.RunCommand acCmdBringToFront
        Set oCTL = Nothing
        DoEvents
        MsgBox "Terminé !"
    End Sub
    Argy

  14. #14
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    183
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 183
    Points : 76
    Points
    76
    Par défaut
    Merci bcp argy!

    j'ai rajouté doevents et ça marché!

    et encore très belle page flash

  15. #15
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 128
    Points : 12 185
    Points
    12 185
    Billets dans le blog
    5
    Par défaut
    Ce n'est du flash...

    Content de t'avoir aidé.

    Argy

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

Discussions similaires

  1. Comment mettre un arrière plan à un email ?
    Par msuire dans le forum Web & réseau
    Réponses: 2
    Dernier message: 29/10/2007, 13h28
  2. Mettre en arrière-plan un clip créé dynamiquement
    Par vince3147 dans le forum Flash
    Réponses: 3
    Dernier message: 05/09/2007, 11h41
  3. Réponses: 1
    Dernier message: 22/05/2007, 17h03
  4. mettre en arriére plan
    Par souadmaa dans le forum Delphi
    Réponses: 2
    Dernier message: 09/01/2007, 15h04
  5. [VBA] Mettre au premier plan par VBA?
    Par Caroline1 dans le forum Access
    Réponses: 9
    Dernier message: 02/05/2006, 23h49

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