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 filtré avec CommandButton [XL-2007]


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 Recherche filtré avec CommandButton
    Bonjour :

    Une fois encor j’ai besoin de votre soutien pour faciliter mon travail.
    Explication :

    J’ais un UserForm3 dans mon classeur Excel, avec :

    -Quatre OptionButton
    -Une TextBox1 = le texte a recherche (mot dans tous les positions de la phrase)
    -CommandButton4 = la recherche (le code)
    -Une ListBox1 = le résultat de la recherche (affichage de toute les donnée de la ligne)

    Objectif :

    Recherche filtré avec CommandButton4

    OptionButton1 (Descriptions) = filtre sur colonne A
    OptionButton2 (Qnt) = filtre sur colonne B
    OptionButton3 (Code) = filtre sur colonne C
    OptionButton4 (Norme) = filtre sur colonne D
    OptionButton5 (Lieux) = filtre sur colonne E

    J’ai essayé plusieurs code mais je ne c’est pas comment l’adapter a mon classeur, ces pour cela que je n’ais pas de code.

    Merci pour votre compréhension.

  2. #2
    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
    Bonjour,

    Il faudrait au moins savoir ce qui provoque l'affichage du UserForm

  3. #3
    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
    Bonjour :
    Un simple
    UserForm3.Show dans un bouton sur une feuille.

  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
    Bonjour

    Sa marche bien pour la première recherche, mais quand je veux changer de OptionButton pour autre recherche ; sa donne
    Erreur d’exécution 9
    L’indice n’appartient pas à la sélection.

    dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sub Recherche()ReDim Tb2(1 To Indice, 1 To 5)
    Le mieux, c’est que la recherche ce déclencher une fois que j’appui sur CommandButton4, non pas sur les OptionButton

    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    Option Explicit
    Option Compare Text
     
    Dim Ws As Worksheet
    Dim Colonne As Integer
     
    Private Sub CommandButton4_Click()
      Recherche
    End Sub
     
    Private Sub OptionButton1_Click()
    ' Descriptions
      Colonne = 1
      Recherche
    End Sub
     
    Private Sub OptionButton2_Click()
    ' Quantité
      Colonne = 2
      Recherche
    End Sub
     
    Private Sub OptionButton3_Click()
    ' Code
      Colonne = 3
      Recherche
    End Sub
     
    Private Sub OptionButton4_Click()
    ' Norme
      Colonne = 4
      Recherche
    End Sub
     
    Private Sub OptionButton5_Click()
    ' Lieux
      Colonne = 5
      Recherche
    End Sub
     
    Private Sub UserForm_Initialize()
     
      Set Ws = Sheets("BDD")
     
      With Me.ListBox1
        .ColumnCount = 5
        .ColumnWidths = "-1;-1;-1;-1;-1"
      End With
     
      Me.OptionButton1 = True
     
    End Sub
     
    Sub Recherche()
     
    Dim J As Long, NbLg As Long
    Dim Tb1, Tb2()
    Dim I As Integer, Indice As Integer
     
      NbLg = Ws.Range("A" & Rows.Count).End(xlUp).Row
      Tb1 = Ws.Range("A3:F" & NbLg)
      For J = 1 To UBound(Tb1)
        If Tb1(J, Colonne) Like "*" & Me.TextBox1 & "*" Then
          Tb1(J, 6) = "X"
          Indice = Indice + 1
        End If
      Next J
     
      ReDim Tb2(1 To Indice, 1 To 5)
      Indice = 0
      For J = 1 To UBound(Tb1)
        If Tb1(J, 6) = "X" Then
          Indice = Indice + 1
          For I = 1 To 5
            Tb2(Indice, I) = Tb1(J, I)
          Next I
        End If
      Next J
      With Me.ListBox1
        .Clear
        .List() = Tb2
      End With
     
      End Sub

    merci encor.

  5. #5
    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
    Normal, Indice = 0 donc il faut prévoir une action dans ce cas, soit attribuer une valeur par défaut > 0, soit ne pas exécuter les instructions qu suivent.

  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
    Banzai64

    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
    Sub Recherche()
    Dim J As Long, NbLg As Long
    Dim Tb1, Tb2()
    Dim I As Integer, Indice As Integer
     
      Me.ListBox1.Clear
      NbLg = Ws.Range("A" & Rows.Count).End(xlUp).Row
      Tb1 = Ws.Range("A3:F" & NbLg)
      For J = 1 To UBound(Tb1)
        If Tb1(J, Colonne) Like "*" & Me.TextBox1 & "*" Then
          Tb1(J, 6) = "X"
          Indice = Indice + 1
        End If
      Next J
      If Indice > 0 Then
        ReDim Tb2(1 To Indice, 1 To 5)
        Indice = 0
        For J = 1 To UBound(Tb1)
          If Tb1(J, 6) = "X" Then
            Indice = Indice + 1
            For I = 1 To 5
              Tb2(Indice, I) = Tb1(J, I)
            Next I
          End If
        Next J
        With Me.ListBox1
          .List() = Tb2
        End With
      End If
     
    End Sub

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 06/02/2020, 13h52
  2. Requête de recherche multicritère avec filtre
    Par totoff80 dans le forum Bases de données
    Réponses: 22
    Dernier message: 18/04/2008, 15h03
  3. Recherche et filtre avec un dynaset
    Par mat75019 dans le forum Access
    Réponses: 10
    Dernier message: 10/04/2006, 19h53
  4. Recherche "étoilée" avec std::set
    Par guejo dans le forum MFC
    Réponses: 2
    Dernier message: 06/05/2004, 13h28
  5. recherche filtre flou gaussien
    Par gimlithedwarf dans le forum Langage
    Réponses: 4
    Dernier message: 01/08/2002, 22h32

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