CreatorRibbonX ImageMso evolution

CreatorRibbonX ImageMso evolution v 6.7b

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Bonjour @Zon

uste une petite demo du control calendrier dan le ruban
demo.gif
 
pour ceux que ca intéresse
le projet calendar
et les callback a coller dans le classeur sample produit
alors oui j'aurais pu faire plus simple mais il me manque des callback
VB:
'callback created by [[''creatorRibbonX'']]
'[createRibbonX Application] created by (''patricktoulon'')
'Version 2023  4.9.XX
'POUR MEMO 4 fonctions importantes à connaitre pour les controls dynamiques
'L 'objet IRibbonUI possède 4 méthodes :
'1° myribbon.Invalidate() qui actualise en une seule fois tous les contrôles personnalisés du classeur.
'2° myribbon.InvalidateControl("Id du control") qui actualise un contrôle particulier (ControlID correspond à l'identificateur unique du contrôle).
'3° myRibbon.ActivateTab ("id de l'onglet à activer")qui active l'onglet désigné par son ID dans les parenthèses
'4° myRibbonInvalidateControlMso ("Id de l'element"(onglet/group/control) )qui actualise  l'element désigné par son ID dans les parenthèses



'Nom du projet:[C:\Users\patrick1\Desktop\creator demo\Project_Calandrier\exemple.xml]
'créé le:[01/07/2023]
'l'event ribbon onLoad
Public myRibbon As IRibbonUI    ' {Variable pour l'object ribbon}
Public an&
Public mois&
Public minItem&
Public maxItem&
'Callback for customUI.onLoad
Sub CustomUIOnLoad(ribbon As IRibbonUI)
    Set myRibbon = ribbon
an = Year(Date)
mois = Month(Date)
End Sub

'procedure {onAction}de l'elementgallery [ID:''gallery_1''  ]'dans le parent [group_0''  Label:''Groupe N° 1'']
Sub gallery_1_Click(control As IRibbonControl, id As String, index As Integer)
Dim d As Date, WkD
d = DateSerial(an, mois, 1)
WkD = Weekday(d, vbUseSystemDayOfWeek)
d = d + index - 7 - WkD + 1
ActiveCell = d

End Sub

'procedure  {getItemCount} de l'element gallery dynamique[ID:''gallery_1''  ]'dans le parent [group_0''  Label:''Groupe N° 1'']
Sub gallery_1_getItemCount(control As IRibbonControl, ByRef returnedVal)
    returnedVal = 49
End Sub

'procedure  {getItemLabel}  de l'element(gallery)[ID:''gallery_1''  ]'dans le parent [group_0''  Label:''Groupe N° 1'']
Sub gallery_1_getItemLabel(control As IRibbonControl, index As Integer, ByRef returnedVal)
    Dim dat As Date, lastDay, WkD&
    If (an = 0 Or mois = 0) Then: Exit Sub
    If index + 1 <= 7 Then
        returnedVal = Left(WeekdayName(index + 1), 3)
    Else
        dat = DateSerial(an, mois, 1)
        lastDay = Day(DateSerial(an, mois + 1, 0))
        WkD = Weekday(dat, vbUseSystemDayOfWeek)
        dat = (dat - WkD) + 1
        If index + 1 >= WkD + 7 Then minItem = index + 1 = WkD + 7 - 1
       
        If index + 1 >= WkD + 7 Then
            If Month(dat + index - 7) = mois Then
                returnedVal = Day(dat + index - 7)
            End If
        End If
    End If
End Sub

'procedure {onChange} de l'element[ID:''comboBox_1''  Label:''Annee'']'dans le parent [comboBox_1''  Label:''Groupe N° 1'']
Sub comboBox_1_onChange(control As IRibbonControl, text As String)
    an = Val(text)
myRibbon.InvalidateControl ("gallery_1")
End Sub

'procedure  {getItemCount} de l'element comboBox dynamique[ID:''comboBox_1''  Label:''Annee'']'dans le parent [group_0''  Label:''Groupe N° 1'']
Sub comboBox_1_GetItemCount(control As IRibbonControl, ByRef returnedVal)
    returnedVal = 10
End Sub

'procedure  {getItemLabel}  de l'element(gallery)[ID:''comboBox_1''  Label:''Annee'']'dans le parent [group_0''  Label:''Groupe N° 1'']
Sub comboBox_1_GetItemLabel(control As IRibbonControl, index As Integer, ByRef returnedVal)
    returnedVal = Year(Date) - 5 + index
End Sub

'procedure {onChange} de l'element[ID:''comboBox_2''  Label:''Mois'']'dans le parent [comboBox_2''  Label:''Groupe N° 1'']
Sub comboBox_2_onChange(control As IRibbonControl, text As String)
    mois = Month(DateValue("1 / " & text & " /  " & an))
myRibbon.InvalidateControl ("gallery_1")
End Sub

'procedure  {getItemCount} de l'element comboBox dynamique[ID:''comboBox_2''  Label:''Mois'']'dans le parent [group_0''  Label:''Groupe N° 1'']
Sub comboBox_2_GetItemCount(control As IRibbonControl, ByRef returnedVal)
    returnedVal = 12
End Sub

'procedure  {getItemLabel}  de l'element(gallery)[ID:''comboBox_2''  Label:''Mois'']'dans le parent [group_0''  Label:''Groupe N° 1'']
Sub comboBox_2_GetItemLabel(control As IRibbonControl, index As Integer, ByRef returnedVal)
    returnedVal = MonthName(index + 1)
End Sub

la future version les callback seront dans un frame
je suis en train d'ajouter le getItemId (qui m'aurait bien servi pour le calendar)
demo.gif
 

Pièces jointes

Dernière édition:
Je cherche mais le galery click 1 ne me donne rien pour le moment, donc le calendos ne m'affiche rien alors que les combo fonctionnent.
 
Dernière édition:

Le calendos du Fichier Calendrier fonctionne ..mais est ce que tu es sûr que c'est le bon ???? 😁 😁 😁 😁

forum2.jpg



La blague me fait rire tout seul, désolé ...
Plus sérierusement,
J'ai chargé example.xml , j'ai créé le sample depuis ton appli. Pas de calendos . J'ai supprimé modulecallback, importer le tien depuis Calendrier.xlsm , fermer sample en enregistrant les modifs, ouverture sample calendos n'affiche rien.

A+++
 
Bonjour @Zon
oui j"ai du faire une erreur en glissant le fichier dans le post
en tout cas c'est un bon exemple pour montrer tout ce que l'on peu faire en dynamique
et encore les méthode employées sont un peu a rallonge vu qu'il me manque des callbacks comme le getItemID par exemple
 
le control calendrier Version 3
dans cet exemple je met en application les deux callbacks que j'ai ajouté a mon app
a savoir le getItemID et et le getSelectedItemIndex
et là le code pour gerer le calendar en devient un jeu d'enfant
je démontre aussi par la même occasion (j'en parlais précédemment ) que selon le besoins
on utilisera des comboBox ou des dropDowns

à ranger dans les exemples dynamique
😉
 

Pièces jointes

Dernière édition:
allez bonjour à tous
de bon matin en début de semaine, quelques petites annonces
on va certainement passer à la version 4.9.7
en effet j'en parles dans la video qui suit
petite dédicace a @Zon 😉
Pour afficher ce contenu, nous aurons besoin de votre consentement pour définir des cookies tiers.
Pour plus d'informations, consultez notre page sur les cookies.
 
Dernière édition:
Salut le forum, Patrick

Merci pour la dédicace...

Je te fais une proposition : j'ai remarqué que tes proptétés top de BtxComboTabInsertBefore , en descendant n'avait pas le même écart. on part de 68 , on pourrait gratter à 64
J'incrémente de 16 le top de chaque controle , donc pour tbxgroupautoscale, label75, et BtxgroupAutoScale.
je mets à la main 84 pour la propriété Top ainsi de suite on gagne un peu de place tout en harmonisant les écarts. Là j'ai fait jusqu'à Title.

Ensuite , je réduis la FRame1 en bas , et j'y ajoute la suppression de l'item et l'ascenseur qui ne fait que monter. qu'on peut mettre aussi sous EditBox.. aprés tout c'est bien un élément.

Sinon , j'avais pensé à un truc facile à dire mais pas à faire, se servir de ta fonction GetXElementsById pour n'afficher que les atributs suivant l'élément sélectionné en les repositionnant à chaque fois ou pas ...
Quand j'ai le temps je te regarde ça si tu veux.

Fini les discours, tiens voici une image .


pourpatrick.png
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour