IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Taper un choix dans ComboBox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut Taper un choix dans ComboBox
    Bonjour à tous,

    Dans une Combox, l'utilisateur peut choisir une feuille à partir d'une liste, les noms sont sous cette forme L24, L2589, etc..
    La liste étant relativement longue, j'aimerai savoir si il est possible que l'utilisateur tape directement le nom de la page recherchée ?
    Comment puis-je procéder ?
    Je vous en remercie par avance
    Bien amicalement
    René

  2. #2
    Membre émérite Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Par défaut
    Bonjour

    Allez voir dans les proprité du combobox , selectionner Matchentry puis F1 pour l'aide de cette proprité.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Bonjour,

    J'ai bien appliqué la procédure comme indiquée dans le prorpiété du Combo. Toutes mes feuilles commencent par L, donc dès que je commence à taper la feuille que je souhaite, par exemple L45123, c'est systématiquement la première feuille qui s'affiche (L24).
    J'indique ici les code liés à la combo.
    La liste qui s'affiche dans ma Combo correspond aux noms des onglets.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    Private Sub CmbLigne_Change()
    Dim NomFeuille As String, Ws As Object
    Dim NomFeuil As String
     
        Application.ScreenUpdating = False
     
    'Je rends toutes les feuilles visibles
     
        For Each Ws In ActiveWorkbook.Worksheets
        Ws.Visible = True
    Next Ws
     
    'Je sélectionne la feuille du combo
        NomFeuille = Me.CmbLigne.Value
        NomFeuil = ("F" & Me.CmbLigne.Value)
        ActiveWorkbook.Sheets(NomFeuille).Activate
        ActiveWorkbook.Sheets(NomFeuil).Activate
    'Je masque les autres feuilles
        For Each Ws In ActiveWorkbook.Worksheets
            If Ws.name <> NomFeuille Then Ws.Visible = xlSheetVeryHidden
            Sheets("Accueil").Visible = True
            Sheets("F" & Me.CmbLigne).Visible = True
            Next Ws
     
    'Je ferme l'userform
    Unload Me
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    Private Sub UserForm_Initialize()
    Dim mesOnglets() As MyOnglet
    Dim I As Long
    ReDim mesOnglets(0)
    Dim L
    For I = 1 To ActiveWorkbook.Worksheets.Count
     
              If Left(Sheets(I).name, 1) = "L" Then 'test de  la premier lettre du nom de la feuille
                ReDim Preserve mesOnglets(UBound(mesOnglets) + 1)
                mesOnglets(UBound(mesOnglets)).couleur = ActiveWorkbook.Sheets(I).Tab.Color
                mesOnglets(UBound(mesOnglets)).name = UCase(ActiveWorkbook.Sheets(I).name)
                mesOnglets(UBound(mesOnglets)).L = CLng(Right(ActiveWorkbook.Sheets(I).name, Len(ActiveWorkbook.Sheets(I).name) - 1))
              End If
        Next I
        TrieOnglet mesOnglets
    For I = 1 To UBound(mesOnglets)
         Me.CmbLigne.AddItem (mesOnglets(I).name)
    Next
    End Sub

  4. #4
    Membre émérite Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Par défaut
    Bonjour

    J'ai moi un simple combobox paramatrer sur 1-fmmatchentry complete
    avec ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub cboxsejours_Change()
    On Error Resume Next
    Sheets("" & cboxsejours).Activate
    End Sub
    si je tape L, il vas sur la feuille L, Logique
    Quand j'ajoute 4, il affiche la feuille L4, normal
    Et ainsi de suite jusque L45854, est t-il genant d'avoir un aperçu des autres pages,
    sinon l'evenement change ne me semble pas approprié.

    Pour la premiere parti de code, pourquoi rendre tous les onglets visible avant de tous les recacher sauf celui désiré ?
    ne serait t-il pas plus simple d'afficher l'onglets désiré. Puis lors de la fermeture de cette feuille, de recacher l'onglet avec worksheet.desactivate.
    Ws as worksheet me semble plus exact que Ws as object (mais je me trompe peut etre).

  5. #5
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Bonjour,

    J'ai mis en place l'évènement Change car lorsque l'utilisateur choisi par exemple L24, alors la feuille FL24 s'affiche également. Les deux sont indisociables pour une bonne gestion.
    Je vais regarder par rapport à ta proposition si je peux faire autrement.
    Merci pour ton aide
    Cordialement

Discussions similaires

  1. Réponses: 14
    Dernier message: 07/04/2014, 19h08
  2. Réponses: 0
    Dernier message: 16/11/2012, 16h09
  3. [XL-2010] choix dans combobox et validation
    Par Pierre67 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/09/2012, 10h24
  4. Réponses: 2
    Dernier message: 12/10/2009, 23h55
  5. [vba-e] Liste de choix dans ComboBox
    Par damsmut dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/07/2006, 16h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo