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

Vue hybride

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   

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonsoir
    Pour faire bouger cette discussion et si tu cherches à alimenter un combobox en fonction d'une autre déja choisie je te propose un exemple dans cette discussion
    BONNE CONTINUATION

  3. #3
    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 merci
    Merci beaucoup BENNASR,

    Les codes que tu proposes fonctionne parfaitement.

    Merci encore!

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

    J'avais une question.

    Comment je peux modifier la ligne de ma base de données correspondante au deux critères de recherche?

    Par exemple j'aimerai pouvoir modifier la ligne correspondante à : cbo_dossier = ANCÉ3 et cbo_demande = 1.



    Je veux éviter de créer une autre variable qui va correspondre à la combinaison de ces 2 critères et ensuite faire ma modification en fonction de cette variable.


    Mon code pour modifier une ligne pour un critère est le suivant :


    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
     
    Dim modif As Integer
     
    If MsgBox("Êtes-vous sûr de vouloir apporter les modifications?", vbYesNo, "Confirmation de modification") = vbYes Then
     
    If Not cbo_dossier.Value = "" Then
    Sheets("DEMANDES").Select
     
    modif = cbo_dossier.ListIndex + 2
     
     
     
     
            Cells(modif, 1) = TextBox36.Value
            Cells(modif, 3) = nom_complet.Value
            Cells(modif, 4) = TextBox33.Value
            Cells(modif, 5) = TextBox16.Value
            Cells(modif, 6) = TextBox17.Value
            Cells(modif, 7) = TextBox18.Value
            Cells(modif, 8) = TextBox19.Value
            Cells(modif, 9) = TextBox35.Value
            Cells(modif, 10) = cbo_lieu_rdv.Value
            Cells(modif, 11) = TextBox5.Value
            Cells(modif, 12) = TextBox6.Value
            Cells(modif, 13) = TextBox7.Value
            Cells(modif, 14) = cbo_raison_medicale.Value
            Cells(modif, 15) = cbo_priorité.Value
            Cells(modif, 16) = cbo_etat_accomp.Value
            Cells(modif, 17) = TextBox11.Value
            Cells(modif, 18) = TextBox12.Value
            Cells(modif, 19) = TextBox13.Value
            Cells(modif, 20) = TextBox14.Value
            Cells(modif, 21) = TextBox15.Value
            Cells(modif, 22) = TextBox34.Value
     
            Cells(modif, 23) = cbo_nom_benevole.Value
            Cells(modif, 24) = TextBox21.Value
            Cells(modif, 25) = TextBox22.Value
            Cells(modif, 26) = TextBox23.Value
            Cells(modif, 27) = TextBox24.Value
            Cells(modif, 28) = TextBox25.Value
            Cells(modif, 29) = TextBox26.Value
            Cells(modif, 30) = TextBox27.Value
            Cells(modif, 31) = cbo_confirmation_paiement.Value
            Cells(modif, 32) = cbo_paiment_benevole.Value
     
            Cells(modif, 33) = TextBox28.Value
            Cells(modif, 34) = TextBox29.Value
            Cells(modif, 35) = TextBox32.Value
            Cells(modif, 36) = TextBox30.Value
            Cells(modif, 37) = TextBox31.Value
     
     
     
     
     
    MsgBox ("Les modifications ont été apporté avec succès!")
     
    Else
     
     
    Exit Sub
     
    End If
     
    Unload UserForm4
    UserForm4.Show
     
     
    End If

    Merci encore!

+ 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, 13h16
  2. deplacement dans Excel avec user form actif
    Par rodrigue62 dans le forum Excel
    Réponses: 5
    Dernier message: 29/03/2007, 13h40
  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, 18h01
  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, 12h10
  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, 16h07

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