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 :

Besoin d'aide code listbox


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Vitré
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Vitré

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    Points : 3
    Points
    3
    Par défaut Besoin d'aide code listbox
    Bonjour,

    je suis novice en vba mais je suis très motivé. Voilà je possède un fichier excel où j'ai crée un champ de recherche avec un listbox et une textbox.
    Mes résultats que j'ai tapé dans ma textbox apparaissent dans ma listbox. A partir de la je bloque mais je pense que c'est simple cependant je ne trouve pas . Je voudrais que soit par intermédiaire d'un bouton ou lors d'un double clique, je sois directement positionner sur la cellule. voici le lien du fichier :

    http://www.cjoint.com/c/EFytL4XInGZ

    Merci d'avance pour votre aide !

  2. #2
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    si tu es motivé, ce forum te donnera pleine satisfaction.

    en échange, il va falloir lire et appliquer les règles du forum, si tu souhaites de l'aide (et surtout apprendre) :

    - éviter les fichiers joints en premier message
    - décrire précisément le cadre
    - présenter le code entrepris et les difficultés rencontrées (sans oublier les balises dédiées, voir encore une fois les règles)


    au passage, on note que tu parles d'une recherche saisie dans un textbox, qui alimente un listbox
    et tu souhaites ensuite te "positionner sur la cellule"

    quelle cellule ? quelles sont les données cherchées exactement ? tes contrôles sont sur un formulaire ou une feuille ? Si sur une feuille, ce sont des contrôles ActiveX ou de formulaire ? etc....

    Comme tu le vois, j'ai des centaines de questions dans ma besace, car un problème posé doit nécessairement avoir un contexte précisément défini pour avoir rapidement la solution la plus efficace

    Bienvenu, les automatismes se font vite tu verras, quand on a la motivation

  3. #3
    Candidat au Club
    Homme Profil pro
    Vitré
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Vitré

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Merci, alors voilà je suis actuellement en stage. Je possède 2 colonnes . A=Nom et B= Prénom . Dans ma textbox, lorsque j'écris un prénom, si celui-ci se trouve dans une des deux colonnes, la colonne se met en surbrillance vert et ce prénom en question s'affiche dans ma listbox. Je voudrais tout simplement me positionner sur cette cellule sans avoir besoin de scroller tout le document.

    Ce sont des bouton activeX et sur une feuille.

    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
    Option Compare Text
     
     
    Private Sub ListBox1_Click()
     
    End Sub
     
    Private Sub TextBox1_Change()
     
    Application.ScreenUpdating = False
     
        Range("A1:B53").Interior.ColorIndex = 2 'Exemple 1 (feuille)
        ListBox1.Clear 'Exemple 2 (ListBox)
        liste_colonnes = Array(1, 2)
     
        If TextBox1 <> "" Then
            For ligne = 1 To 53
            For no_colonne = 0 To UBound(liste_colonnes)
            colonne = liste_colonnes(no_colonne)
     
                If Cells(ligne, colonne) Like "*" & TextBox1 & "*" Then
                    Cells(ligne, colonne).Interior.ColorIndex = 43 'Exemple 1 (feuille)
                    ListBox1.AddItem Cells(ligne, colonne) 'Exemple 2 (ListBox)
                    mavar = ListBox1.ListIndex = 0
     
                End If
            Next
            Next
        End If
     
    Application.ScreenUpdating = True
     
    End Sub
    Ai-je été assez clair ?

    merci

  4. #4
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Ta solution :

    après cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(ligne, colonne).Interior.ColorIndex = 43 'Exemple 1 (feuille)
    il te suffit de la sélectionner après l'avoir coloriée : instruction .select


    Ton code est effectivement optimisable dans sa rédaction, et rationnalisable dans ses variables et méthode utilisées.
    S'il te convient ainsi, je passe outre cet état de fait... cela ne freinera pas son exécution au vu du faible volume de données traitées

    mais c'est un bon début

  5. #5
    Candidat au Club
    Homme Profil pro
    Vitré
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Vitré

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Merci de ta réponse mais cela ne marche pas, j'ai un message d'erreur . De plus je voudrai travailler plus sur le coté listbox ou alors rajouter un bouton qui puisse le faire car par exemple si je tape la lettre "A", beaucoup de prénoms contiennent cette lettre donc beaucoup de cellules seront en vert.

    Cdlt

  6. #6
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Si tu sais la colorier (ligne précédente) il n'y a pas de raison que tu ne puisses pas la sélectionner juste après

    quel est le message d'erreur ?

    la méthode que tu as mise en place, comme je l'ai souligné, n'est pas la plus appropriée, dans la mesure où à chaque frappe de clavier dans ta textbox, la procédure fait sa recherche, et trouve souvent quelque chose comme tu l'indiques ... en raison de l'utilisation de l'opérateur de comparaison LIKE

    il est donc préférable :

    - de lancer le processus de recherche, non pas au changement dans la textbox, mais lors d'un click bouton
    - d'en profiter pour faire la sélection au passage .... voilà deux souhaits exaucés en un seul

    concernant la notion de recherche, et pour éviter les problèmes d'orthographe, de majuscule/minuscules etc .... ne serait-il pas envisageable de plutôt proposer à l'utilisateur la liste des valeurs existantes ?
    il choisi ce qu'il veut, et la sélection s'effectue

  7. #7
    Candidat au Club
    Homme Profil pro
    Vitré
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Vitré

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Erreur de compilation : Référence incorrecte ou non qualifiée. Mon stage se finit vendredi , réécrire la macro me prendrais beaucoup trop de temps avec le peu de connaissances que j'ai... Toutes tes propositions m'ont l'air intéressantes cependant je n'ai pas internet au travail donc je dois faire le maximum chez moi. De plus, te demander de réécrire la macro a ta façon me paraîtrais trop impoli de ma part. Sans me vanter, je pense avoir un bon début. Pourquoi ne pas créer un bouton qui lorsque je clique dessus m'amène sur la cellule ?

  8. #8
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    regarde si ça te convient

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub CommandButton1_Click()
    Dim Cell As Range
     
    Set Cell = Range("A1:B53").Find(TextBox1.Text, , , xlWhole)
    If Not Cell Is Nothing Then Cell.Select Else MsgBox ("Aucun résultat")
     
    End Sub

  9. #9
    Candidat au Club
    Homme Profil pro
    Vitré
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Vitré

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Petit soucis , j'ai soit le message "Aucun résultat "qui s'affiche des que je clique sur le bouton ou alors il ne se passe rien

    Merci

Discussions similaires

  1. Besoin d'aide code source CRM E-DEAL
    Par Santcho dans le forum CRM
    Réponses: 0
    Dernier message: 05/07/2013, 10h41
  2. Besoin d'aide pour ListBox.findString
    Par Mario Rousson dans le forum VB.NET
    Réponses: 1
    Dernier message: 16/07/2011, 19h03
  3. [ST6] Besoin d'aide code assembleur
    Par doutsie dans le forum Autres architectures
    Réponses: 16
    Dernier message: 06/02/2006, 16h30

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