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 :

VBA fonction recherche deux valeurs


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Février 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Février 2019
    Messages : 4
    Par défaut VBA fonction recherche deux valeurs
    Bonjour,

    Voila je demande l'aide du forum pour une petite question. ;-)

    Nom : code.png
Affichages : 361
Taille : 8,5 Ko

    Donc voila le code, c'est un bouton pour filtrer une recherche sur une liste sur le contenu C

    Donc a la ligne la:
    Sheets("recherche").Range("c3") = "C"

    J'aimerais lui dire de filter sur C comme si joint mais aussi sur DC mais je ne sais pas comment faire

    J'ai tenté "C" , "DC" mais evidement ca ne fonctionne pas

    merci d'avance pour vos réponses et votre temps.

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Une piste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub Test()
     
        Dim Plage As Range
     
        With Worksheets("recherche"): Set Plage = .Range(.Cells(1, 3), .Cells(.Rows.Count, 3).End(xlUp)): End With
     
        Plage.AutoFilter 1, "C", xlOr, "CD"
     
    End Sub

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Février 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Février 2019
    Messages : 4
    Par défaut
    Merci pour la réponse,

    Mas je ne comprends pas trop je dois faire quoi je dois modifier le code entier?

    Merci

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Je t'ai juste montrer un filtrage sur la colonne C de la feuille "recherche" avec comme critères "C" et "CD", je ne sais pas où commence ta plage et où elle finie, je ne sais pas ce que tu veux faire du résultat du filtrage ?
    Si c'est pour remplir une ListBox, tu peux copier le résultat sur une autre feuille et t'en servir de source :
    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
     
    Dim Plage As Range
    Dim I As Integer
    Dim T
     
    With Worksheets("recherche")
     
        Set Plage = .Range(.Cells(1, 3), .Cells(.Rows.Count, 3).End(xlUp))
     
        Plage.AutoFilter 1, "C", xlOr, "CD"
     
        Worksheets("Feuil2").Cells.Clear
     
        .AutoFilter.Range.EntireRow.Copy Worksheets("Feuil2").Range("A1")
     
        Plage.AutoFilter
     
        T = Worksheets("Feuil2").Range("A1").CurrentRegion
     
     End With
     
    ListBox1.List = T
    tu peux boucler sur les lignes visibles et remplir ta liste :
    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
     
    Dim Plage As Range
    Dim I As Integer
    Dim J As Integer
     
    With Worksheets("recherche"): Set Plage = .Range(.Cells(1, 3), .Cells(.Rows.Count, 3).End(xlUp)): End With
     
    Plage.AutoFilter 1, "C", xlOr, "CD"
     
    With Worksheets("recherche")
     
        For I = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row
     
            If .Rows(I).Hidden = False Then
     
                ListBox1.AddItem .Cells(I, 1).Value
                ListBox1.Column(1, J) = .Cells(I, 2).Value
                ListBox1.Column(2, J) = .Cells(I, 3).Value
                ListBox1.Column(3, J) = .Cells(I, 4).Value
                J = J + 1
     
            End If
     
        Next I
     
    End With
     
    Plage.AutoFilter

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Février 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Février 2019
    Messages : 4
    Par défaut
    Merci,

    Enfaite j'ai un bouton afficher qui affiche comme la photo si joint pour une personne definie les données reprise d'une base de donnée, et un autre qui filtre par type comme le code plus haut qui affiche un C dans la cellule C3 qui filtre que sur les C j'aimerais qu'il filtre sur les C et les DC mais je ne sais pas comment faire.

    Nom : RECHERCHE.jpg
Affichages : 238
Taille : 128,4 Ko

  6. #6
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Bonjour
    si tes données sont organisées comme la capture écran,
    essayez avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub test()
    With Sheets("feuil1")
    Dim Nom As String
    Nom = .Range("B3")
    k = .Range("K" & Rows.Count).End(xlUp).Row
     .Range("K2:V" & k).AutoFilter Field:=3, Criteria1:=Nom
     
       .Range("K2:V" & k).AutoFilter Field:=4, Criteria1:= _
            "C", Operator:=xlOr, Criteria2:="CD"
    End With
     
    End Sub
    Fichiers attachés Fichiers attachés

  7. #7
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Dans ce cas, utilises un filtre avancé !
    Tu déplace ton tableau vers le bas puis tu crées une zone de critères au dessus qui reprend les entêtes de colonnes ensuite, Onglet Données ---> filtre avancé puis dans les champs Plage et zone de critères tu sélectionnes les plages correspondantes et tu filtre !
    Avant le filtrage :
    Nom : Avant.PNG
Affichages : 296
Taille : 44,8 Ko
    Après le filtrage :
    Nom : Après.PNG
Affichages : 274
Taille : 17,6 Ko
    Attention tout de même, tu parles d'un critère CD et tu montre un critère DC !
    Ici, seulement avec le nom sur le critère C :
    Images attachées Images attachées   

  8. #8
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par fr3m4n Voir le message
    Donc voila le code
    Un code transmis sous forme d'image n'est vraiment pas pratique : on ne peut pas le copier pour le modifier.
    Je te conseille donc de faire un copier/coller du texte de ton code dans un message, de préférence encadré de balises CODE (le bouton #).

    c'est un bouton pour filtrer une recherche sur une liste sur le contenu C
    A priori, l'essentiel de ta rechercher est dans une sous-routine nommée "marecherche" que tu ne montres pas.
    Difficile donc de savoir comment cette recherche pourrait éventuellement prendre deux données d'entrée.

Discussions similaires

  1. [VBA-E] Séparer deux valeurs d'une cellule
    Par Yoshiblow dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 24/03/2017, 07h12
  2. [AC-2003] Recherche deux valeurs dans une table
    Par drakkar_agfa dans le forum VBA Access
    Réponses: 2
    Dernier message: 23/09/2009, 16h03
  3. [VBA]fonction pour copier valeur ET format
    Par daniel_gre dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/08/2008, 00h00
  4. [VBA-E] Recherche de valeur fonction Match
    Par Dextro dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 28/02/2007, 19h09
  5. [VBA-E] rechercher des valeurs?
    Par godSP2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/02/2007, 20h55

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