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 :

Barre d'outils en VBA Access 2003


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 9
    Points : 9
    Points
    9
    Par défaut Barre d'outils en VBA Access 2003
    Bonjour,

    Je suis formatrice en bureautique dans une école et j'ai installée une application Access sur des postes du réseau. Je dois pouvoir créer automatiquement une barre d'outils comprenant deux boutons qui seront associées à deux petites macros.

    Je ne fais pas de développement mais je suis obligée d'utiliser le VBA pour cette action. Voici la syntaxe mise en œuvre. Pourriez-vous y jeter un coup d'œil et m'aider à rectifier cette syntaxe. J'obtiens la barre d'outils mais je n'arrive pas a avoir le texte des boutons, je n'ai que les info-bulles.


    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
    Set cmb = Application.CommandBars.Add("FILTRE4", , False)
    'Syntaxe suivante ne passe pas lors de l'exécution du code, bloque sur msoControlButton :
    Set btn = cmb.Controls.Add(msoControlButton)
     
    With btn
        .begingroup = True
        .Caption = "Modifier le filtre"
        .Style = msoButtonCaption
    End With
     
    Set btn = cmb.Controls.Add(msoControlButton)
    With btn
        .begingroup = True
        .Caption = "Appliquer le filtre"
        .Style = msoButtonCaption
     
    End With
    cmb.Visible = True
    Application.CommandBars("FILTRE4").Controls(1).onaction = "MODIFIER FILTRE"
    Application.CommandBars("FILTRE4").Controls(2).onaction = "APPLIQUER FILTRE"
    Merci par avance pour votre aide, car je désespère un peu et n'arrive pas à terminer cette application pour cela !

    Cordialement

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour et bienvenue sur le forum Office de DVP

    Je trouve bizarre que tu n'ais pas le texte, car tu utilises le bon style (msoButtonCaption) pour tes boutons de barre d'outils.

    A première vu ton code me semble correct.

    Que se passe-t-il si tu utilises le style : msoButtonIconAndCaption ?

    Edit : Je viens de tester ton code sur Access 2002, il fonctionne parfaitement, et il n'y a pas de raison que cela ne fonctionne pas sous Access 2003.

    Comment as-tu déclaré cmb et btn ?
    Est-ce comme cela ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim cmb As Office.CommandBar
    Dim btn As Office.CommandBarButton
    Philippe

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 9
    Points : 9
    Points
    9
    Par défaut BARRE D'OUTILS VBA ACCESS
    Bonjour Philippe,

    Merci pour ta réponse. Voici la syntaxe complète. En fait, comme je veux attacher ce code à un bouton, je l'ai mis dans les procédures évènementielles et je me retrouve en Private sub. J'ai désactivée les deux syntaxes de déclaration car je n'arrivais pas à avancer. Ne te moques pas, je sais que pour toi cela va te faire hurler de rire !

    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
    Private Sub Commande1_Click()
    'Syntaxe désactivée :
    'cmb As office.commandbar
    'btn As office.CommandBarbutton
     
    On Error GoTo Erreur
    'Afficher la barre d'outils
    Application.CommandBars("FILTRES").Visible = True
    Exit Sub
     
    'Création de la barre d'outils
    Erreur:
     
    Set cmb = Application.CommandBars.Add("FILTRE4", , False)
    Set btn = cmb.Controls.Add()
    With btn
        .begingroup = True
        .Caption = "Modifier le filtre"
        .Style = msoButtonIconAndCaption
    End With
     
    Set btn = cmb.Controls.Add()
    With btn
        .begingroup = True
        .Caption = "Appliquer le filtre"
        .Style = msoButtonIconAndCaption
     
    End With
    cmb.Visible = True
    Application.CommandBars("FILTRE4").Controls(1).onaction = "MODIFIER FILTRE"
    Application.CommandBars("FILTRE4").Controls(2).onaction = "APPLIQUER FILTRE"
     
    End Sub

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re

    Ne te moques pas, je sais que pour toi cela va te faire hurler de rire !
    Je ne me moque jamais, quand les membres suivent les conseils et cherchent vraiment à apprendre.

    Bon, colle tout ton code dans une routine d'un module standard, mets la déclaration des deux variables objets comme le l'ai mis.

    Ensuite, sur le click de ton bouton, lance la procédure (avec Call).

    Philippe

  5. #5
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 9
    Points : 9
    Points
    9
    Par défaut BARRE OUTILS ACCESS 2003
    Merci pour ta réponse!
    Je pars en cours car je vais finir par être en retard
    Je continue ce soir
    bonne journée

  6. #6
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 9
    Points : 9
    Points
    9
    Par défaut PB SUR VBA ACCESS 2003
    bonjour Philippe,

    Je me remets à mon appli. J'ai tranféré le code sur un module et mis en procédure évènementielle avec un Call + le nom défini pour le code.

    Quand cela se lance, ça bloque sur les déclarations et met le message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Erreur de compilation : Type défini par l'utilisateur non défini
    Je te mets en pièce jointe une mini base Access comprenant uniquement le module et le formulaire de test. J'ai donc encore besoin de ta science.

    Merci par avance
    Lulu
    Fichiers attachés Fichiers attachés

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

    Dans l'éditeur VB, dans le menu Outil/référence, il faut cocher la référence Microsoft Office XX.0 Object Library

    Avec le XX la version d'Access, la 11 pour Access 2003, et cela fonctionne, je viens de le tester sur Access 2007, l'autre jour sur Access 2002 aussi, donc Access 2003 pas de soucis.

    Philippe

  8. #8
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 9
    Points : 9
    Points
    9
    Par défaut MERCI A TOI PB REGLE
    Ca marche Philippe,

    Merci beaucoup d'avoir passé du temps à m'aider et je te souhaite un excellent week-end. Félicitations pour ta compétence doublée d'une disponibilité extra!

    Bises pour tout cà
    Lulu

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

Discussions similaires

  1. Menu et barre d'outils au look Office 2003
    Par usmarshall dans le forum Composants VCL
    Réponses: 6
    Dernier message: 08/02/2008, 01h32
  2. Réponses: 0
    Dernier message: 19/12/2007, 12h53
  3. Réponses: 2
    Dernier message: 21/07/2006, 18h05
  4. Réponses: 12
    Dernier message: 10/06/2006, 19h07
  5. Aide pour cde vba Access (2003)
    Par alpha88 dans le forum Access
    Réponses: 1
    Dernier message: 05/04/2006, 11h14

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