XL 2013 Ruban et Classeurs

kabamel

XLDnaute Occasionnel
Slt à tous, J'ai un ruban personnalisé dont cinq groupes dans mon classeur contenant quatre feuil ("Accueil"; "Test1"; "Test2"; "Test3"), je voudrais dès l'ouverture d'excel seulement le groupe "Page" et "Ouvrir" sont visible et à qu'à chaque fois que j'active une feuil son groupe s'affiche et les autres sont non visible. Par exemble : quand j'active la feuil "Test1" le groupe "GroupeTest1" et "Page" sont visibles les autres non visibles, feuil "Test2" idem... .
Pour plus d'info, je suis à vous.
Merci pour votre aide.
 

Pièces jointes

  • TestRuban.xlsm
    11.9 KB · Affichages: 48
  • TestRuban.xlsm
    11.9 KB · Affichages: 55

kabamel

XLDnaute Occasionnel
Re : Ruban et Classeurs

Salut, Super
j'ai adapté à mon projet mais j'ai remarqué que mes feuilles ne se charges pas, j'ai essayé de comprendre un peu et par conclusion, il ya des espaces dans les noms de mes feuilles, je sais pas comment remédié à ça. J'ai besoin de votre aide.
Merci encore
 

jpb388

XLDnaute Accro
Re : Ruban et Classeurs

Bonjour à tous

remplace les par celles ci

Code:
Private Function ListeFeuilles(Wb As Workbook) As String
    Dim strTemp As String
    Dim Ws As Worksheet
    strTemp = "<menuSeparator id=""Feuilles"" title=""Feuilles""/>"
    For Each Ws In Wb.Worksheets
        strTemp = strTemp & _
            "<button " & _
            CreationAttribut("id", "Bt" & Ws.CodeName) & " " & _
            CreationAttribut("label", Ws.Name) & " " & _
            CreationAttribut("tag", Ws.Name) & " " & _
            CreationAttribut("onAction", "ActivationFeuille") & "/>"
    Next
    ListeFeuilles = strTemp
End Function


Private Function ListeCharts(Wb As Workbook) As String
    Dim strTemp As String
    Dim Ch As Chart
    If Wb.Charts.count = 0 Then Exit Function
    strTemp = "<menuSeparator id=""charts"" title=""charts""/>"
    For Each Ch In Wb.Charts
        strTemp = strTemp & _
            "<button " & _
            CreationAttribut("id", "Bt" & Ch.CodeName) & " " & _
            CreationAttribut("label", Ch.Name) & " " & _
            CreationAttribut("tag", Ch.Name) & " " & _
            CreationAttribut("onAction", "ActivationFeuille") & "/>"
    Next
    ListeCharts = strTemp
End Function
 

kabamel

XLDnaute Occasionnel
Re : Ruban et Classeurs

Slt à tous,
Au faite, dans le fil #17 il était question de charger les feuilles de façon dynamique, maintenant je voudrais qu'on mette une image sur chaque bouton du menu dynamique et qu'à chaque création d'une feuille l'image apparait sur le bouton.
NB : Vous pouvez utiliser l'image que vous voulez.
Merci et bonne journée
 

jpb388

XLDnaute Accro
Re : Ruban et Classeurs

Bonsoir à tous
J’ai rajouté une feuille para avec une liste d'imageMso car un menu dynamique n'accepte que ce format d'image
ATTENTION il te faut au minimum autant d'imageMso que de feuille
 

Pièces jointes

  • TestRuban (kabamel ) (3).xlsm
    32 KB · Affichages: 52
  • TestRuban (kabamel ) (3).xlsm
    32 KB · Affichages: 54

kabamel

XLDnaute Occasionnel
Re : Ruban et Classeurs

Slt, à tous
j'ai un petit problème dans mon code, j'explique : de la cellule "F4" à la cellule "L654" si une des cellules est remplis on efface les contenues sauf les formules dans le cas un message "les cellules sont vides"
Voici le code :
' Callback pour effacer le contenu des cellules sans les formules
Sub NettoieAction(ByVal control As IRibbonControl)
Dim Cellule As Range
Set Cellule = Range("F4:L654")
For Each Cellule In Range("F4:L654")
If Cellule = "" Then
MsgBox ("Les cellules sont vides !")
Exit Sub
Else
Dim marep
marep = MsgBox("Etes - vous sûr d'effacer les contenues ?", vbYesNo)
On Error Resume Next
If marep = vbYes Then
Sheets("Base N").Range("F4:L654").SpecialCells(xlCellTypeConstants, 23).ClearContents
MsgBox ("Terminer !")
Range("A2").Select
Exit Sub
Else
Exit Sub
End If
End If
Next Cellule
End Sub
Merci pour votre aide.
 

jpb388

XLDnaute Accro
Re : Ruban et Classeurs

Bonjour à tous
pour le poste #23
Code:
Private Function ListeFeuilles(Wb As Workbook) As String
    Dim strTemp As String, i%
    Dim Ws As Worksheet
    strTemp = "<menuSeparator id=""Feuilles"" title=""Feuilles""/>"
    i = 1
    For Each Ws In Wb.Worksheets
        Select Case Ws.Name
            Case "Para" 'pour ajouter une autre feuille tu met une virgule le nom de la feuille avec les guillemets
            Case Else
                strTemp = strTemp & _
                    "<button " & _
                    CreationAttribut("id", "Bt" & Ws.CodeName) & " " & _
                    CreationAttribut("label", Ws.Name) & " " & _
                    CreationAttribut("tag", Ws.Name) & " " & _
                    CreationAttribut("imageMso", Range("Imso[Image]").Cells(i).text) & " " & _
                    CreationAttribut("onAction", "ActivationFeuille") & "/>"
                    i = i + 1
        End Select
    Next
    ListeFeuilles = strTemp
End Function

pour le #24
à la place de 23 j'aurai mis xlnumbers (à tester)
 

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz