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 dans tableau excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 37
    Par défaut recherche dans tableau excel
    Bonjour à tous,
    je suis sous excel 97, je crée une macro pour faire une recherche dans un tableau de mon classeur.
    Hélas, mon code permet de faire les recherche en saisissant la chose puis en déterminant dans une combobox là ou on doit chercher. (sa marche trés bien)
    Mon probléme est que je voudrais ajouter dans ma combobox un élément pour faire une recherche sur le "nom" mais les noms sont stockés dans différentes colonnes (colonnes peintent en jaune dans mon classeur) et je ne trouve pas le moyen de le faire alors si vous avez des idées?
    Merci par avance pour votre aide et je reste disponible pour plus d'information.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre éclairé Avatar de zandru
    Homme Profil pro
    Ingénieur conception mécanique
    Inscrit en
    Mars 2008
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2008
    Messages : 507
    Par défaut
    saisissant la chose puis
    que veux-tu dire par la chose ???

    ce que tu veux faire si j'ai bien compris c'est rechercher toutes les cases jaunes de ta feuille et les entrer dans ta combobox pour qu'ils soient selectionnable, non ?

    Si c'est ça que tu veux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub recherche()
        For X = 1 To 100
        For y = 1 To 100
            If tafeuille.Cells(X, y).ColorIndex = 6 Then
                tacombobox.AddItem (tafeuille.Cells(X, y))
            End If
        Next y
        Next X
    End Sub
    je pense que cela devrait t'aider,
    si c'est pas ça, dit-le

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 37
    Par défaut
    Bonjour,
    Ce que j'entend par la chose c'est ce que recherche l'utilisateur.
    Sinon je pense que je me suis mal expliqué.
    Je voudrais pouvoir faire la recherche sur le nom (colonnes en jaunes) mais je ne veux pas avoir dans ma combobox "nom1", "nom2" ..."nom5" j'aimerais avoir les élément que j'ai déjà soit "dénomination", "adresse", "ccp" et "nom" qui face référence au colonnes en jaunes, mais je ne sais pas comment on le fait et ni ou je doit le placer dans mon code?
    Merci pour ton aide

  4. #4
    Membre éclairé Avatar de zandru
    Homme Profil pro
    Ingénieur conception mécanique
    Inscrit en
    Mars 2008
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2008
    Messages : 507
    Par défaut
    Je viens d'ouvrir ta pièce jointe.
    donc, si je comprend bien tu veux rechercher ce que l'utilisateur rentre dans la première case dans la colonne selectionné dans la combobox suivante ?

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour, je n'étais pas là cess derniers jours

    Ajoute un textbox, moi je l'ai nommé "textboxproduitcherche" et donne lui le code suivant , à adapter suivant la plage de recherche et les colonnes désirées à l'affichage, pour moi, ça marche:
    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
    Private Sub TextBoxproduitcherche_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Dim cel As Range, ERREUR As Integer
    Application.ScreenUpdating = False 'retire l'actualisation de l'ecran
    With Sheets("references") 'feuille ou se trouve les  données
        If .AutoFilterMode Then 'regarde si le filtre automatique est activé
         .AutoFilterMode = False 'si oui le retire
        End If
        ERREUR = .Range("b2").End(xlDown).Offset(0, 0).Row 'variable de verification
        .Range("b2").AutoFilter 'filtre sur la col de recherche
        .Range("b2").AutoFilter Field:=2, Criteria1:="*" & TextBoxproduitcherche & "*" 'texte entré ds textbox
        Set plage = .Range("b2", .Range("b2").End(xlDown)) 'nom de la plage de recherche
        Set plage = plage.Cells.SpecialCells(xlCellTypeVisible)
     
        If plage.Count > ERREUR Then
        If .AutoFilterMode Then
         .AutoFilterMode = False
        MsgBox "AUCUN CRITERE NE CORRESPOND A LA RECHERCHE" 'message si pas de données
        Exit Sub
        End If
        End If
        With REFCHOISIE 'nom de la listbox ou combobox
        .Clear 'on vide le contenu
        For Each cel In plage 'et on la remplit
          .AddItem cel(1, 0) 'ajout ds combox le nom cherché
          .Column(1, .ListCount - 1) = cel(1, 1) 'col choisie sur la meme ligne
          .Column(2, .ListCount - 1) = VBA.Format(cel(1, 2), "#,##0.00 €") 'col choisie sur la meme ligne
          .Column(3, .ListCount - 1) = VBA.Format(cel(1, 3), "#0.00 %") 'col choisie sur la meme ligne
          .Column(4, .ListCount - 1) = cel(1, 5) 'col choisie sur la meme ligne
          .Column(5, .ListCount - 1) = VBA.Format(cel(1, 6), "#0.00") 'col choisie sur la meme ligne
          .Column(6, .ListCount - 1) = VBA.Format(cel(1, 8), "# ##0.00 €") 'col choisie sur la meme ligne
          .Column(7, .ListCount - 1) = VBA.Format(cel(1, 9), "##0") 'col choisie sur la meme ligne
          .BoundColumn = 1
        Next cel
     
        End With
    Selection.AutoFilter
    .Select
    If .AutoFilterMode Then
        .AutoFilterMode = False 'retire le filtre automatique
        End If
    End With
    Application.ScreenUpdating = True 'actualisation de l'écran
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: 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
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 37
    Par défaut
    c'est sa l'utilisateur tape sa recherche dans la premiére textbox et ensuite il détermine une sorte de domaine grace à la combobox puis il clique sur chercher et tout se rempli

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    non, l'utilisateur remplit la textbox avec une partie du nom et clique sur entrée, la listbox ou combobox doit se mettre à jour, moi ça marche avec une listbox mais ça devrait marcher avec une combobox
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: 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...)

Discussions similaires

  1. [XL-2010] Recherche croisée complexe dans tableau excel
    Par jean bapt' dans le forum Excel
    Réponses: 5
    Dernier message: 02/12/2014, 14h02
  2. Macro de recherche selon critères dans tableau excel
    Par koodbook dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/03/2013, 14h43
  3. fonction recherche dans tableau javascript
    Par calitom dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/11/2006, 15h51
  4. recherche lignes dans tableau excel
    Par BODIGUEL dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/05/2006, 19h08
  5. Recherche dans Tableau de point
    Par Platypus dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 30/08/2005, 18h29

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