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 ListBox avec recherche multicritéres


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Par défaut
    Il faudrait un échantillon du fichier.

    Boisgontier

  2. #2
    Membre éclairé Avatar de goninph
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2013
    Messages : 805
    Par défaut
    Bonjour,

    J'ai trouvé une solution qui fonctionne à merveille, un peu basique mais ça fonctionne

    Merci t bonne soirée

    Philippe

    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
    Dim f, choix()
     
    Private Sub UserForm_Initialize()
    '====================================================================================================
    'Pour avoir toutes et que les lignes pleines dans la ListBox, sans plus, car la formule est considérées comme celule pleine
    'Formule en colonne B =C1&" "&D1&" "&E1&" "&F1
        Dim Plage_cellules_pleines As Variant
     
    Application.ScreenUpdating = False ' Désactive le changement des pages à l'écran lors de l'éxécution de la macro
     
    'Vider toutes les cellules de  colonne A
            Sheets("Data Commission adresse").Select
                Columns("A:A").Select
                     Selection.ClearContents
     
     
            Plage_cellules_pleines = Application.CountA([C1:C65000]) 'Compte le nombre de cellules pleine dans la colonne C
                Range("B" & Plage_cellules_pleines).Select 'Selectionne la cellule B de la même ligne
                    Range(Selection, Selection.End(xlUp)).Select 'Sélectionne la plage contre le haut
     
    ' Copie la plage et colle que les valeurs en colonne A et largeur de colonne automatique
            Selection.Copy
                Range("A1").Select
                    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                        :=False, Transpose:=False
                            Columns("A:A").EntireColumn.AutoFit
    '====================================================================================================
     
    Sheets("Commandes").Select
     
       Set f = Sheets("Data Commission adresse")
          Set Rng = f.Range("A2:A" & f.[A65000].End(xlUp).Row) ' Sélectionne toutes les lignes non vide, pas de ligne vide à la fin du formulaire
     
       choix = Application.Transpose(Rng)
       Me.ListBox1.List = choix
     
         Me.TextBox1.SetFocus 'Place le curseur dans la textbox
     
    Application.ScreenUpdating = True ' Résactive le changement des pages à l'écran lors de l'éxécution de la macro
     
    End Sub
    Private Sub TextBox1_Change()
       mots = Split(Trim(Me.TextBox1), " ") ' Permet une recherche multiple, taper les requêtes en séparant par un espace
       tbl = choix
       For i = LBound(mots) To UBound(mots)
         tbl = Filter(tbl, mots(i), True, vbTextCompare)
       Next i
       Me.ListBox1.List = tbl
    End Sub
    Private Sub ListBox1_Click()
      ActiveCell = Me.ListBox1 'Inscrit le texte dans la cellule active
      Unload Me
    End Sub

  3. #3
    Membre éclairé Avatar de goninph
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2013
    Messages : 805
    Par défaut
    Bonjour,

    Comment faire pour fermer l'UserForm via le bouton ESC du clavier ?

    Comment faire défiler la LisBox via la roulette de la souris ?

    Merci et excellente journée

    Philippe

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Par défaut
    Bonjour,

    Recherche intuitive multi-colonnes et plusieurs mots dans le désordre en PJ

    Boisgontier
    Fichiers attachés Fichiers attachés

  5. #5
    Membre éclairé Avatar de goninph
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2013
    Messages : 805
    Par défaut
    Citation Envoyé par goninph Voir le message
    Bonjour,

    Comment faire pour fermer l'UserForm via le bouton ESC du clavier ?

    Comment faire défiler la LisBox via la roulette de la souris ?

    Merci et excellente journée

    Philippe
    J'ai trouvé pour fermer l'UserForm via le bouton ESC du clavier :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    'Pour fermer l'UserForm avec le bouton ESC, le CommandButton1 est caché au bas de l'UserForm
    'La propriété Cancel du CommandButton1 doit être à TRUE
    Private Sub CommandButton1_Click()
    Unload Me
    End Sub
    Reste ma deuxième question :

    Comment faire défiler la LisBox via la roulette de la souris ?

    Bonne soirée

    Philippe

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [AC-2007] Création annuaire avec recherche multicritères
    Par jbaero dans le forum Modélisation
    Réponses: 2
    Dernier message: 04/10/2012, 17h48
  2. [XL-2007] VBA - Key Avec Recherche Colonne
    Par tixilee dans le forum Excel
    Réponses: 2
    Dernier message: 07/09/2012, 15h51
  3. [MySQL] Problème avec recherche multicritères
    Par Myrdinn dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 09/04/2010, 23h59
  4. Réponses: 24
    Dernier message: 09/07/2007, 13h08
  5. vba, listbox avec plusieur colonne
    Par morgan47 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/06/2006, 18h35

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