masquer un controle dans un ruban personnel Excel

boniteprobtp

XLDnaute Nouveau
J'ai défini un ruban sous excel 2007 et j'aimerai pouvoir masquer ce ruban ou une partie de ce ruban en fonction de la feuille sur laquelle je me trouve. Mon classeur contient une vingtaine de feuille mais seules trois feuilles pourront utiliser un navigateur défini dans mon ruban.
Voici mon code XML :
Code:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="ChargerRuban">
<ribbon startFromScratch="false">
<tabs>
<tab id="monBandeau" label="Utilisateur">
	<group id="Selection" label="Selection">
	<button id="critere"   
		label="choixCritere"    
		imageMso="PivotChartFilterShow"    
		size="normal"    
		onAction="dialogue"    
		screentip="choix critéres affichage" />
	</group>

	<group id="GR7" label="Aller à">
	<menu id="Menu01" label="Mon Choix Item" itemSize="normal">
		<menuSeparator id="RB30" title="CONCERTATION - Je qualifie"/>
		<button id="BUT30" 
			label="Abonnement Internet" 
			onAction="ActivationFeuille"/>
		<button id="BUT31" 	
			label="Renseignement des numéros de téléphone suite à contact téléphonique (si Adhérent)" 
			onAction="ActivationFeuille"/>
		<button id="BUT32" 
			label="Enrichissement des mails" 
			onAction="ActivationFeuille"/>
		<menuSeparator id="RB33" 	
			title="CONCERTATION - J'écoute et je raconte l'histoire de la relation"/>
		<button id="BUT33" 
			label="Détection des INA COURRIER (logistique + poste)" 
			onAction="ActivationFeuille"/>
		<button id="BUT34" 
			label="Détection des INA au téléphone" 
			onAction="ActivationFeuille"/>
		<button id="BUT35" 
			label="Détection des INA par le réseau" 
			onAction="ActivationFeuille"/>
		<button id="BUT36" 
			label="Saisie d'un commentaire lors de la détection des INA au téléphone" 
			onAction="ActivationFeuille"/>
		<button id="BUT37" 
			label="Saisie d'un commentaire lors des contacts téléphoniques" 
			onAction="ActivationFeuille"/>
		<button id="BUT38" 
			label="Saisie d'un commentaire à chaque action menée et lors du traitement des encours (Tous suivis et INA)" 
			onAction="ActivationFeuille"/>
		<menuSeparator id="RB39" 
			title="CONCERTATION - Je communique avec l'adhérent avec le média le plus approprié"/>
		<button id="BUT39" 
			label="Appels non décrochés (RONA)" 
			onAction="ActivationFeuille"/>
		<button id="BUT40" 
			label="Réalisation d'appels sortants lors du traitement de la demande de l'adhérent (hors INA) par ETP" 
			onAction="ActivationFeuille"/>
		<button id="BUT41" 
			label="Pourcentage d'appels sortants réalisés lors du traitement de GED/MAIL/AIDE de l'adhérent(hors INA)" 
			onAction="ActivationFeuille"/>
		<button id="BUT42" 
			label="Pourcentage  de mail envoyés lors du traitement de la demande de l'adhérent" 
			onAction="ActivationFeuille"/>
		<button id="BUT43" 
			label="Envoi de mail lors du traitement de la demande de l'adhérent par ETP" 
			onAction="ActivationFeuille"/>
		<menuSeparator id="RB44" 
			title="CONCERTATION - Je respecte mes engagements"/>
		<button id="BUT44" 
			label="Encours SUIVI GED traités à échéance avec commentaire si report" 
			onAction="ActivationFeuille"/>
	</menu>
	</group>

	<group id="AvancementLigne" label="Item Pilotage" >
		<button id="versHaut" 
			label="Premier" 
			image="DoubleFlecheHaut" 
			size="normal" 
			onAction="versLeHaut" 
			screentip="Premier Item Pilotage" />
		<button id="versBas" 
			label="Dernier" 
			image="DoubleFlecheBas"  
			size="normal"  
			onAction="versLeBas"  
			screentip="Dernier Item Pilotage"/>
		<separator id="sp1" />
		<button id="versPrec"  
			label="Precedent"  
			image="FlecheHaut"   
			size="normal"   
			onAction="versPrecedent"   
			screentip="Item Pilotage précédent"/>
		<button id="versSuiv"   
			label="Suivant"   
			image="FlecheBas"   
			size="normal"   
			onAction="versSuivant"   
			screentip="Item Pilotage suivant"/>
	</group>

	<group id="AvancementColonne" label="Type Indicateur" >
		<button id="versDebut"   
			label="Premier"   
			image="DoubleFlecheGauche"   
			size="normal"   
			onAction="versLeDebut"   
			screentip="Premier Indicateur" />
		<button id="versFin"   
			label="Dernier"   
			image="DoubleFlecheDroite"   
			size="normal"   
			onAction="versLaFin"   
			screentip="Dernier Indicateur" />
		<separator id="sp2" />
		<button id="versColPrec"   
			label="Precedent"   
			image="FlecheGauche"   
			size="normal"   
			onAction="versColonnePrecedente"   
			screentip="Indicateur précédent" />
		<button id="versColSuiv"   
			label="Suivant"   
			image="FlecheDroite"   
			size="normal"   
			onAction="versColonneSuivante"   
			screentip="Indicateur suivant" />
	</group>

	<group id="Menu" label="boite Menu">
		<dynamicMenu id="ListeDynamique"   
			label="Liste Items"   
			getContent="creationMenuDynamique"   
			invalidateContentOnDrop="true"   
			size="normal"   
			image="Jumelle" />
	</group>

</tab>
</tabs>
</ribbon>
</customUI>
Merci pour votre collaboration.
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : masquer un controle dans un ruban personnel Excel

Bonjour Boniteprobtp :),
C'est faisable, vu que je l'ai déjà fait, c'était il y a quelques années, il va falloir que je réactive mes neurones :p...
Personnellement, c'est un bouton bascule du ruban qui modifiait celui-ci, mais tu dois pouvoir le faire avec une événementielle de feuille :rolleyes:...
Ce qui aurait été bien, c'est de mettre ton code qui concerne le ruban :(...
J'ai vu que tu avais onLoad="ChargerRuban", la mienne contenait la déclaraition du Ruban et son chargement :
Code:
Public MonRuban As IRibbonUI
Sub RubanCharge(ribbon As IRibbonUI)
    Set MonRuban = ribbon
End Sub
Ensuite, il faut utiliser la balise Visible sur le groupe :
Code:
<group id="Présences" label="Présences" getVisible="PlanningNormal">
Celle-ci va te générer une Call Back PlanningNormal dans mon cas :rolleyes:...
Il faut que tu utilises la returnedVal pour déclarer si ton groupe est visible ou non
Code:
Sub PlanningNormal(control As IRibbonControl, ByRef returnedVal)
    returnedVal = True
End Sub
et il me semble qu'il faut rafraichir le ruban avec
Code:
MonRuban.Invalidate
Bon courage :cool:
 

boniteprobtp

XLDnaute Nouveau
Re : masquer un controle dans un ruban personnel Excel

Je pense que l'appel à PlanningNormal doit être faite par un call dans la procédure mais comment ??

Je te remercie pour tes bons conseils et j'espére arriver rapidement à résoudre mon problème.

J'ai oublié de joindre le code VBA pour ce qui concerne le problème .... ou ai-je fait faux ?

Code:
Sub Auto_Open()
    Dim lus As Integer
    Dim ztrav As String
    Dim boo As Boolean
    Dim i As Long, j As Long, k As Long, l As Long
    Dim indFeu As Integer
   
    On Error GoTo errAuto_Open

    booAffichageGroupe = False
    
    Call chargerRuban(monRuban)
    
end sub

Sub chargerRuban(ruban As IRibbonUI)

    Set monRuban = ruban
    
End Sub

Sub affichageFeuille(top As Boolean)

    Dim Feuille As String
    Dim i As Integer
    If top Then
        ' =====> récupération de la feuille active suite à changement de feuille
        Feuille = ActiveSheet.Name
    Else
        ' =====> récupération de la feuille par défaut (celle sélectionné dans le "filtre de selection"
        Feuille = Sheets("ParamExecution").Cells(25, 2).Value
    End If
    ' =====> recherche indice de la feuille
    For i = 2 To 20
        If Sheets("ParamExecution").Cells(i, 1).Value = "" Then Exit For
        If Sheets("ParamExecution").Cells(i, 1).Value = Feuille Then Exit For
    Next i
    If Not Sheets("ParamExecution").Cells(i, 3).Value = "Oui + Menu" Then
        '
        ' =====> masquage du navigateur
        '
        Call affichageHorizontal(Ru, False)
        Call affichageVertical(Ru, False)
        Call affichageListe(Ru, False)
    Else
        '
        ' =====> affichage du navigateur
        '
        Call affichageListe(Ru, True)
        Call affichageVertical(Ru, True)
        If Feuille = "Evol" Then
            Call affichageHorizontal(Ru, True)
        Else
            Call affichageHorizontal(Ru, False)
        End If
    End If
    monRuban.Invalidate

End Sub

En fichier joint, l'image de mon ruban "Utilisateur".

Encore merci
 

Pièces jointes

  • Menu.jpg
    Menu.jpg
    12.9 KB · Affichages: 135
  • Menu.jpg
    Menu.jpg
    12.9 KB · Affichages: 160
  • Menu.jpg
    Menu.jpg
    12.9 KB · Affichages: 154
Dernière édition:

JNP

XLDnaute Barbatruc
Re : masquer un controle dans un ruban personnel Excel

Re :),
Mon explication n'était peut-être pas très claire :eek:...
Un petit fichier exemple vaut mieux qu'un long discours :p...
Je l'ai fait en 2010 mais il devrait fonctionner en 2007 :rolleyes:...
Tu sélectionnes l'onglet Custom, tu cliques sur l'onglet Feuil1, puis Feuil2, puis Feuil1 ;)...
Je penses que ça fait ce que tu souhaites, et comme tout est réduit au minimum, tu devrais pouvoir analyser :p !
Bon courage :cool:
 

Pièces jointes

  • Test boniteprobtp.xlsm
    16.2 KB · Affichages: 218

bonite

XLDnaute Nouveau
Re : masquer un controle dans un ruban personnel Excel

J'ai bien reproduit ton code dans mon classeur.

Résultat à l'exécution, au moment je fais monRuban.invalidate j'ai une erreur 91 - Variable objet ou variable de bloc With non définie et là je reste sans réaction ?????

au niveau de l'activation de la feuille :
Code:
' affichage du ruban
Sub ChargerRuban(ruban As IRibbonUI)
    Set monRuban = ruban
End Sub
Private Sub Worksheet_Activate()
    Call affichageFeuille(True)
End Sub

au niveau de ma procedure

Code:
Option Explicit
Public booMenuStatique As Boolean
Public booMenuDynamique As Boolean
Public booMenuHorizontal As Boolean
Public booMenuVertical As Boolean
Public monRuban As IRibbonUI
Public Ru As IRibbonControl

Sub affichageFeuille(top As Boolean)
    Dim Feuille As String
    Dim i As Integer
    If top Then
        ' =====> récupération de la feuille active suite à changement de feuille
        Feuille = ActiveSheet.Name
    Else
        ' =====> récupération de la feuille par défaut (celle sélectionné dans le "filtre de selection"
        Feuille = Sheets("ParamExecution").Cells(25, 2).Value
    End If
    ' =====> recherche indice de la feuille
    For i = 2 To 20
        If Sheets("ParamExecution").Cells(i, 1).Value = "" Then Exit For
        If Sheets("ParamExecution").Cells(i, 1).Value = Feuille Then Exit For
    Next i
    If Not Sheets("ParamExecution").Cells(i, 3).Value = "Oui + Menu" Then
        '
        ' =====> masquage du navigateur
        '
        booMenuHorizontal = False
        booMenuVertical = False
        booMenuStatique = False
        Exit Sub
    Else
        '
        ' =====> affichage du navigateur
        '
        booMenuHorizontal = True
        booMenuVertical = True
        booMenuStatique = True
        If Feuille = "Evol" Then
            booMenuHorizontal = True
        Else
            booMenuHorizontal = False
        End If
    End If
    MsgBox "Actualisation", 0, "ruban Excel"
    monRuban.Invalidate
End sub

Je passe effectivement dans mon code mais il semble avoir perdu le lien avec le ruban.

Encore mille merci, tes conseils sont précieux.
 

JNP

XLDnaute Barbatruc
Re : masquer un controle dans un ruban personnel Excel

Re :),
je penses qu'aucune CallBack ne doit figurer ailleurs que dans un module :rolleyes:...
Code:
Sub ChargerRuban(ruban As IRibbonUI)
    Set monRuban = ruban
End Sub
doit être dans un module classique, d'ailleurs, ce n'est pas un affichage du ruban, mais le chargement du ruban dans une variable :rolleyes:...
A + :cool:
 

JNP

XLDnaute Barbatruc
Re : masquer un controle dans un ruban personnel Excel

Re :),
Le ChargerRuban se trouve dans le module principal et l'Actualisation(monRuban.Invalidate) est faite dans le même module
Ce n'est pas ce que tu as écrit plus bas :rolleyes:...
Pas évident sans avoir le fichier :eek:...
Dans ton code, tu as un Exit Sub qui empêche, dans un cas, d'actualiser le ruban :rolleyes:...
Et je ne comprends pas tous tes tests... Pourquoi tu n'envoie pas l'argument directement à la Sub en mettant dans ThisWorkbook
Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Call affichageFeuille(Sh.Name)
End Sub
et en modifiant ta Sub
Code:
Sub affichageFeuille(Feuille As String)
Il te suffirait d'un
Code:
Select Case Feuille
pour décider de ton ruban :rolleyes:...
Bon courage :cool:
 

boniteprobtp

XLDnaute Nouveau
[ABANDONNE] : masquer un controle dans un ruban personnel Excel

J'aimerai t'envoyer le fichier créé mais il est trop gros même en zippé (150Ko).

A aucun moment, je ne fait appel à la procédure ChargerRuban, je pense que cette procédure est appelée via le XLM au moment du chargement de mon classeur (c'est peut-être un tort).

La procédure affichageFeuille qui est appellée avec un booleen permet de savoir au moment de l'appel si l'on traite la feuille en cours(True) ou une autre feuille stocké dans le fichier paramétre d'exécution. La recherche dans la feuille "ParamExecution" du rang de la feuille à traiter permet de récupérer les paramétres propres à cette feuille. Par la suite on défige les volets de la Feuille pour se positionner puis on refige les volets pour faciliter la navigation.



Code:
Sub affichageFeuille(top As Boolean)

    Dim Feuille As String
    Dim i As Integer
    If top Then
        ' =====> récupération de la feuille active suite à changement de feuille
        Feuille = ActiveSheet.Name
    Else
        ' =====> récupération de la feuille par défaut (celle sélectionné dans le "filtre de selection"
        Feuille = Sheets("ParamExecution").Cells(25, 2).Value
    End If
    ' =====> recherche indice de la feuille
    For i = 2 To 20
        If Sheets("ParamExecution").Cells(i, 1).Value = "" Then Exit For
        If Sheets("ParamExecution").Cells(i, 1).Value = Feuille Then Exit For
    Next i

    If Not Sheets("ParamExecution").Cells(i, 3).Value = "Oui + Menu" Then
        '
        ' =====> masquage du navigateur
        '
        booMenuHorizontal = False
        booMenuMenuVertical = False
        booMenuMenuStatique = False
        booMenuMenuDynamique = False
        monRuban.Invalidate
    Else
        '
        ' =====> affichage du navigateur
        '
        booMenuStatique = True
        booMenuDynamique = True
        booMenuVertical = True
        If Feuille = "Evol" Then
            booMenuHorizontal = True
        Else
            booMenuHorizontal = False
        End If
        monRuban.Invalidate
    End If
    '
    Call libererVolets(Feuille)
    '
    ' =====> recupération du nombre de ligne entete et du nombre de colonnes figées
    '
    Dim ent As Long
    ent = Sheets("ParamExecution").Cells(i, 11).Value + 1
    Dim colFige As Long
    colFige = Sheets("ParamExecution").Cells(i, 6).Value + 1
    Dim lig As Integer
    '
    ' =====> recherche de la position du dernier item traité dans la feuille
    '
    lig = Sheets("ParamExecution").Cells(i, 53).Value
    If lig = Null Then
        lig = Sheets("ParamExecution").Cells(i, 29).Value
    End If
    '
    ' =====> positionnement sur l'item (ligne 1, position 1)
    '
    Cells(lig, 1).Select
    ActiveWindow.ScrollRow = Selection.Row
    ActiveWindow.ScrollColumn = Selection.Column
    '
    ' =====> figer les volets de la feuille
    '
    Call figerVolets(Feuille, lig + ent, colFige)
    
End Sub

Merci pour ta patience.
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : masquer un controle dans un ruban personnel Excel

Re :),
A aucun moment, je ne fait appel à la procédure ChargerRuban, je pense que cette procédure est appelée via le XLM au moment du chargement de mon classeur (c'est peut-être un tort).
C'est bien le cas, elle est chargée par
Code:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="ChargerRuban">
Par contre, en relisant ton code, je viens de voir que tu faisais appel à cette procédure dans ton Auto_Open
Code:
Sub Auto_Open()
    Dim lus As Integer
    Dim ztrav As String
    Dim boo As Boolean
    Dim i As Long, j As Long, k As Long, l As Long
    Dim indFeu As Integer
     On Error GoTo errAuto_Open
    booAffichageGroupe = False
 
    Call chargerRuban(monRuban)
 
end sub
et ça, c'est pas bon à mon avis :rolleyes:...
J'espère que c'est là où est le problème, sinon, tu peux poster ton fichier sur cijoint.fr :p...
Bon courage :cool:
 

boniteprobtp

XLDnaute Nouveau
Re : masquer un controle dans un ruban personnel Excel

Non, l'autoOpen a été modifié depuis le premier envoi et cette ligne a été supprimé. D'ailleurs voici le code de mon AutoOepn :
Code:
Sub Auto_Open()

    Dim lus As Integer
    Dim ztrav As String
    Dim boo As Boolean
    Dim i As Long, j As Long, k As Long, l As Long
    Dim indFeu As Integer
    
    On Error GoTo errAuto_Open
    
    'Stop

    booAffichageGroupe = False
    
    Sheets("Accueil").Select
    
    If Sheets.Count <= 2 Then
    
        If MsgBox("Souhaitez-vous lancer les chargements", vbInformation + vbYesNo, "Résultat Palmares") = vbNo Then
            Exit Sub
        End If

        Application.DisplayAlerts = False
        '
        ' ==========> chargement des donnees
        '
        Call chargerDonnees
        '
        ' ==========> récupération du type de fichier à traiter
        '
        Dim ficATraiter(0 To 2) As String
        ficATraiter(0) = Sheets("Param").Cells(1, 4).Value      ' Marché (PART/PRO/ASR/VAC)
        ficATraiter(1) = Sheets("Param").Cells(1, 3).Value      ' Entité (DR/CG/PT/Partenaire)
        ficATraiter(2) = Sheets("Param").Cells(1, 5).Value      ' Individuel/Collectif
        ' Marché
        Sheets("ParamExecution").Cells(32, 8).Value = ficATraiter(0)
        ' Entité
        Sheets("ParamExecution").Cells(32, 9).Value = ficATraiter(1)
        ' Collectif / Individuel
        Sheets("ParamExecution").Cells(32, 10).Value = ficATraiter(2)
        '
        ' ==========> Chargement des Items
        '
        lus = chargerItem
        '
        ' mise en place du nombre d'Item par feuille
        '
        For i = 2 To Sheets("ParamExecution").Cells(32, 2).Value Step 1
            If Sheets("ParamExecution").Cells(i, 1) = "" Then
                Exit For
            End If
            If Sheets("ParamExecution").Cells(i, 3) = "Oui + Menu" Then
                ' mise en place du nombre d'item de la feuille
                Sheets("ParamExecution").Cells(i, 5).Value = lus - 1
            End If
        Next i
        '
        ' détermination des items et leurs positionnements sur chaque feuille
        ' complémentation des chapitres et rubriques
        '
        Call rechercheDernierBloc
        '
        ' forcage de la feuille 'Resultat'
        '
        Sheets("ParamExecution").Cells(35, 2).Value = "Resultat"
        Sheets("ParamExecution").Cells(35, 3).Value = 6
     
    End If
    '
    ' ==========> Chargement des entités et services
    '
    Call chargerEntiteService
    '
    ' affichage de la boîte de dialogue
    '
    ' Call Dialogue(ru)
    '
    ' =====> masquage du 1er bloc des feuilles 'Evol', 'Fabriq' et 'Resultat'
    '
    For i = 2 To Sheets("ParamExecution").Cells(32, 2).Value
        If Sheets("ParamExecution").Cells(i, 1).Text = "" Then Exit For
        If Not LCase(Sheets("ParamExecution").Cells(i, 1).Text) = "oui + menu" Then Exit For
        deb = Sheets("ParamExecution").Cells(i, 6).Value + 1
        Feuille = Sheets("ParamExecution").Cells(i, 1).Text
        dep = Sheets("ParamExecution").Cells(i, 30).Value + 1
        '
        ' =====> demasquer toutes les lignes du document
        '
        deb = 1
        fin = Sheets("ParamExecution").Cells(i, 31).Value
        ztrav = CStr(deb)
        ztrav = ztrav + ":"
        ztrav = ztrav + CStr(fin)
        Sheets(Feuille).Rows(ztrav).EntireRow.Hidden = False
        '
        ' =====> masquage/demasquage des items (masquage des lignes non renseignés)
        '
        indFeu = i
        Call masquerDemasquer(indFeu)
        '
        ' =====>
        '
        ' les colonnes et lignes sont figées
        '
        Call figerVolets(Feuille, deb, dep)
        '
    Next i
    '
    ' masquage des colonnes sur les feuilles aprés chargement
    '
    Call masquageColonnes
    '
    ' =====> positionnement du curseur sur feuille par défaut
    '
    Sheets("ParamExecution").Cells(35, 2).Value = "Resultat"
    '
    ' =====> mise en place de la feuille par défaut
    '
    Call affichageFeuille(False)
    
    GoTo exitAuto_Open
errAuto_Open:

    If Not Err.Number = "900" Then
        msg = "Erreur : " + CStr(Err.Number) + "(" + CStr(Erl) + ") - " + Err.Description
    End If
    MsgBox msg, 0, "Message de cohérence"
    
    Resume exitAuto_Open
    
exitAuto_Open:
    Application.DisplayAlerts = False
    
End Sub

Je t'informe dès que j'ai des résultats probants.
 

JNP

XLDnaute Barbatruc
Re : masquer un controle dans un ruban personnel Excel

Re :),
Question bête et méchante : tu as bien mis les getVisible dans ton XML et généré les CallBacks qui vont avec :p ?
Code:
'Callback for customGroup getVisible
Sub MonMenu(control As IRibbonControl, ByRef returnedVal)
returnedVal = MonMenuVisible
End Sub
Bonne soirée :cool:
 

bonite

XLDnaute Nouveau
Re : masquer un controle dans un ruban personnel Excel

Tu as raison, cela aurait pu être le cas, mais hélas non, j'ai bien mis les getVisible comme tu peux le constater

Mon XML

Code:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="ChargerRuban">
<ribbon startFromScratch="false">
<tabs>
<tab id="monBandeau" label="Utilisateur">
	<group id="Selection" label="  ">
	<button id="critere" label="Filtres de sélection" imageMso="PivotChartFilterShow" size="normal" onAction="dialogue" screentip="choix critéres affichage" />
	</group>

	<group id="GR7" label="   " [COLOR="magenta"]getVisible="affichageMenuStatique"[/COLOR]>
	<menu id="Menu01" label="Navigation Items" itemSize="normal">
		<menuSeparator id="RB30" title="CONCERTATION - Je qualifie"/>
		<button id="BUT30" label="Abonnement Internet" onAction="ActivationFeuille"/>
		<button id="BUT31" label="Renseignement des numéros de téléphone suite à contact téléphonique (si Adhérent)" onAction="ActivationFeuille"/>
		<button id="BUT32" label="Enrichissement des mails" onAction="ActivationFeuille"/>
		<menuSeparator id="RB33" title="CONCERTATION - J'écoute et je raconte l'histoire de la relation"/>
		<button id="BUT33" label="Détection des INA COURRIER (logistique + poste)" onAction="ActivationFeuille"/>
		<button id="BUT34" label="Détection des INA au téléphone" onAction="ActivationFeuille"/>
		<button id="BUT35" label="Détection des INA par le réseau" onAction="ActivationFeuille"/>
		<button id="BUT36" label="Saisie d'un commentaire lors de la détection des INA au téléphone" onAction="ActivationFeuille"/>
		<button id="BUT37" label="Saisie d'un commentaire lors des contacts téléphoniques" onAction="ActivationFeuille"/>
		<button id="BUT38" label="Saisie d'un commentaire à chaque action menée et lors du traitement des encours (Tous suivis et INA)" onAction="ActivationFeuille"/>
		<menuSeparator id="RB39" title="CONCERTATION - Je communique avec l'adhérent avec le média le plus approprié"/>
		<button id="BUT39" label="Appels non décrochés (RONA)" onAction="ActivationFeuille"/>
		<button id="BUT40" label="Réalisation d'appels sortants lors du traitement de la demande de l'adhérent (hors INA) par ETP" onAction="ActivationFeuille"/>
		<button id="BUT41" label="Pourcentage d'appels sortants réalisés lors du traitement de GED/MAIL/AIDE de l'adhérent(hors INA)" onAction="ActivationFeuille"/>
		<button id="BUT42" label="Pourcentage  de mail envoyés lors du traitement de la demande de l'adhérent" onAction="ActivationFeuille"/>
		<button id="BUT43" label="Envoi de mail lors du traitement de la demande de l'adhérent par ETP" onAction="ActivationFeuille"/>
		<menuSeparator id="RB44" title="CONCERTATION - Je respecte mes engagements"/>
		<button id="BUT44" label="Encours SUIVI GED traités à échéance avec commentaire si report" onAction="ActivationFeuille"/>
	</menu>
	</group>

	<group id="AvancementLigne" label="Déplacement Items (vertical)" [COLOR="magenta"]getVisible="affichageMenuVertical"[/COLOR]>
	<button id="versHaut" label="Premier" image="DoubleFlecheHaut" size="normal" onAction="versLeHaut" screentip="Premier Item Pilotage" />
	<button id="versBas" label="Dernier" image="DoubleFlecheBas" size="normal" onAction="versLeBas" screentip="Dernier Item Pilotage"/>
	<separator id="sp1" />
	<button id="versPrec" label="Precedent" image="FlecheHaut" size="normal" onAction="versPrecedent" screentip="Item Pilotage précédent"/>
	<button id="versSuiv" label="Suivant" image="FlecheBas" size="normal" onAction="versSuivant" screentip="Item Pilotage suivant"/>
	</group>
	<group id="AvancementColonne" label="Déplacement Indicateurs (horizontal)" [COLOR="magenta"]getVisible="affichageMenuHorizontal"[/COLOR]>
	<button id="versDebut" label="Premier" image="DoubleFlecheGauche" size="normal" onAction="versLeDebut" screentip="Premier Indicateur" />
	<button id="versFin" label="Dernier" image="DoubleFlecheDroite" size="normal" onAction="versLaFin" screentip="Dernier Indicateur" />
	<separator id="sp2" />
	<button id="versColPrec" label="Precedent" image="FlecheGauche" size="normal" onAction="versColonnePrecedente" screentip="Indicateur précédent" />
	<button id="versColSuiv" label="Suivant" image="FlecheDroite" size="normal" onAction="versColonneSuivante" screentip="Indicateur suivant" />
	</group>

	<group id="Menu" label="boite Menu" [COLOR="magenta"]getVisible="affichageMenuDynamique"[/COLOR]>
	<dynamicMenu id="ListeDynamique" label="Liste Items" getContent="creationMenuDynamique" invalidateContentOnDrop="true" size="normal" image="Jumelle" />
	</group>

</tab>
</tabs>
</ribbon>
</customUI>

et les appels dans ma procédure

Code:
'Callback for GR7 getVisible
Sub affichageMenuStatique(control As IRibbonControl, ByRef bool)

    bool = booMenuStatique

End Sub

'Callback for AvancementLigne getVisible
Sub affichageMenuVertical(control As IRibbonControl, ByRef bool)

    bool = booMenuVertical

End Sub

'Callback for AvancementColonne getVisible
Sub affichageMenuHorizontal(control As IRibbonControl, ByRef bool)

    bool = booMenuHorizontal

End Sub

'Callback for Menu getVisible
Sub affichageMenuDynamique(control As IRibbonControl, ByRef bool)

    bool = booMenuDynamique

End Sub
 

JNP

XLDnaute Barbatruc
Re : masquer un controle dans un ruban personnel Excel

Re :),
Une dernière piste : moi, mes callbacks utilisaient returnedVal, toi tu as mis bool, ne serait-ce pas un mot réservé VBA ?
Sinon, je vois plus, si mon fichier marche et pas le tien...
Bon courage :cool:
 

Statistiques des forums

Discussions
312 175
Messages
2 085 953
Membres
103 059
dernier inscrit
gib17