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 récupérer la valeur de l’item sélectionner d’une listbox apprêt recherche


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
    Inscrit en
    Décembre 2013
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 79
    Par défaut Comment récupérer la valeur de l’item sélectionner d’une listbox apprêt recherche
    BONJOUR ;

    J'ai mis une macro recherche (CommandButton4) sur un UserForm1 a partir de TextBox14 (texte à rechercher), qui fonctionne correctement, une fois la colonne A filtrer ; le résultat s’affiche dans la listbox1 ;

    Je voudrais afficher la quantité et l'emplacement de l'item sélection (listbox1 ) dans Textebox8 et Textebox13
    voila, merci d’avance de votre soutien.


    - Le code de la 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
    Private Sub CommandButton4_Click()
    i = 0
    Me.ListBox1.Clear
    With Sheets("BDD")
    .AutoFilterMode = False
    Set Plage = .Range(.[A2], .Cells(.Rows.Count, 1).End(xlUp)).Resize(, 1)
    Plage.AutoFilter 1, "*" & Me.TextBox14 & "*"
    Set Plage = Plage.Offset(1).Resize(Plage.Rows.Count - 1)
    If Application.Subtotal(103, Plage) > 0 Then
    Set Plage = Plage.Resize(, 1).SpecialCells(xlCellTypeVisible)
    For Each c In Plage
    Me.ListBox1.AddItem
    Me.ListBox1.list(i, 0) = c.value
    i = i + 1
    Next c
    End If
    .AutoFilterMode = False
    End With
    Me.TextBox12 = ""
    End Sub
    - La problématique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub ListBox1_Change()
    If Me.ListBox1.ListCount <> -1 Then
     
    'c'est ici que se pose le problème
    ' Je voudrais obtenir ce résultat :
     
    Me.TextBox8.value = ‘la valeur (collone B) de l’item sélectionner (listbox1)
    Me.TextBox13.value = ‘l’emplacement (collone E) de l’item sélectionner (listbox1)
     
    End If
     
    Me.TextBox12 = ""
    End Sub

  2. #2
    Invité
    Invité(e)
    Par défaut bonjour,
    pas besoin Additem vide!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For Each c In Plage
    Me.ListBox1.AddItem c.Value
    i = i + 1
    Next c
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If Me.ListBox1.ListCount <> -1 Then
            Me.TextBox8 = Me.ListBox1.text  'la quantité l’item sélectionner dans listbox1
            Me.TextBox13 =Me.ListBox1.listeindex'l’emplacement de l’item sélectionner dans dans listbox1
        End If

  3. #3
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.TextBox8.value = Me.Listbox1.Value
    Me.TextBox13.value = Me.Listbox1.Value

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 79
    Par défaut Comment récupérer la valeur de l’item sélectionner d’une listbox apprêt recherche
    Bonjour;
    D'abord merci pour votre attention, mais vos message ne correspond pas a ma demande, explication :

    Peut importe le texte que je mets dans textbox14 , lorsque je clique sur le bouton CommandButton4 , Il recherche (texte) par filtre dans colonne A de la feuille BDD.

    le texte trouver est envoyer dans listbox1 ; lorsque je reclique sur les items de la listbox1, les données de TextBox8 et TextBox13 passe de la première a la seconde et ainsi de suite. Donc la recherche marche bien, mais pas la sélection, car il me donne le résultat par ordre de ligne non par l'item sélectionner

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub ListBox1_Change()
     
    If Me.ListBox1.ListCount <> -1 Then
     
    Me.TextBox8.value = Sheets("BDD").Range("B" & Me.ListBox1.ListIndex + 3)
    Me.TextBox13.Text = Sheets("BDD").Range("E" & Me.ListBox1.ListIndex + 3)
     
    '''Les données son pas exact apprêt la recherche
    End If
     
    Me.TextBox14.Text = Me.ListBox1.Text
    Me.TextBox12 = ""
    End Sub
    Merci et bonne continuation

  5. #5
    Invité
    Invité(e)
    Par défaut
    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
    Private Sub CommandButton4_Click()
    i = 0
    Me.ListBox1.Clear
    Me.ListBox1.ColumnCount = 2
    Me.ListBox1.BoundColumn = 2
    Me.ListBox1.ColumnWidths = "0;150"
    With Sheets("BDD")
    .AutoFilterMode = False
    Set Plage = .Range(.[A2], .Cells(.Rows.Count, 1).End(xlUp)).Resize(, 1)
    Plage.AutoFilter 1, "*" & Me.TextBox14 & "*"
    Set Plage = Plage.Offset(1).Resize(Plage.Rows.Count - 1)
    If Application.Subtotal(103, Plage) > 0 Then
    Set Plage = Plage.Resize(, 1).SpecialCells(xlCellTypeVisible)
    For Each c In Plage
    Me.ListBox1.AddItem c.Row
    Me.ListBox1.list(i, 1) = c.value
    i = i + 1
    Next c
    End If
    .AutoFilterMode = False
    End With
    Me.TextBox12 = ""
    Me.TextBox14 = ""
    End Sub
    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 ListBox1_Change()
     
    If Me.ListBox1.ListIndex <> -1 Then
     
     
     
    Me.TextBox8 = Sheets("BDD").Range("B" & Me.ListBox1.list(Me.ListBox1.ListIndex))
    Me.TextBox13 = Sheets("BDD").Range("E" & Me.ListBox1.list(Me.ListBox1.ListIndex))
    Me.TextBox14.Text = Me.ListBox1.list(Me.ListBox1.ListIndex, 1)
     
    End If
     
    '''Les données son pas exact apprêt la recherche
     
     
     
    End Sub
    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 CommandButton1_Click()
     
    If Me.OptionButton9 = True And _
    Me.TextBox14.Text = Me.ListBox1.Text Then
    Sheets("BDD").Range("B" & Me.ListBox1.list(Me.ListBox1.ListIndex)) = Sheets("BDD").Range("B" & Me.ListBox1.list(Me.ListBox1.ListIndex)) + TextBox12.value
    End If
    If Me.OptionButton10 = True And _
    Me.TextBox14.Text = Me.ListBox1.Text Then
    Sheets("BDD").Range("B" & Me.ListBox1.list(Me.ListBox1.ListIndex)) = Sheets("BDD").Range("B" & Me.ListBox1.list(Me.ListBox1.ListIndex)) - TextBox12.value
    End If
     
    If Me.TextBox14.Text <> Me.ListBox1.Text Then
    Set LastRow = Sheets("BDD").Range("a65536").End(xlUp)
    LastRow.Offset(1, 0).value = TextBox14.Text
    LastRow.Offset(1, 1).value = TextBox12.value
    End If
     
    End Sub

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 79
    Par défaut Remerciement,
    Merci 1000 fois, voila c’est vrais que mes précédent code été du copier coller.
    Vous m’avez enlevé un pois énorme, encor merci.

    Je vais mettre mon fichier résolue pour les autres.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/04/2015, 15h38
  2. Réponses: 2
    Dernier message: 19/08/2013, 15h31
  3. Réponses: 2
    Dernier message: 27/01/2009, 13h41
  4. Réponses: 12
    Dernier message: 18/06/2008, 14h20
  5. Réponses: 3
    Dernier message: 25/04/2008, 11h25

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