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 :

pb vba recherche sur un formulaire


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Juin 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Juin 2016
    Messages : 36
    Points : 4
    Points
    4
    Par défaut pb vba recherche sur un formulaire
    Bonjour a tous,

    j'ai besoin de votre aide, j'ai un formulaire qui fonctionne tres bien, j'aimerais y rajouter un userform pour faire des recherche.
    Chose que j'ai faite, mais je ne touve pas le bon code pour ce que je veux faire...
    Voici mon fichier ci joint et ce que j'aimerais faire.

    j'ai crée un Userform2 pour la recherche pour vous montrer ce que j'aimerais faire.

    En faite dans recherche il fraudais qu’il apparais la liste de la page CATEG.

    Donc si je choisis devis a faire,

    Sa doit m'afficher tous les devis a faire qu'il ce trouve dans la page DTEL colonne AM.

    Résultat en dessous: num sav / nom / date entree

    j'avais réussi a faire quelque chose, mais le soucie c'est que si j'ai 15 devis a faire, dans ma liste déroulante sa va M'afficher 15 fois 'devis a faire' c'est pas le but. Le but c'est que sa m'affiche dans le résultat tous les numéros sav,nom,date entrée a faire!

    et la je ne sais comment faire.

    Si vous pouvez m'aidez c'est cool!
    merci

  2. #2
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 134
    Points : 84 790
    Points
    84 790
    Billets dans le blog
    15
    Par défaut
    Bonsoir,

    De nombreux membres n'ouvrent pas les pièces jointes, surtout s'ils contiennent des macros.

    Le mieux serait de fournir des captures d'écran et poster le code VBA (via la balise #) que vous souhaitez corriger.

    Cordialement,
    Malick
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  3. #3
    Candidat au Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Juin 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Juin 2016
    Messages : 36
    Points : 4
    Points
    4
    Par défaut
    J'ai ce code que j'ai trouvé sur internet, il permet une recherche intégrale dans la feuille.

    Il faudrait adapter ce code selon ma feuille.

    Ce que j'aimerais c'est avoir une liste déroulante avec les termes suivant pour ma recherche.

    DEVIS A FAIRE
    A FAIRE REPARATION
    ATTENTE REPONSE
    ATTENTE PIECE
    A VENIR CHERCHER
    TERMINE / SORTIE

    Exemple si je clique sur devis a faire, le résultat qui doit s'afficher sont les colonnes, AK - AM - B de toutes les lignes de la feuille.

    Voila voila. sa fais 1 semaine que je cherche


    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
    Option Explicit
    Option Compare Text
     
    Const Sign As String = "RECHERCHES"
     
    'ICI C'est la mise en place initialisation
    Private Sub UserForm_Initialize()
        'pour la date du jour
        Me.Caption = Format(Date, "dddd dd mmmm yyyy")
        With ListBox1
            .ColumnCount = 7
            .ColumnWidths = "150;100;0;80;80;70;0"
        End With
        Me.CommandButton1.Default = True
     
       ' pour définir la couleur des objets lors de l'initialisation d'un UserForm.
        With RECHERCHETOUS
            .BackColor = &H8000000F
            .CommandButton1.BackColor = &H8000000F
            .CommandButton2.BackColor = &H8000000F
            .Label3.BackColor = &H8000000F
        End With
     
    End Sub
     
    'ICI C'est le Moteur de Recherche
    Private Sub CommandButton1_Click()
    Dim F As Worksheet
    Dim Plage As Range, C As Range
    Dim T As String, Firstaddress As String
    Dim x As Integer
        ListBox1.Clear
        T = Me.TextBox1
        If T = "" Then Exit Sub
        For Each F In Worksheets
            With F
                Set Plage = Application.Intersect(.UsedRange.Cells, .Range(.Cells(8, 1), .Cells(.Rows.Count, .Columns.Count)))
            End With
            Set C = Plage.Find(T, LookIn:=xlValues, LookAt:=xlPart)
            If Not C Is Nothing Then
                Firstaddress = C.Address
                Do
                    With ListBox1
                        .AddItem F.Name
                        For x = 2 To 6
                            .List(.ListCount - 1, x - 1) = F.Cells(C.Row, x).Text
                        Next x
                        .List(.ListCount - 1, 6) = C.Address(False, False)
                    End With
                    Set C = Plage.FindNext(C)
                Loop While Not C Is Nothing And C.Address <> Firstaddress
            End If
        Next F
     
        If ListBox1.ListCount = 0 Then
            MsgBox "Le Texte " & T & " n'a pas été trouvé" & vbLf & "Faites un essai sur une partie du nom", vbCritical, Sign
        End If
    End Sub
     
    'ICI C'est la sélection au Double Click & Sortie du UserForm
    Private Sub ListBox1_dblClick(ByVal Cancel As MSForms.ReturnBoolean)
        With ListBox1
            Application.Goto Sheets(.Text).Range(.List(.ListIndex, 6))
        End With
        Unload Me
    End Sub
     
    'ICI Sortie du UserForm
    Private Sub CommandButton2_Click()
        Unload Me
    End Sub

  4. #4
    Candidat au Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Juin 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Juin 2016
    Messages : 36
    Points : 4
    Points
    4
    Par défaut
    Bonjour,
    je recherche toujours une solution :/

    j'ai trouvé un code plus simple qui fonctionne avec mon formulaire, mais je n'arrive pas a changer les colonnes dans ce code.

    Voici le code

    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
    Dim f, TblBd
    Private Sub UserForm_Initialize()
      Set f = Sheets("DTEL")
      Set D = CreateObject("Scripting.Dictionary")
      TblBd = f.Range("a2:f" & f.[A65000].End(xlUp).Row)
      D("*") = ""
      For i = LBound(TblBd) To UBound(TblBd)
        a = Split(TblBd(i, 6), ";")
        For Each C In a: D(C) = "": Next C
      Next i
      Me.ComboBox1.List = D.keys
     
      Me.ComboBox1 = ActiveSheet.[A1]
     
    End Sub
     
     
    Private Sub ComboBox1_click()
     ListBox1.Clear
     j = 0
     For i = LBound(TblBd) To UBound(TblBd)
       If (InStr(TblBd(i, 6), ComboBox1) > 0 And TblBd(i, 5) Like ComboBox2) _
         Or (Me.ComboBox1 = "*" And TblBd(i, 5) Like ComboBox2) Then
         Me.ListBox1.AddItem
         For k = 1 To 6
             ListBox1.List(j, k - 1) = TblBd(i, k)
         Next k
         j = j + 1
       End If
      Next i
    End Sub

    En ce moment, la combox1 recherche dans la colonne F;
    J'aimerais qu'elle recherche dans la colonne AM.
    il y a des doublons dans ma liste, mais d’après ce code sa ne les affiches pas donc c'est parfait.
    Le résultat qu'elle donne en ce moment dans la listbox1, c'est les valeurs de toutes les ligne(je suppose) des colonnes A et F.
    Et j'aimerais tous simplement le résultat des colonnes : B / I /AN / Ak de toutes les lignes.

    Je pense pas qu'il a pas beaucoup de modif a faire, mais je n'y arrive pas.
    Merci a vous.

  5. #5
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour,

    sans tester, ni regarder plus précisément, je pense qu'il faut changer cette ligne dans l'évènement "Initialize"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      TblBd = f.Range("A2:AN" & f.Range("A" & f.Rows.Count).End(xlUp).Row)
    parce que
    J'aimerais qu'elle recherche dans la colonne AM.
    et tu veux dans la listbox, la colonne "AN"
    ensuite dans l'évènement "Click", je mettrais ça
    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
    Private Sub ComboBox1_click()
     ListBox1.Clear
     j = 0
     For i = LBound(TblBd) To UBound(TblBd)
       If (InStr(TblBd(i, 39), ComboBox1) > 0 And TblBd(i, 5) Like ComboBox2) _
         Or (Me.ComboBox1 = "*" And TblBd(i, 5) Like ComboBox2) Then
          ListBox1.AddItem
          ListBox1.List(j, 0) = TblBd(i, 2)
          ListBox1.List(j, 1) = TblBd(i, 9)
          ListBox1.List(j, 2) = TblBd(i, 40)
          ListBox1.List(j, 3) = TblBd(i, 37)
     
       End If
      Next i
    End Sub
    à toi de vérifier les conditions, je peux me tromper!!!
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  6. #6
    Candidat au Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Juin 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Juin 2016
    Messages : 36
    Points : 4
    Points
    4
    Par défaut
    Merci pour ta réponse,

    malheureusement, dans ma liste combox1 j'ai toujours les élément de la colonnes F.

    et sa mais une erreur sur la ligne ListBox1.List(j, 2) = TblBd(i, 40)

    Voici ce que j'ai entree comme code:

    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
    Dim f, TblBd
    Private Sub UserForm_Initialize()
      Set f = Sheets("DTEL")
      Set D = CreateObject("Scripting.Dictionary")
      TblBd = f.Range("A2:AN" & f.Range("A" & f.Rows.Count).End(xlUp).Row)
      D("*") = ""
      For i = LBound(TblBd) To UBound(TblBd)
        a = Split(TblBd(i, 6), ";")
        For Each C In a: D(C) = "": Next C
      Next i
      Me.ComboBox1.List = D.keys
     
      Me.ComboBox1 = ActiveSheet.[A1]
     
    End Sub
     
     
    Private Sub ComboBox1_click()
     ListBox1.Clear
     j = 0
     For i = LBound(TblBd) To UBound(TblBd)
       If (InStr(TblBd(i, 39), ComboBox1) > 0 And TblBd(i, 5) Like ComboBox2) _
         Or (Me.ComboBox1 = "*" And TblBd(i, 5) Like ComboBox2) Then
          ListBox1.AddItem
          ListBox1.List(j, 0) = TblBd(i, 2)
          ListBox1.List(j, 1) = TblBd(i, 9)
          ListBox1.List(j, 2) = TblBd(i, 40)
          ListBox1.List(j, 3) = TblBd(i, 37)
     
       End If
      Next i
    End Sub

  7. #7
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    pour la combo, essayes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        a = Split(TblBd(i, 39), ";")
    et pour l'autre, un oubli
    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
    Private Sub ComboBox1_click()
     ListBox1.Clear
     j = 0
     For i = LBound(TblBd) To UBound(TblBd)
       If (InStr(TblBd(i, 39), ComboBox1) > 0 And TblBd(i, 5) Like ComboBox2) _
         Or (Me.ComboBox1 = "*" And TblBd(i, 5) Like ComboBox2) Then
          ListBox1.AddItem
          ListBox1.List(j, 0) = TblBd(i, 2)
          ListBox1.List(j, 1) = TblBd(i, 9)
          ListBox1.List(j, 2) = TblBd(i, 40)
          ListBox1.List(j, 3) = TblBd(i, 37)
          j = j + 1
       End If
      Next i
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  8. #8
    Candidat au Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Juin 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Juin 2016
    Messages : 36
    Points : 4
    Points
    4
    Par défaut
    Merci j'ai pas trop comprit ou je mes cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a = Split(TblBd(i, 39), ";")
    merci

  9. #9
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    à la place de l'autre, ci-dessous, en couleur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      ....
    For i = LBound(TblBd) To UBound(TblBd)
        a = Split(TblBd(i, 39), ";")
        For Each C In a: D(C) = "": Next C
      Next i
      Me.ComboBox1.List = D.keys
    ...
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  10. #10
    Candidat au Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Juin 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Juin 2016
    Messages : 36
    Points : 4
    Points
    4
    Par défaut
    Merci

    ce qui donne :

    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
    Dim f, TblBd
    Private Sub UserForm_Initialize()
      Set f = Sheets("DTEL")
      Set D = CreateObject("Scripting.Dictionary")
       a = Split(TblBd(i, 39), ";")
      D("*") = ""
      For i = LBound(TblBd) To UBound(TblBd)
        a = Split(TblBd(i, 39), ";")
        For Each C In a: D(C) = "": Next C
      Next i
      Me.ComboBox1.List = D.keys
     
     
      Me.ComboBox1 = ActiveSheet.[A1]
     
    End Sub
     
    Private Sub ComboBox1_click()
     ListBox1.Clear
     j = 0
     For i = LBound(TblBd) To UBound(TblBd)
       If (InStr(TblBd(i, 39), ComboBox1) > 0 And TblBd(i, 5) Like ComboBox2) _
         Or (Me.ComboBox1 = "*" And TblBd(i, 5) Like ComboBox2) Then
          ListBox1.AddItem
          ListBox1.List(j, 0) = TblBd(i, 2)
          ListBox1.List(j, 1) = TblBd(i, 9)
          ListBox1.List(j, 2) = TblBd(i, 40)
          ListBox1.List(j, 3) = TblBd(i, 37)
          j = j + 1
       End If
      Next i
    End Sub
    quand exécute message erreur : erreur 13 d’exécution, compatibilité de type :/

  11. #11
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    quand exécute message erreur : erreur 13 d’exécution, compatibilité de type :/
    l'erreur est sur quelle ligne ?
    le problème est que je n'ai pas ouvert ton fichier, alors pour le Split, je ne peux pas deviner

    j'ai 'impression que tu reprends un code tout fait et que pour l'extraction sans doublon, il va falloir faire autrement, c'est dommage, je n'ai plus de temps devant moi, si ton problème n'est pas résolu, demain, j'essayerai de comprendre et résoudre celui-ci
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  12. #12
    Candidat au Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Juin 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Juin 2016
    Messages : 36
    Points : 4
    Points
    4
    Par défaut
    Et je sais pas sa mes l'erreur juste, sa me dit pas la ligne :/

    Au final j'aimerais que avoir une combox1 de recherche qui correspondant a la ligne AM, avec des doublons,

    et afficher le résultat des colonnes B / I /AN / Ak de toutes les lignes dans ma listbox1 tous simplement.

    merci

  13. #13
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    allez, vite fait, remplaces cette partie
    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
    Dim f, TblBd
    Private Sub UserForm_Initialize()
      Set f = Sheets("DTEL")
      Set D = CreateObject("Scripting.Dictionary")
       a = Split(TblBd(i, 39), ";")
      D("*") = ""
      For i = LBound(TblBd) To UBound(TblBd)
        a = Split(TblBd(i, 39), ";")
        For Each C In a: D(C) = "": Next C
      Next i
      Me.ComboBox1.List = D.keys
     
     
      Me.ComboBox1 = ActiveSheet.[A1]
     
    End Sub
    par cette partie
    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
    Dim f As Worksheet, TblBd, Tb(), d, i As Long, c
    Private Sub UserForm_Initialize()
     
    Set f = Sheets("DTEL")
      Set d = CreateObject("Scripting.Dictionary")
      TblBd = f.Range("A2:AN" & f.Range("A" & f.Rows.Count).End(xlUp).Row)
      ReDim Tb(1 To UBound(TblBd, 1))
      For i = 1 To UBound(Tb, 1)
        Tb(i) = TblBd(i, 39)
      Next i
      d("*") = ""
      For i = 1 To UBound(Tb)
        For Each c In Tb: d(c) = "": Next c
      Next i
      Me.ComboBox1.List = d.keys
     
     ' Me.ComboBox1 = ActiveSheet.[A1]
     
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  14. #14
    Candidat au Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Juin 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Juin 2016
    Messages : 36
    Points : 4
    Points
    4
    Par défaut
    merci

    sa fonctionne
    mais sa m'affiche que les 3 premiers ligne de AM

    et après ma listbox est vide.

    merci

  15. #15
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    je n'ai plus le temps, vérifies ton fichier et éxécutes ta macro "Initialize" pas à pas et regardes au fur et à mesure les valeurs de "UBound(Tb, 1)" entre autres

    à demain si tu le veux bien
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  16. #16
    Candidat au Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Juin 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Juin 2016
    Messages : 36
    Points : 4
    Points
    4
    Par défaut
    ok merci je vais essayer de regarde.

    surement a demain!

    merci a toi

  17. #17
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    je viens d'ouvrir ton fichier et il n'y a rien dans AN, comment veux-tu que ça fonctionne au regard de cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TblBd = f.Range("A2:AN" & f.Range("A" & f.Rows.Count).End(xlUp).Row)
    et de celle-ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListBox1.List(j, 2) = TblBd(i, 40)
    allez ! je me sauve !
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  18. #18
    Candidat au Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Juin 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Juin 2016
    Messages : 36
    Points : 4
    Points
    4
    Par défaut
    normal, si tu as pris le tous premier fichier c'est plus le bon lol

    c'est celui ci maintenant.

    Quand je prend la 1er ligne sa s'affiche bien dans listbox

    mais pas les autres lignes, et sa sarrette a la linge 4 j'ai l'impression.

    Sa doit pas etre grand chose...
    Fichiers attachés Fichiers attachés

  19. #19
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour, essayes, vite fait
    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
    Private Sub UserForm_Initialize()
     
    Set f = Sheets("DTEL")
      Set d = CreateObject("Scripting.Dictionary")
      TblBd = f.Range("A2:AN" & f.Range("AM" & f.Rows.Count).End(xlUp).Row)
      ReDim Tb(1 To UBound(TblBd, 1))
      For i = 1 To UBound(Tb, 1)
        Tb(i) = TblBd(i, 39)
      Next i
      d("*") = ""
      For i = 1 To UBound(Tb)
        For Each c In Tb: d(c) = "": Next c
      Next i
      Me.ComboBox1.List = d.keys
     
     ' Me.ComboBox1 = ActiveSheet.[A1]
     
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  20. #20
    Candidat au Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Juin 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Juin 2016
    Messages : 36
    Points : 4
    Points
    4
    Par défaut
    bonjour,

    ce qui donne:

    Erreur de compilation

    sub ou fuction non définie


    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
    Private Sub UserForm_Initialize()
     
    Set f = Sheets("DTEL")
      Set d = CreateObject("Scripting.Dictionary")
      TblBd f.Range("A2:AN" & f.Range("AM" & f.Rows.Count).End(xlUp).Row)
      ReDim Tb(1 To UBound(TblBd, 1))
      For i = 1 To UBound(Tb, 1)
        Tb(i) = TblBd(i, 39)
      Next i
      d("*") = ""
      For i = 1 To UBound(Tb)
        For Each c In Tb: d(c) = "": Next c
      Next i
      Me.ComboBox1.List = d.keys
     
     ' Me.ComboBox1 = ActiveSheet.[A1]
     
    End Sub
     
     
     
    Private Sub ComboBox1_click()
     ListBox1.Clear
     j = 0
     For i = LBound(TblBd) To UBound(TblBd)
       If (InStr(TblBd(i, 39), ComboBox1) > 0 And TblBd(i, 5) Like ComboBox2) _
         Or (Me.ComboBox1 = "*" And TblBd(i, 5) Like ComboBox2) Then
          ListBox1.AddItem
          ListBox1.List(j, 0) = TblBd(i, 2)
          ListBox1.List(j, 1) = TblBd(i, 9)
          ListBox1.List(j, 2) = TblBd(i, 40)
          ListBox1.List(j, 3) = TblBd(i, 37)
          j = j + 1
       End If
      Next i
    End Sub
    je vois que dans cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TblBd f.Range("A2:AN" & f.Range("AM" & f.Rows.Count).End(xlUp).Row)
    Je vois A2;AN

    C'est normal ?
    Sachant que la lite est dans la colonne AM.

Discussions similaires

  1. Afficher le résultat d'une recherche sur un formulaire
    Par cheikhoufia dans le forum NetBeans
    Réponses: 1
    Dernier message: 08/06/2011, 23h52
  2. Réponses: 2
    Dernier message: 03/03/2011, 19h05
  3. [AC-2007] créer une barre de recherche sur un formulaire
    Par marco_t dans le forum IHM
    Réponses: 5
    Dernier message: 03/11/2010, 19h05
  4. [VBA] filtre sur un formulaire en mode feuille de données
    Par dalmasma dans le forum Requêtes et SQL.
    Réponses: 24
    Dernier message: 25/07/2007, 11h09
  5. [vba]recherche sur multichamp
    Par adriantox dans le forum VBA Access
    Réponses: 5
    Dernier message: 19/04/2007, 11h52

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