XL 2016 boite de dialogue pour onglets

  • Initiateur de la discussion Initiateur de la discussion bobafric
  • Date de début Date de début

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 !

re bonjour
et oui c'est pas simple les combo intuitive dans un sheets leurs events ne réagissent pas tout a fait comme dans un userform et visiblement le refresh est encore plus problématique avec une combo dans une feuille
 
Dernière édition:
re
en mettant le matchentry à none dans les propriétés de la combo
tu peux faire ceci
VB:
Option Explicit
Dim tablo()
Private Sub ComboBox1_Change()
    Dim mot$, i&
    If ComboBox1.Value = "" Then ComboBox1.Clear: Exit Sub
    With ComboBox1
        mot = .Value
        .Clear
        On Error Resume Next
        For i = 1 To UBound(tablo)
            If Left(LCase(tablo(i)), Len(.Value)) = .Value Then .AddItem tablo(i)
        Next
        .Value = mot
        If .ListCount = 1 Then
            .Enabled = False: .Enabled = True: .DropDown
            If .ListIndex > -1 Then Sheets(.List(.ListIndex)).Select
        Else
            .ListRows = .ListCount
            .DropDown
        End If
        If .ListCount = 0 Then .Value = Left(.Value, Len(.Value) - 1)
        .Enabled = False: .Enabled = True: .DropDown
    End With
    Application.ScreenUpdating = True
End Sub



Private Sub Worksheet_Activate()
    Dim i As Integer, X&
    Me.ComboBox1.Clear
    ComboBox1.Value = ""
    ReDim tablo(1 To Sheets.Count - 1)
    For i = 1 To Sheets.Count
        If Sheets(i).Name <> "Menu" Then X = X + 1: tablo(X) = Sheets(i).Name
    Next
    'Me.ComboBox1.List = tablo

End Sub
😉
 
re
en mettant le matchentry à none dans les propriétés de la combo
tu peux faire ceci
VB:
Option Explicit
Dim tablo()
Private Sub ComboBox1_Change()
    Dim mot$, i&
    If ComboBox1.Value = "" Then ComboBox1.Clear: Exit Sub
    With ComboBox1
        mot = .Value
        .Clear
        On Error Resume Next
        For i = 1 To UBound(tablo)
            If Left(LCase(tablo(i)), Len(.Value)) = .Value Then .AddItem tablo(i)
        Next
        .Value = mot
        If .ListCount = 1 Then
            .Enabled = False: .Enabled = True: .DropDown
            If .ListIndex > -1 Then Sheets(.List(.ListIndex)).Select
        Else
            .ListRows = .ListCount
            .DropDown
        End If
        If .ListCount = 0 Then .Value = Left(.Value, Len(.Value) - 1)
        .Enabled = False: .Enabled = True: .DropDown
    End With
    Application.ScreenUpdating = True
End Sub



Private Sub Worksheet_Activate()
    Dim i As Integer, X&
    Me.ComboBox1.Clear
    ComboBox1.Value = ""
    ReDim tablo(1 To Sheets.Count - 1)
    For i = 1 To Sheets.Count
        If Sheets(i).Name <> "Menu" Then X = X + 1: tablo(X) = Sheets(i).Name
    Next
    'Me.ComboBox1.List = tablo

End Sub

Désolé Patrick mais je ne suis pas calé en vba et je n'ai pas compris le [B]matchentry [/B]à [B]none [/B]dans les propriétés de la combo je joins un fichier vierge si tu peux le compléter 
[/QUOTE]
Merci
 

Pièces jointes

- 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
5
Affichages
314
Réponses
20
Affichages
1 K
Réponses
16
Affichages
726
Retour