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 :

Recherche User Form - ComboBox en cascade


Sujet :

Macros et VBA Excel

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Économiste
    Inscrit en
    Janvier 2016
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Canada

    Informations professionnelles :
    Activité : Économiste

    Informations forums :
    Inscription : Janvier 2016
    Messages : 114
    Par défaut Recherche User Form - ComboBox en cascade
    Bonjour tout le monde,

    J'essai depuis de faire ma recherche en fonction de mes combobox en cascade mais j'y arrive pas.
    Voici mes codes :

    Deux combobox pour le critère de recherche : cbo_dossier et cbo_demande

    J'aimerai que si l'utilisateur choisi un numéro de dossier(ID dans cet exemple) il affiche le nombre de demande lier a cet numéro de dossier(ID).
    Ensuite avec le bouton rechercher il affiche la ligne correspondante dans mon txtbox et autrre combobox en fonction des valeurs qui se trouvent dans cbo_dossier et cbo_demande

    Cela marche les numéros de dossiers comme (ANCÉ3, ASAS2 et ANAU5), mais pas pour le numéro de dossier (ID) COSI1 ( MsgBox "Aucune donnée correspondante trouvée").

    Je ne sais vraiment pas ou se trouve le problème.


    Initialisation de mon formulaire :
    (remplie la combobox cbo_dossier des ID sans doublons)

    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 UserForm_Initialize()
     
    Dim v, e
    With Sheets("DEMANDES").Range("A2:A65536")
        v = .Value
    End With
    With CreateObject("scripting.dictionary")
        .comparemode = 1
        For Each e In v
            If Not .exists(e) Then .Add e, Nothing
        Next
        If .Count Then Me.cbo_dossier.List = Application.Transpose(.keys)
    End With
     
    End Sub


    remplissage de la combobox cbo_demande en fonction de la combobox cbo_dossier :


    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
     
    Private Sub cbo_dossier_Change()
     
    Dim J As Long
    Dim NbLignes As Integer
     
    Set Ws = Worksheets("DEMANDES")
    NbLignes = Ws.Range("A65536").End(xlUp).Row
     
      Me.cbo_demande.Clear   'Efface les données de la combobox2
      If Me.cbo_dossier.ListIndex = -1 Then Exit Sub
      With Me.cbo_demande
        For J = 2 To NbLignes
          If Ws.Range("A" & J) = Me.cbo_dossier Then
            .AddItem Ws.Range("B" & J)
            .List(.ListCount - 1, 1) = J
          End If
        Next J
      End With
     
     
     
     
     
    End Sub

    Bouton de recherche :

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
     
    Private Sub rechercher_Click()
     
     
      Dim I As Long, NbLignes As Long
        Dim Source As Worksheet
        Dim Trouve As Boolean
     
        Set Source = Sheets("DEMANDES")
     
        Sheets("DEMANDES").Select
     
        NbLignes = Source.Cells(Rows.Count, "B").End(xlUp).Row
     
        For I = 1 To NbLignes
            If Source.Range("B" & I) = cbo_demande.Value Then
                Trouve = True
     
     
            nom_complet.Value = Source.Cells(I, 3).Value
            TextBox33.Value = Source.Cells(I, 4).Value
            TextBox16.Value = Source.Cells(I, 5).Value
            TextBox17.Value = Source.Cells(I, 6).Value
            TextBox18.Value = Source.Cells(I, 7).Value
            TextBox19.Value = Source.Cells(I, 8).Value
            TextBox35.Value = Source.Cells(I, 9).Value
            cbo_lieu_rdv.Value = Source.Cells(I, 10).Value
            TextBox5.Value = Source.Cells(I, 11).Value
            TextBox6.Value = Source.Cells(I, 12).Value
            TextBox7.Value = Source.Cells(I, 13).Value
            cbo_raison_medicale.Value = Source.Cells(I, 14).Value
            cbo_priorité.Value = Source.Cells(I, 15).Value
            cbo_etat_accomp.Value = Source.Cells(I, 16).Value
            TextBox11.Value = Source.Cells(I, 17).Value
            TextBox12.Value = Source.Cells(I, 18).Value
            TextBox13.Value = Source.Cells(I, 19).Value
            TextBox14.Value = Source.Cells(I, 20).Value
            TextBox15.Value = Source.Cells(I, 21).Value
            TextBox34.Value = Source.Cells(I, 22).Value
     
            cbo_nom_benevole.Value = Source.Cells(I, 23).Value
            TextBox21.Value = Source.Cells(I, 24).Value
            TextBox22.Value = Source.Cells(I, 25).Value
            TextBox23.Value = Source.Cells(I, 26).Value
            TextBox24.Value = Source.Cells(I, 27).Value
            TextBox25.Value = Source.Cells(I, 28).Value
            TextBox26.Value = Source.Cells(I, 29).Value
            TextBox27.Value = Source.Cells(I, 30).Value
            cbo_confirmation_paiement.Value = Source.Cells(I, 31).Value
            cbo_paiment_benevole.Value = Source.Cells(I, 32).Value
     
            TextBox28.Value = Source.Cells(I, 33).Value
            TextBox29.Value = Source.Cells(I, 34).Value
            TextBox32.Value = Source.Cells(I, 35).Value
            TextBox30.Value = Source.Cells(I, 36).Value
            TextBox31.Value = Source.Cells(I, 37).Value
                Exit For
            End If
        Next
     
        If Not Trouve Then
            MsgBox "Aucune donnée correspondante trouvée"
        End If
     
        Set Source = Nothing
     
     
     
     
    End Sub


    Ci-joint le fichier xlsm en question.


    Merci beaucoup pour votre aide et très bonne année!
    Images attachées Images attachées   

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Recherche de données via user form
    Par latop dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/07/2015, 12h16
  2. deplacement dans Excel avec user form actif
    Par rodrigue62 dans le forum Excel
    Réponses: 5
    Dernier message: 29/03/2007, 12h40
  3. [VBA-E] ComboBox en cascade avec correspondance dans matrice
    Par ViperSpy dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/06/2006, 17h01
  4. [VBA-W]User Form à l'ouverture d'un document
    Par Oly1973 dans le forum VBA Word
    Réponses: 3
    Dernier message: 22/03/2006, 11h10
  5. [MERCI][C#] Un moteur de recherche sous forme ....
    Par joshua.shamael dans le forum Windows Forms
    Réponses: 2
    Dernier message: 21/06/2005, 15h07

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