Alimentation combobox avec noms des feuilles

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 !

LeDébutantt

XLDnaute Nouveau
Bonjour à tous,

Je dois afficher le nom de toutes mes feuilles sauf deux dans une ComboBox, pour cela j'ai déjà créé une commande qui me permet d'exclure deux feuilles en particulier et de me rentrer le nom de la feuille trouvée dans ma ComboBox.

For i = 1 To Sheets.Count
Sheets(i).Select
If Sheets(i).Name <> "data_Historique" Then
If Sheets(i).Name <> "data_Planning" Then
FTacheEX.CBxMachine.Value = Sheets(i).Name
End If
End If
Next i

Mais comment faire pour que les autres noms de feuilles s'ajoutent automatiquement a la suite dans la ComboBox ?
 

Pièces jointes

Hello

je présume que tu souhaites remplir le comboox "CBxMachine" du formulaire FTacheEx ?

VB:
Private Sub UserForm_Initialize()
Dim ws As Worksheet

For Each ws In ActiveWorkbook.Sheets 'pour chaque feuille du classeur
    If ws.Name <> "data_Historique" And ws.Name <> "data_Planning" Then 'si le nom n'est pas data_Historique NI data_Planning alors
        Me.CBxMachine.AddItem ws.Name 'on ajoute le nom de la feuille dans le combobox ==> Me fait référence au formulaire en cours
    End If
Next ws
    
End Sub
 
Je me suis aussi permis de modifier le code dans ton formulaire fTache pour que tu vois qu'il n'est pas necessaire voire préférable de ne pas activer ou selectionner la feuille sur laquelle tu veux travailler

VB:
Private Sub CBValider_Click()
    
With Sheets("data_Historique")
    .Range("A" & .Rows.Count).End(xlUp).Offset(1, 0) = FTache.LDateJour
    .Range("A" & .Rows.Count).End(xlUp).Offset(0, 1) = FTache.LMachine
    .Range("A" & .Rows.Count).End(xlUp).Offset(0, 2) = FTache.LTache
    .Range("A" & .Rows.Count).End(xlUp).Offset(0, 3) = FTache.TBObs
    .Range("A" & .Rows.Count).End(xlUp).Offset(0, 4) = Format(FTache.TBTInter.Value, "hh:mm:ss")
End With
       
With Sheets("data_Planning")
    Set trouve = .Range("A:A").Find(CDate(FTache.LDatePrev))
    If Not trouve Is Nothing Then
        If trouve.Offset(0, 1).Value = FTache.LMachine Then
            If trouve.Offset(0, 2).Value = FTache.LTache Then
                trouve.EntireRow.Delete
            End If
        End If
    End If
End With
           
End Sub
 
- 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

Discussions similaires

Réponses
8
Affichages
234
Réponses
3
Affichages
673
Réponses
12
Affichages
704
Réponses
5
Affichages
477
Retour