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 :

Comment faciliter les recherches par le biais d'un combo-box


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 73
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 30
    Par défaut Comment faciliter les recherches par le biais d'un combo-box
    Bonjour,

    A l'ouverture de son fichier excel, l'utilisateur peut, par le biais d'un combo-box , appeler un numéro de dossier afin de modifier, si nécessaire, les différentes informations qu'il comprend.

    Dans ce combo-box, il y a la liste d'un certain nombre de dossiers déjà créés, par exemple à l'ouverture, les nombres de 1 à 16 apparaissent. Si je veux sélectionner le dossier 45 sans faire défiler tous les nombres par le biais de l'ascenseur vertical et que je tape 45, le choix revient sur 5 et non sur 45.

    Quel code spécifique écrire ou quelle propriété donner à cet objet pour permettre la sélection ad hoc.

    Vous remerciant par avance de votre précieux concours,

    Cordialement

    Guy

  2. #2
    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,

    Cela me paraît logique puisque dans ta Combo tu n'as que des nombres de 1 à 16, il est impossible qu'il t'affiche 45.
    Cordialement

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 73
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 30
    Par défaut
    Bonjour,

    En fait, je me suis mal exprimé. Naturellement que dans mon fichier excel, j'ai bien le dossier n° 45 comme j'ai le numéro 150 et bien plus encore. En fait, je voulais dire que dans le combo-box apparaissant à l'utilisateur il voyait les dossiers numérotés de 1 à 16 et plus s'il utilisait l'ascenseur vertical.

    Cordialement

    Guy59960

  4. #4
    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,

    Milles excuses, la prochaine fois je lirai moins vite.

    Voici un bout de code que tu devras modifier selon tes besoins.
    Dans ce modèle j'alimente 7 ListBox selon le numéro choisi dans dans la Combo

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    Private Sub CmbNum_Change()
    Dim Cell As Range
    Dim A1(0 To 500, 0 To 1) As String
    Dim A2(0 To 500, 0 To 1) As String
    Dim A3(0 To 500, 0 To 1) As String
    Dim A4(0 To 500, 0 To 1) As String
    Dim A5(0 To 500, 0 To 1) As String
    Dim A6(0 To 500, 0 To 1) As String
    Dim A7(0 To 500, 0 To 1) As String
     
    Dim i As Byte
    Dim L As Byte
        If UForm.CmbNum.Value <> "" Then
        L = Len(CmbNum)
    'à partir de la feuille "Général" les cellules A4:A500 sont sélectionner pour alimenter la Combo
            For Each Cell In Sheets("Général").Range("A4:A500")
                If UCase(Left(Cell.Text, L)) = UCase(CmbNum.Text) Then
                    A1(i, 0) = Cell.Offset(0, 1).Text
                    A2(i, 0) = Cell.Offset(0, 2).Text
                    A3(i, 0) = Cell.Offset(0, 3).Text
                    A4(i, 0) = Cell.Offset(0, 4).Text
                    A5(i, 0) = Cell.Offset(0, 5).Text
                    A6(i, 0) = Cell.Offset(0, 6).Text
                    A7(i, 0) = Cell.Offset(0, 7).Text
     
                i = i + 1
                End If
            Next
            UForm.LstNom.List = A1()
            UForm.LstPnom.List = A2()
            UForm.LstAdr.List = A3()
            UForm.LstCp.List = A4()
            UForm.LstVille.List = A5()
            UForm.LstCat.List = A6()
            UForm.LstCat2.List = A7()
     
        End If
    End Sub
    si tu utilises des TextBox, avec ce code tu devrais t'en sortir.

    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
     
    Private Sub CmbNum_Change()
    Dim Nume As Variant
    Dim Num As Variant
    Dim z As Byte
    'Ici il y a 9 TextBox nommées T1, T2, etc... alors
    For z 1 to 9: Controls("T" & (z)) = "" : Next z
    Num = 1
     
    For each Nume Sheets ("Nom de ta feuille"). Range("A1:A" & Range ("A" & Rows.Count).End(xlUp).Row)
    if Nume=Cmb (ta combo). Value Then
    Controls ("T" & Num).Value = Nume.Offset (0,1) 'Tu remplaces par le n° de la colonne
    Controls ("T" & Num + 1).Value = Nume.Offset(0,2) 'idem ci-dessus
    etc.. jusqu'à ton dernier TextBox
    end if
    Next
    End Sub
    Voilà je reste à ta disposition

Discussions similaires

  1. Moteur de recherche : comment trier les résultats par pertinence
    Par aucunIDdeLibre dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/12/2007, 13h42
  2. Réponses: 1
    Dernier message: 21/09/2006, 13h15
  3. Comment réaliser une recherche par mot clef ?
    Par mouchkar dans le forum ASP.NET
    Réponses: 2
    Dernier message: 06/09/2006, 11h48
  4. Réponses: 9
    Dernier message: 13/06/2005, 17h56
  5. [HTTP] Comment utiliser les POST par programation
    Par Popof dans le forum Général Conception Web
    Réponses: 9
    Dernier message: 31/01/2005, 09h14

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