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 :

[Excel]Chercher un élement puis retourné dans une listbox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 584
    Par défaut [Excel]Chercher un élement puis retourné dans une listbox
    bonjour bonjour

    aprés être venu plusieur fois pour demander de l'aide, je viens cette fois ci pour vous donner le resultat de mon minuscule travail.
    Je n'aurai jamais réussi sans Ania, ouskel'n'or,plegatet d'autre que je remercie énormément .

    le code permet de recherche dans une colonne un text entré dans un textbox, il retourne les resultat dans une listbox avec toute la ligne qui fait référence a la recherche.

    pour ce que ca interesse 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
     
    Private Sub CommandButton1_Click()
     
        UserForm1.ListBox1.ColumnCount = 2
        UserForm1.ListBox1.ColumnWidths = "120;120"
     
     
        Dim chercher As String
        Dim limit As Long, ligneu As Long
        Dim msg
     
    chercher = TextBox1.Text
     
    ligneu = Feuil1.Columns(1).Find("" & chercher, [A1], , , xlByRows, xlNext).Row
    msg = Feuil1.Cells(ligneu, 1)
    UserForm1.ListBox1.AddItem msg
    UserForm1.ListBox1.List(0, 1) = Feuil1.Cells(ligneu, 2)
     
    limit = 100
    Do While ligneu < limit
    vl = ligneu
    ligneu = Feuil1.Columns(1).FindNext(after:=Cells(vl, 1)).Row
     
    If ligneu < vl Or ligneu = vl Then Exit Do
     
    msg = Feuil1.Cells(ligneu, 1)
    UserForm1.ListBox1.AddItem Feuil1.Cells(ligneu, 1)
    UserForm1.ListBox1.List(UserForm1.ListBox1.ListCount - 1, 1) = Feuil1.Cells(ligneu, 2)
     
    Loop
    End Sub
    encore merci pour votre aide a tous
    bonne soirée

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    merci pour le code ..., je te soumet un probléme ... que ce passe-t'il si le "text" cherché n'existe pas dans la colonne ...?

  3. #3
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 584
    Par défaut
    héhé, bonne question j'avais travaillé sur des objet qui existé, je vais regarder ce probleme et je revien plus tard

  4. #4
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 584
    Par défaut
    voila le code modifier, je ne sais pas si c'est trés catolique mais ca fonctionne

    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 CommandButton1_Click()
        UserForm1.ListBox1.Clear
        UserForm1.ListBox1.ColumnCount = 2
        UserForm1.ListBox1.ColumnWidths = "120;120"
     
     
        Dim chercher As String, NomTemp As String
        Dim AncienneLigne As Long, NouvelleLigne As Long
     
    chercher = TextBox1.Text
     
     
    Set cherche = Feuil1.Columns(1).Find("" & chercher, [A1], , , xlByRows, xlNext)
    If cherche Is Nothing Then
    MsgBox "Aucun résultat"
     
    Else
    ligneu = Feuil1.Columns(1).Find("" & chercher, [A1], , , xlByRows, xlNext).Row
    msg = Feuil1.Cells(ligneu, 1)
    UserForm1.ListBox1.AddItem msg
    UserForm1.ListBox1.List(0, 1) = Feuil1.Cells(ligneu, 2)
     
    limit = 100
    Do While ligneu < limit
    vl = ligneu
    ok = "[A" & vl & "]"
    'MsgBox ok
    ligneu = Feuil1.Columns(1).FindNext(after:=Cells(vl, 1)).Row
    If ligneu < vl Or ligneu = vl Then Exit Do
    msg = Feuil1.Cells(ligneu, 1)
    UserForm1.ListBox1.AddItem Feuil1.Cells(ligneu, 1)
     
    UserForm1.ListBox1.List(UserForm1.ListBox1.ListCount - 1, 1) = Feuil1.Cells(ligneu, 2)
    Loop
    End If

  5. #5
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    je pensai aussi à une solution dans ce genre... par contre pas la peine d'effectuer 2 fois la recherche... utilise ta variable "cherche "

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    ligneu = Cherche.Row
    ...

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

Discussions similaires

  1. [EXCEL] Mise en évidence des doublons dans une colonne
    Par dacid dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 30/10/2006, 19h14
  2. [Excel] Chercher un nom de cellule dans des formules
    Par conconbrr dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/07/2006, 17h43
  3. Réponses: 10
    Dernier message: 23/05/2006, 17h42
  4. [PHP] parser puis integrer dans une BDD
    Par s3r3nity dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 20/12/2005, 15h33
  5. Réponses: 3
    Dernier message: 07/11/2005, 14h49

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