1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2014
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : juin 2014
    Messages : 75
    Points : 53
    Points
    53

    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
    Developpeur VBA migrant tranquillement vers C# et VB.Net =]
    Inscrit en
    juillet 2007
    Messages
    12 139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Developpeur VBA migrant tranquillement vers C# et VB.Net =]
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2007
    Messages : 12 139
    Points : 26 842
    Points
    26 842

    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"
    Pas de question technique par MP, je ne réponds pas

    Apprendre à programmer avec Access 2016

    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 du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2014
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : juin 2014
    Messages : 75
    Points : 53
    Points
    53

    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