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 :

Mise à jour du ruban sans onloadribbon


Sujet :

IHM

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 126
    Points : 105
    Points
    105
    Par défaut Mise à jour du ruban sans onloadribbon
    Slt, comme dans l'intitulé, je veus mettre à jour un ruban perso par du code dont le code xml n'a pas onloadribbon.
    Voici le code XML:
    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
    <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
      <ribbon startFromScratch="true">
        <tabs>
          <tab id="tab0" label="Access 2010 Tab"> 
            <group id="grp0" autoScale="false" centerVertically="false" label="Access 2010 Ribbon"> 
              <button id="btnInfo" size="normal" label="Info" imageMso="Info" onAction="OnActionButton" />
    				<button id="btn2_1_1" size="large" getLabel="GetLabel" getEnabled="GetEnabled" imageMso="ReviewAcceptChange" onAction="OnActionButton" />
    				<button id="btn2_1_2" size="large" getLabel="GetLabel" getEnabled="GetEnabled" imageMso="QueryShowTable" onAction="OnActionButton" />
    				<button id="btn2_1_4" size="large" getLabel="GetLabel" getEnabled="GetEnabled" imageMso="ChartTrendline" onAction="OnActionButton" />
     
            </group>
          </tab>
        </tabs>
      </ribbon>
    </customUI>

    J'utilise deux fonctions pour lancé Ce XML
    1ère Function:
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    Function fnc_GetRibbon(lngVersion As Long) As String
     
    ' ************************************************************
    ' Erstellt von     : avenius
    ' Parameter        :
    ' Rückgabe         : String
    ' Erstellungsdatum : Mittwoch, 1 Aug 2012
    ' Bemerkungen      :
    ' Änderungen       :
    '
    ' **************** Created by IDBE Tools 2010 ****************
     
    Dim strProcName As String
    strProcName = "fnc_GetRibbon"
     
    On Error GoTo fnc_GetRibbon_Err
     
    Dim dbs As DAO.Database
    Dim rst As DAO.Recordset
     
    Set dbs = CurrentDb()
     
    Dim AfficheRibbon As Boolean
        AfficheRibbon = DLookup("DetectShift", "tblStartup", "boutonFonctions='" & "AfficheRibbon" & "'")
     
    If AfficheRibbon = True Then
    Select Case lngVersion
        Case 12
            Set rst = dbs.OpenRecordset("SELECT * FROM USysRibbons WHERE RibbonName='A2007'", dbOpenDynaset)
        Case 15
            Set rst = dbs.OpenRecordset("SELECT * FROM USysRibbons WHERE RibbonName='A2010'", dbOpenDynaset)
        Case Else
            Set rst = dbs.OpenRecordset("SELECT * FROM USysRibbons WHERE RibbonName='Default'", dbOpenDynaset)
    End Select
    Else
            Set rst = dbs.OpenRecordset("SELECT * FROM USysRibbons WHERE RibbonName='Default'", dbOpenDynaset)
    End If
    rst.MoveFirst
    fnc_GetRibbon = rst.Fields("RibbonXml")
     
    fnc_GetRibbon_Exit:
        rst.Close
        Set rst = Nothing
        Set dbs = Nothing
        Exit Function
     
    fnc_GetRibbon_Err:
        Select Case Err
            'Case IhreFehlernummer
     
                'Resume fnc_GetRibbon_Exit
            Case Else
                MsgBox "Es ist ein Fehler aufgetreten." & vbCrLf & vbCrLf & _
                "In Function:" & vbTab & strProcName & vbCrLf & _
                "Fehlernummer: " & vbTab & Err.Number & vbCrLf & _
                "Beschreibung: " & vbTab & Err.description, vbCritical, _
                "Fehler in " & Chr$(34) & strProcName & Chr$(34)
                Resume fnc_GetRibbon_Exit
        End Select
     
    End Function


    2ème Function:
    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
    Public Function fnc_LoadRibbon()
     
    Dim strProcName As String
    strProcName = "fnc_LoadRibbon"
     
    On Error GoTo fnc_LoadRibbon_Err
    Application.LoadCustomUI "DBRibbon", fnc_GetRibbon(Left(Application.Version, 2))
     
    strImageMso = "FilePrepareMenu"
    gValide = "SaveAttachments"
    gEdibox = ""
    gDocNom = "Ouvrir un fichier"
    gSomme = "0 GNF"
    GetDossierEnabled = False
     
    fnc_LoadRibbon_Exit:
        Exit Function
     
    fnc_LoadRibbon_Err:
        Select Case Err
            'Case IhreFehlernummer
     
                'Resume fnc_LoadRibbon_Exit
            Case Else
                MsgBox "Es ist ein Fehler aufgetreten." & vbCrLf & vbCrLf & _
                "In Function:" & vbTab & strProcName & vbCrLf & _
                "Fehlernummer: " & vbTab & Err.Number & vbCrLf & _
                "Beschreibung: " & vbTab & Err.description, vbCritical, _
                "Fehler in " & Chr$(34) & strProcName & Chr$(34)
                Resume fnc_LoadRibbon_Exit
        End Select
     
    End Function
    Déclaration des variables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public gobjRibbon As IRibbonUI
    Public strImageMso     As String
    Public gEdibox         As String
    Public gSomme          As String
    Public gDocNom         As String
    Public gValide         As String
    Public GetDossierEnabled As Boolean
    Public Sub OnRibbonLoad(ribbon As IRibbonUI)
        Set gobjRibbon = ribbon
    End Sub
    et une macro autoexec qui exécute la fonction "fnc_LoadRibbon"
    Quand je clique sur btnInfo, je veux mettre à jour le "btn2_1_1"
    mais il y a toujour une erreur, comment remedié.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 259
    Points
    34 259
    Par défaut
    Bonjour;

    pour mettre à jour un bouton,; il faut passer par InvalidateControl en partant de l'objet Ruban.

    N'as-tu pas la possibilité d'avoir un onload ?

    il te suffit de modifier la premiere ligne de ton ruban par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="objRuban">
    Comme cela tu peux utiliser une variable de type IRibbonUI
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Ruban As IRibbonUI
     
    Public Sub objRuban(Ribbon As IRibbonUI)
        Set Ruban = Ribbon
    End Sub
    et de mettre à jour ensuite avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ruban.InvalidateControl "btn2_1_1"
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 126
    Points : 105
    Points
    105
    Par défaut
    salut, J'ai une table "tblStartup" dans lequel il y a "AfficheRibbon" et une case à coché.
    Au démarrage de l'application une fois que cette case est coché on affiche le ribbon perso sinon on affiche le ruban par défaut d'access.
    je cherche à mettre à jour quelques boutons avec cette méthode que je l'ai dit dans la discussion précédente.
    Voila l'idée, je vous joint en même temps le fichier exemple.
    Merci.
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [AC-2007] Mise à jour du ruban
    Par marycaLou dans le forum IHM
    Réponses: 6
    Dernier message: 28/10/2013, 00h33
  2. [AC-2010] Requête Action Mise à jour des données sans doublons
    Par macakou99 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 12/09/2012, 17h07
  3. Mise à jour des données sans réexécution
    Par nouraty dans le forum JSF
    Réponses: 6
    Dernier message: 25/07/2012, 10h04
  4. Mise à jour projet web sans compiler
    Par PNL dans le forum Développement Web en Java
    Réponses: 4
    Dernier message: 16/01/2009, 17h36
  5. [mise à jour]Comment procéder sans tout péter...
    Par FFF dans le forum Installation
    Réponses: 3
    Dernier message: 10/09/2003, 08h11

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