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 :

[Ruban] Réinitialiser les valeurs de certains éléments


Sujet :

VBA Access

  1. #1
    Membre habitué
    Avatar de DamKre
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2007
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2007
    Messages : 495
    Points : 184
    Points
    184
    Par défaut [Ruban] Réinitialiser les valeurs de certains éléments
    Bonjour,

    J'ai créé un ruban personnalisé.
    Dans ce dernier, un groupe comprend des checkBox, des dropDown (liste déroulante) et des comboBox. Ces éléments me permettent d'appliquer certains filtres.

    Dans ce groupe, j'ajoute un bouton pour réinitialiser ces filtres. En cliquant dessus, je souhaite que les valeurs choisies des checkBox, dropDown et comboBox s'effacent.

    J'ai testé oMonRuban.Invalidate, mais cela ne fonctionne pas.

    Comment réinitialiser ces valeurs ?

    Merci de votre aide !

  2. #2
    Membre régulier
    Homme Profil pro
    Responsable marketing opérationnel
    Inscrit en
    Mai 2016
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable marketing opérationnel
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2016
    Messages : 78
    Points : 96
    Points
    96
    Par défaut
    Bonjour :

    Ruban personnalisé : vous entendez un formulaire sur lequel sont inscrits les differents contrôles .

    Un méthode serait d'utiliser la méthode d'Access : UNDO .

    Me.undo .

    CDT.

  3. #3
    Membre habitué
    Avatar de DamKre
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2007
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2007
    Messages : 495
    Points : 184
    Points
    184
    Par défaut
    Bonjour,

    Merci de tenter d'apporter une réponse, mais je parle bien des éléments du ruban, un ruban qui est général pour la base de données, et non pas d'éléments de formulaires.

    Du coup, je n'ai entretemps toujours pas trouvé de solution de mon côté.

  4. #4
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 652
    Points : 34 356
    Points
    34 356
    Par défaut
    Salut,

    lorsque tu cliques sur ton reset, tu veux revenir à ton ruban d'origine ?

    Tu peux utiliser un TempVar pour stocker ton ruban, et y faire reference


    - passer par un pointeur dans l'event de chargement pour mettre la valeur
    -passer par TempVar lors du reset ?

  5. #5
    Membre habitué
    Avatar de DamKre
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2007
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2007
    Messages : 495
    Points : 184
    Points
    184
    Par défaut
    Bonjour,

    Je crois que tu as résumé, en effet.

    Voici, par exemple, un élément du ruban :
    Nom : Img_DVP_RubFilt.jpg
Affichages : 119
Taille : 7,3 Ko
    Par défaut, la case n'est pas cochée, et aucun élément n'est choisi dans les listes.

    Lorsque je clique sur "Réinitialiser les filtres", je souhaite en effet en revenir aux éléments par défaut (pas de case cochée, pas d'élément sélectionné).

    Le tempvar dont tu parles, je le déclare uniquement dans la procédure ou dans le module du ruban ?

  6. #6
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 652
    Points : 34 356
    Points
    34 356
    Par défaut
    Salut,
    Les tempvars ont la durée de vie de l'ouverture de la base il me semble, aussi tu peux tres bien gérer les valeurs avec les
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TempVars.Add "Ruban", valeur
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TempVars.Remove "Ruban"
    un bout de code récupéré par ailleurs, qui devrait te permetttre d'avancer, mais que je n'ai pas pris le temps de tester, donc à vérifier :
    Côté code du ruban
    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
    Option Explicit
    Dim monRub As IRibbonUI
     
    'Callback for customUI.onLoad
    Sub ChargerRuban(ribbon As IRibbonUI)
    Set monRub = ribbon
    TempVars.add "Ruban", ObjPtr(ribbon) 'cette ligne peut poser probleme je pense, car ce n'est pas du vba pur, mais on doit pouvoir trouver l'équivalent
    End Sub
     
     
    Public Sub RefreshRibbon()
     
        If monRub Is Nothing Then
            Set monRub = GetRibbon(TempVars!Ruban)
        ' Else: Do nothing!
        End If
     
        On Error Resume Next
        monRub.Invalidate
        On Error GoTo 0
    End Sub
    'partie du getribbon
    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
     
     
    #If VBA7 Then
        Declare PtrSafe Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _
            ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)
    #Else
        Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _
            ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)
    #End If
     
    #If VBA7 Then
    Function GetRibbon(ByVal lRibbonPointer As LongPtr) As Object
    #Else
    Function GetRibbon(ByVal lRibbonPointer As Long) As Object
    #End If
     
        Dim objRibbon As Object
     
        Call CopyMemory(objRibbon, lRibbonPointer, LenB(lRibbonPointer))
     
        Set GetRibbon = objRibbon
        Set objRibbon = Nothing
    End Function

  7. #7
    Membre habitué
    Avatar de DamKre
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2007
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2007
    Messages : 495
    Points : 184
    Points
    184
    Par défaut
    Bonjour,

    Je dois être une quiche (quoique, c'est très bon aussi ^^), mais cela ne produit aucun effet.

    Ce que j'ai fait, dans le module mod_ribbon :

    Au début du module :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Option Compare Database
    Public oMonRuban As IRibbonUI '-> Variable pour dire que c'est le ruban
    [...] 
    Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _
            ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)
    Modification de Ribbon_OnLoad:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Ribbon_OnLoad(ribbon As IRibbonUI)
    On Error GoTo Erreurs
     
    Set oMonRuban = ribbon
     
    TempVars.Add "RubanApplication", ObjPtr(ribbon)
     
    Exit Sub
    Ajout d'une fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Function GetRibbon(ByVal lRibbonPointer As Long) As Object
     
    Dim objRibbon As Object
     
        Call CopyMemory(objRibbon, lRibbonPointer, LenB(lRibbonPointer))
     
        Set GetRibbon = objRibbon
        Set objRibbon = Nothing
     
     
    End Function
    Et, au clic sur le bouton du ruban pour le réinitialiser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Ribbon_OnAction(control As IRibbonControl)
    On Error GoTo Erreurs
     
    Select Case control.Id
        Case "button_Documents_ReinitialiserFiltres"
             If oMonRuban Is Nothing Then
                Set oMonRuban = GetRibbon(TempVars!RubanApplication)
            'Else: Do nothing!
            End If
    Les éléments cochés et sélectionnés ne se sont pas réinitialisés.

    J'ai sans doute dû mal suivre quelque chose, mais quoi ?

Discussions similaires

  1. Réponses: 8
    Dernier message: 26/04/2010, 16h52
  2. Réponses: 2
    Dernier message: 09/02/2010, 18h25
  3. [XSD] Comparer les valeurs de 2 éléments différents
    Par ZackaruS dans le forum Valider
    Réponses: 4
    Dernier message: 20/08/2009, 17h36
  4. Modifier les valeurs de certains champs d'une table
    Par Xorbane dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 22/10/2007, 22h10
  5. Réinitialiser les valeurs d'un champ de type identify
    Par Oluha dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 19/01/2005, 13h39

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