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

Macros et VBA Excel Discussion :

cliquer sur un bouton avec l'evenement d'un autre dans un rubam personalisé [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut cliquer sur un bouton avec l'evenement d'un autre dans un rubam personalisé
    bonjours a tous
    j'ai un combobox CBmois dans mon ruban personnalisé qui déclenche un évènement on change en vba

    dans cet évènement je voudrais cliquer sur le control" Gallery01" qui est aussi dans le ruban et dans le même group

    est ce possible ???
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 947
    Points
    55 947
    Billets dans le blog
    131
    Par défaut
    Salut Patrick,

    Ta demande n'a pas d'intérêt. Il te suffit de déclencher la procédure qui aurait été déclenchée par clic sur un élément de la galerie...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    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 250
    Points
    34 250
    Par défaut
    Salut,

    c'Est quoi l'intérêt si tu peux appeler le VBA directement ?


    edit : pardon téléscopage...
    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

  4. #4
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 947
    Points
    55 947
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par Jean-Philippe André Voir le message
    [...]

    edit : pardon téléscopage...
    Pô grave... Ca enfonce le clou ... Ceci dit, je pressens le besoin de Patrick, qui résulte d'une mauvaise architecture de code.

    @Patrick:

    Au passage, comme ça...

    https://silkyroad.developpez.com/excel/ruban/
    https://arkham46.developpez.com/arti...s/rubanimages/
    https://arkham46.developpez.com/arti...sistant-ruban/
    https://www.developpez.net/forums/re...ess%2Fruban%2F


    Il me semble que ça couvre largement le sujet.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Citation Envoyé par Pierre Fauconnier Voir le message
    Salut Patrick,

    Ta demande n'a pas d'intérêt. Il te suffit de déclencher la procédure qui aurait été déclenchée par clic sur un élément de la galerie...
    et ben non justement vous etes hâté un peu trop a mon avis ,le clou c'est en dessous votre pieds car le bouton que je veux cliqué je le redis est un controls gallery

    je répète donc plus clairement
    j'ai un control combobox CBMOIS (les 12 mois de l'année) qui déclenche son callbacks onchange
    dans cet évènement je souhaiterais cliquer sur la gallery juste pour qu'elle se développe

    est ce que c'est plus clair ?

    Nom : demo3.gif
Affichages : 397
Taille : 172,5 Ko
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 947
    Points
    55 947
    Billets dans le blog
    131
    Par défaut
    Toujours tes réactions à l'emporte-pièce où tu prends ceux qui souhaitent t'aider pour des débiles... Le clou n'est pas dans notre soulier mais dans le tien.

    Les fonctions CallBack ne peuvent rien faire d'autre que d'appeler une procédure "normale" en VBA. Autrement dit, ce que tu inities par un clic sur le ruban et l'appel de la fonction callback correspondante, tu dois pouvoir le lancer directement du VBA. Si tu mets du code "qui exécute quelque chose" dans une fonction CallBack, tu ne pourras forcément l'appeler que par action sur le contrôle du ruban, puisqu'elle doit recevoir le contrôle sur lequel tu as cliqué (C'est le mécanisme même du callback que tu dois comprendre si tu veux pouvoir manipuler le ruban de façon dynamique).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub ProductShowCategories(control As IRibbonControl)
      ShowCategories control.Id
    End Sub
     
    Sub ShowCategories(CategorieID As Long)
      ...
      ...
    End Sub
    Ainsi, si tu dois "simuler" le clic sur le bouton, tu appelles la procédure appelée par la fonction CallBack.


    Cela dit, je pense qu'il n'existe pas de fonction CallBack pour ouvrir une galerie => Liste des fonctions CallBack
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    pierre je prend personne pour des debilles

    pour etre plus clair encore
    ma gallery n'a que pour callback getItemCount-->Nbjour et getItemLabel --> Labeljour et il servent simplement a modifier les données a l'intérieur
    mais en aucun cas a la développer(dans le doute j'ai testé )
    hors c'est la développer automatiquement l'ors du onchange de la combo qui m'intéresse et non le .onction déclenché par le clic sur un de ses items(ca c'est pour plus tard)

    Code xml : 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
     
    <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="RibbonSet"> 
      <ribbon>
        <tabs>
          <tab id="test" label="test" >
            <group id="Calendrier" label="Calendrier">
      <gallery id="gallery01" 
       size="large"
       imageMso="StartAfterPrevious" 
       label="Calendar"
       columns="7" 
     
       getItemCount="Nbjour"
       showItemLabel="true"
       getItemLabel="Labeljour"
      <!-- onAction="Selectionjour" --> 
      </gallery> 
      <comboBox id="CBmois" label="mois" onChange="ChangeCBmois" > 
             <item id="i1" label="janvier"  /> 
             <item id="i2" label="février"  /> 
             <item id="i3" label="mars"  /> 
             <item id="i4" label="avril"  />
            <item id="i5" label="mai"  /> 
             <item id="i6" label="juin"  /> 
             <item id="i7" label="juillet"  /> 
             <item id="i8" label="août"  />
             <item id="i9" label="septembre"  /> 
             <item id="i10" label="octobre"  /> 
             <item id="i11" label="novembre"  /> 
             <item id="i12" label="décembre"  />
     
    </comboBox>
              </group>
          </tab>
        </tabs>
      </ribbon>
    </customUI>

    les callback
    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
     
     
    Option Explicit
    Public MonRuban As IRibbonUI
    Dim Usf As Object
    Public calendar As IRibbonControl
    Public mois As Long
    'Callback for customUI.onLoad
    'Est déclenché lors du chargement du ruban personnalisé.
    Sub RibbonSet(ribbon As IRibbonUI)
        Set MonRuban = ribbon
    End Sub
     
    'Callback for gallery01 getItemCount
    Sub Nbjour(control As IRibbonControl, returnedVal)
        Set calendar = control
        returnedVal = 49
    End Sub
     
    'Callback for gallery01 getItemLabel
    Sub Labeljour(control As IRibbonControl, index As Integer, returnedVal)
        Dim d, nextday, r, arrjour
        arrjour = Array("Lun", "Mar", "Mer", "Jeu", "Ven", "Sam", "Dim")
        If mois = 0 Then mois = Month(Date)
        If index + 1 > 7 Then
            d = Weekday(DateSerial(2019, mois, 1), vbMonday)
            nextday = Day(DateSerial(2019, mois + 1, 0))
            If (index + 1) >= d + 7 Then r = Format(index + 1 - d - 6, "#00") Else r = "-"
            If (index + 1) > nextday + d + 6 Then r = "-"
            returnedVal = r
        Else
            returnedVal = arrjour(index)
        End If
    End Sub
    'Callback for gallery01 getItemCount
    Sub changecbmois(control As IRibbonControl, returnedVal)
        mois = Month(DateValue("01/" & returnedVal & "/2019"))
        MonRuban.InvalidateControl "gallery01"
    End Sub
    alors est ce possible ou pas ?

    pour ceux qui voudrais tester avec execel superieur a 2007
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="RibbonSet">
    n'oubliez pas de modifier le rel aussi en conséquence
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  8. #8
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 947
    Points
    55 947
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    [...]

    alors est ce possible ou pas ?
    A mon avis non, puisqu'il n'y a pas de callback permettant de déployer la galerie, et c'est normal que ça n'existe pas. Tu as un problème d'ergonomie si tu veux déployer une galerie par code à la place de l'utilisateur. Le ruban n'a pas la vocation que tu veux lui attribuer. Utilise une boite de dialogue à la place. Je pense vraiment que le ruban n'est pas fait pour ce que tu souhaites réaliser.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  9. #9
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    c'est dommage mon défit c'est justement de virer pas mal d'userform de certaine de mes app j'ai assez fait mumuse avec
    je garde le stricte nécessaire ou quand je peux pas ou sais pas faire autrement
    au pire tant pis je développerais manuellement c'était un + que j'aurais bien aimé
    j'ai bien vu quelques solutions avec api mais ca vaut pas le coup pour ca
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  10. #10
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 947
    Points
    55 947
    Billets dans le blog
    131
    Par défaut
    Comme je le dis précédemment, c'est alors un problème d'ergonomie. Le ruban n'a pas du tout pour vocation de remplacer des boites de dialogue qui, bien construites (!), ont parfaitement leur place dans une appli professionnelle. Le ruban ne sert qu'au pilotage par l'utilisateur. Il permet beaucoup moins de souplesse qu'une boite de dialogue en termes d'écoute des événements des contrôles.

    Ca n'a pas beaucoup de sens pour moi d'essayer de remplacer des userform par des contrôles de ruban... C'est juste mon avis, ceci dit.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  11. #11
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    Bonjour,

    Je m'interroge également sur le fait de mettre un calendrier dans le ruban.
    Je ne suis pas convaincu que l'ergonomie et la maintenance soit améliorées.

    Cependant, si c'est pour s'amuser, on peut utiliser les fonctions d'accessibilité.
    Soit avec le gros module de l'article, mais ça fait beaucoup.
    Soit en utilisant les fonctions masquées des objets accessibles.

    Mais même si c'est un défi technique intéressant, ça reste risqué ne sachant pas comment la structure des rubans évoluera dans les futures versions.
    Et côté maintenance c'est un cadeau empoisonné.

    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
    Option Explicit
     
    ' Déplie la gallery de label pGallery du groupe de label pGroup de l'onglet actif
    ' Recherche sur le label dans l'onglet actif
    Public Function OpenGallery(pGroup As String, pGallery As String)
    Const ROLE_SYSTEM_PROPERTYPAGE = &H26&
    Const ROLE_SYSTEM_PANE = &H10&
    Const ROLE_SYSTEM_BUTTONDROPDOWNGRID = &H3A&
    Const ROLE_SYSTEM_TOOLBAR = &H16&
    Dim oRibbon As IAccessible
    Dim oGroup As IAccessible
    Dim oGal As IAccessible
    ' Ribbon Tool Bar
    Set oRibbon = CommandBars("ribbon")
    ' Ribbon Property page (recherche récursive)
    Set oRibbon = FindChildByRoleOrName(oRibbon, , ROLE_SYSTEM_PROPERTYPAGE, True)
    ' Ruban inférieur = onglet actif
    Set oRibbon = FindChildByRoleOrName(oRibbon, , ROLE_SYSTEM_PANE)
    ' Groupe
    Set oGroup = FindChildByRoleOrName(oRibbon, pGroup, ROLE_SYSTEM_TOOLBAR, True)
    ' Gallery : recherche récursive, il ne doit pas y avoir d'autres éléments avec le même label dans le même groupe
    Set oGal = FindChildByRoleOrName(oGroup, pGallery, ROLE_SYSTEM_BUTTONDROPDOWNGRID, True)
    ' Action par défaut = click
    Call oGal.accDoDefaultAction(ByVal 0&)
    End Function
     
    ' Fonction privée pour rechercher d'un objet accessible à partir de son parent, son role et son nom
    Private Function FindChildByRoleOrName(pParent As IAccessible, Optional pChildName As String = "*", Optional pChildRole As String = "*", Optional pRecursif As Boolean = False) As IAccessible
    Dim lName As String, lRole As Long
    Dim oChild As IAccessible
    Const NAVDIR_FIRSTCHILD = &H7&
    Const NAVDIR_NEXT = &H5&
    On Error GoTo gestion_erreurs
    Do
        If oChild Is Nothing Then
            Set oChild = pParent.accNavigate(NAVDIR_FIRSTCHILD, ByVal 0&)
        Else
            Set oChild = oChild.accNavigate(NAVDIR_NEXT, ByVal 0&)
        End If
        If pChildName <> "*" Then lName = oChild.accName(ByVal 0&)
        If pChildRole <> "*" Then lRole = oChild.accRole(ByVal 0&)
        If lRole Like pChildRole And lName Like pChildName Then
            Set FindChildByRoleOrName = oChild
            Exit Do
        End If
        If pRecursif Then
            Set FindChildByRoleOrName = FindChildByRoleOrName(oChild, pChildName, pChildRole, pRecursif)
            If Not FindChildByRoleOrName Is Nothing Then Exit Do
        End If
    Loop
    gestion_erreurs:
    If Err.Number <> 0 Then
        Set FindChildByRoleOrName = Nothing
    End If
    End Function

  12. #12
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    ah!!!
    bonjour ArkHam

    je vais regarder ca de plus près j'ai trouvé quelques exemple en effet mais c'est hard, ta méthode juste en aperçu rapide me semble beaucoup moins
    oui en effet l'exercice lui même est tout aussi important et amusant pour moi a ce stade du développement rien n'est définitif

    c'est quand même étonnant que un ".exécute " comme pour les msocontrol des commandbars n'est pas été prévu pour les controls ruban

    Merci
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  13. #13
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    oRibbon=nothing
    oGroup=nothing
    oGal=nothing

    j'ai tenté par le ID et le label
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      'OpenGallery "Calendrier", "Calendar"' by label
     OpenGallery "Calendrier", "gallery01",by ID
    y a t il une référencé a activer ?
    j'ai téléchargé le pack zip sur le lien pour observer le listing events avec le accExplorer.exe
    et malheureusement mon antivirus l'a shunté et détruite le zip complet
    Nom : Capture.JPG
Affichages : 404
Taille : 72,2 Ko
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  14. #14
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    C'est bien ce je pensais, pas facile d'adapter ce genre de code à toutes les versions.

    Pas besoin de référence particulière, juste Microsoft Office x.xx Object Library pour l'objet IAccessible, mais sinon ça ne compilerait pas.

    Si tu n'arrives pas à télécharger le zip, essaye de prendre juste accExplorer32.exe

    J'ai pris quelques raccourcis avec certaines recherches récursives.
    Par exemple pour trouver l'objet de rôle ROLE_SYSTEM_PROPERTYPAGE.
    Sur mon PC il trouve le bon, tu as peut-être plusieurs ROLE_SYSTEM_PROPERTYPAGE sur ton ruban.
    Pour être sûr il faut descendre niveau par niveau, sans recherches récursives ou bien ciblées, mais c'est un peu pénible de trouver le rôle de chaque enfant jusqu'à celui qu'on cherche ; et il ne faut pas que l'arborescence d'objets change ensuite.

    Sinon prendre un gros raccourci :
    Chercher directement un ROLE_SYSTEM_TOOLBAR du nom du groupe (il ne devrait pas y en avoir plusieurs) :
    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
    ' Déplie la gallery de label pGallery du groupe de label pGroup de l'onglet actif
    ' Recherche sur le label dans l'onglet actif
    Public Function OpenGallery(pGroup As String, pGallery As String)
    Const ROLE_SYSTEM_BUTTONDROPDOWNGRID = &H3A&
    Const ROLE_SYSTEM_TOOLBAR = &H16&
    Dim oRibbon As IAccessible
    Dim oGroup As IAccessible
    Dim oGal As IAccessible
    ' Ribbon Tool Bar
    Set oRibbon = CommandBars("ribbon")
    ' Groupe
    Set oGroup = FindChildByRoleOrName(oRibbon, pGroup, ROLE_SYSTEM_TOOLBAR, True)
    ' Gallery : recherche récursive, il ne doit pas y avoir d'autres éléments avec le même label dans le même groupe
    Set oGal = FindChildByRoleOrName(oGroup, pGallery, ROLE_SYSTEM_BUTTONDROPDOWNGRID, True)
    ' Action par défaut = click
    Call oGal.accDoDefaultAction(ByVal 0&)
    End Function
    Ou au pire chercher directement la galerie sans passer par le groupe.

  15. #15
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    non toujours pareil
    les 3 sont nothing
    j'en tenter par le id et le label au cas ou
    Nom : demo3.gif
Affichages : 417
Taille : 100,4 Ko
    de toute Facon c'est le ribbon au départ qui est nothing donc le reste ne peut pas suivre
    Fichiers attachés Fichiers attachés
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  16. #16
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    Je ne suis pas sûr que la commandbars s'appelle ribbon sur toutes les configs

  17. #17
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    chez moi 2007 oui mais le "R" en majuscule c'est peut être ca je vais tester

    édit : tester non c'est pas ca

    re edit par contre l'erreur commence a group maintenant donc oribbon est bon
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  18. #18
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Nom : Pqtrik.gif
Affichages : 361
Taille : 136,8 Ko

    Ton fichier Patrick tel testé chez moi (Excel 2013 Fr)
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  19. #19
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    vue sur les variables locales
    Nom : Capture.JPG
Affichages : 384
Taille : 148,8 Ko
    le group et le controls ne sont pas captés

    est il possible de convertir une variable object en variable IAccessible
    car je peux me servir de calendar qui est un object et est défini comme le controls dans mon code dans le callback nbjour
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  20. #20
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    a bon sur 2013 il fonctionne comme tel ?????
    a ben ca alors !!!?????
    32 bit ou 64
    parce que la on a un soucis
    jusqu'à présent tout ce qui on testé mes ruban sur version autre que 2007 avec"
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
    n'affichait pas le ruban
    il fallait mettre
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
    et pareil dans le rel la modif devait être fait
    c'est pour ca que j'ai 2 customUI.xml dans plusieurs de mes fichiers avec le double Relationship bien sur dans le rel

    je pige plus rien la

    a ben mince alors ca marche chez les autres pas chez moi
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. cliquer sur un bouton d'une page HTML avec excel
    Par gaby2006 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 26/06/2017, 17h58
  2. Réponses: 0
    Dernier message: 09/11/2007, 22h06
  3. Réponses: 2
    Dernier message: 07/06/2006, 09h29
  4. cliquer sur un bouton d'une application extérieure
    Par looc 6699 dans le forum API, COM et SDKs
    Réponses: 7
    Dernier message: 12/12/2005, 17h46
  5. Focus sur les boutons avec plusieurs formulaire
    Par davids21 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/04/2005, 15h48

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