Lister fichier dans un combobox du ruban

greguVB

XLDnaute Nouveau
[RESOLU] Lister fichier dans un combobox du ruban

Bonjour à tous,

J'ai un soucis, j'aimerai lister un répertoire bien défini dans un combobox intégrer à un groupe de control DANS mon ruban, je me suis servi de ce fil de discution cependant je planche pour récuperer les noms des fichiers, c'est à dire à ce niveau :
Code:
Sub ComboLabel(control As IRibbonControl, index As Integer, ByRef returnedVal)
ChDir "C:\Users\gregu\Documents\XLS"
path2 = Dir("*.*", 16)
While path2 <> ""
returnedVal = path2
path2 = Dir
Wend
End Sub

Quand je fais en pas à pas, la valeur de 'returnedval' change bien et m'indique à chaque boucle un nom de fichier different, mais une fois la procedure finie, je n'ai que le nom du fichier le plus recent (autant de fois qu'il y a d'item dans le repertoire..evidemment -_-)

si quelqu'un pouvait me venir en aide svp, ou me donner un petit indice, je chercherais

Merci d'avance !
 
Dernière édition:

MichelXld

XLDnaute Barbatruc
Re : Lister fichier dans un combobox du ruban

bonjour


tu peux tester cette adaptation :


Dans le fichier xml de personnalisation :

Code:
<customUI xmlns="" onLoad="RubanCharge"
>
<ribbon startFromScratch="false">
<tabs>
<tab id="OngletPerso" label="OngletPerso" visible="true">
   <group id="Projet01" label="Projet 01">
      <!-- getItemCount="NbItemCombo" va définir le nombre d'items dans la combobox. --> 
      <!-- getItemLabel="ComboLabel" permet d'alimenter la combobox. -->
      <!-- onChange="ChangeCombo1" gère l'évènement 'Change' dans la combobox. -->
      <comboBox id="Combo1" label="Choix : " getItemCount="NbItemCombo" getItemLabel="ComboLabel"
         onChange="ChangeCombo1" />
   </group>
</tab>
</tabs>
</ribbon>
</customUI>




Dans le module objet ThisWorkbook du classeur :

Code:
Option Explicit

Private Sub Workbook_Open()
    Dim Chemin As String, Fichier As String
    Dim i As Integer
    
    'Définit le répertoire contenant les fichiers
    Chemin = "C:\Documents and Settings\mimi\dossier\"
    
    'Boucle sur tous les fichiers du répertoire.
    Fichier = Dir(Chemin & "*.*")
    
    Do While Len(Fichier) > 0
        i = i + 1
        'écrit le résultat dans le tableau.
        ReDim Preserve Tableau(1 To i)
        Tableau(i) = Fichier
        Fichier = Dir()
    Loop
End Sub



Dans un module standard du classeur :

Code:
Option Explicit
 
Public MonRuban As IRibbonUI
Public Tableau() As String

'Callback for customUI.onLoad
'Est déclenché lors du chargement du ruban personnalisé.
Sub RubanCharge(ribbon As IRibbonUI)
    Set MonRuban = ribbon
End Sub
 
 
'Callback for Combo1 getItemCount
Sub NbItemCombo(control As IRibbonControl, ByRef returnedVal)
    'Définit le nombre d'éléments dans la combobox
    returnedVal = UBound(Tableau)
End Sub
 
 
'Callback for Combo1 getItemLabel
Sub ComboLabel(control As IRibbonControl, index As Integer, ByRef returnedVal)
    'Alimente le Combobox à partir des données du tableau
     returnedVal = Tableau(index + 1)
End Sub
 
 
'Callback for Combo1 onChange
Sub ChangeCombo1(control As IRibbonControl, text As String)
    'Renvoie l'élément sélectionné dans la combobox
    MsgBox text
End Sub



bonne soirée
michel
Microsoft Excel MVP
 

Discussions similaires

Réponses
13
Affichages
413

Statistiques des forums

Discussions
312 490
Messages
2 088 882
Membres
103 981
dernier inscrit
vinsalcatraz