Formulaire de Recherche multicritère

Bonjour,

je voulai avoir un formulaire de recherche avec multicritère pour une association.

Nous somme une association et comme toute association nous gérons des adhérents.

Les adhérents son soit Sociétaire ou Actionnaire.

Les adhérents Actionnaire, sont Sociétaire 15 ans de présence et pour ça je doit savoir si il a bien cotiser 15 ans pour lui donner le nouvel statut donc une cotisation mois chère.

J'ai commencé avec des tutos sur le site excel mais le n'y arrive pas.

En pièce jointe un fichier en exempte.

Pouvez-vous m'aider?

bonjour,

Peut être avec une formule.

=SI([@NOM]<>"";SI([@ANNEES]+14=ANNEE(AUJOURDHUI());"ACT";"SOC");"")

Cordialement

Bonjour à tous,

Plus simple si ça te convient...

P.

Merci de votre réponse mais ce n'ai pas ça que je vouler.

Je voudrai que quand je clik sur formulaire "Affiche le Formulaire de Recherche" il ouvre le formulaire " RECHERCHE UN ACTIONNAIRE"

et quand j’écris nom d'une personne, les infos de la personne s'inscrives dans la listbox 'listtrouver". avec les nom, prenom

comme dans la BDD.

En pièce jointe c'est un exemple car dans la bonne BDD il y a 2580 lignes.

merci

re,

Une proposition.

merci de votre réponse et votre proposition me va.

Est-que je peux ajouter les prénoms sans contaner la cellule dans une ComBox ?

Merci

re,

le principe est de n'afficher que les valeurs commençant par le texte saisi dans le textbox. A mon sens rajouter les prénoms ne sert à rien.

Cordialement

merci pour tout

Bonjour Compan et le forum
Voici ma proposition par le formulaire. On recherche soit par le nom soit par le prénom, lettres par lettres, la ListBox s'affine au fur et à mesure.
Cdt,
Papy Henri

Bonjour Papy Henri et merci pour bon travaille, c'est ça que je voulait.

Merci.

Rebonjour,

Sur le Formulaire "Recherche Actionnaire" (listtrouver), Je voudrai savoir comment modifier les colonnes en largeurs.

Merci

Bonjour Compan et le forum
Si j'ai bien compris, mettre la ligne de code .ColumnWidths (à vous de définir la largeur des colonnes) comme ci-dessous, dans le Sub InitListTrouve:

Sub InitListTrouve()
Set ws = Sheets("BDD")
    With Me.listtrouver
        .Clear
        .List = Range("T_Base").ListObject.DataBodyRange.Value
        .ColumnCount = 6
        .ColumnWidths = "50;50;100;100;100"    'Modifiable         
    End With
End Sub

Cdt,
Papy henri

Merci Papy henri,

est-que je vous demander, voudrai imprimer les lignes trouver, j'ai mis le code:

Private Sub btnimprimer_Click()

Unload Me
Formulaire_de_Recherche.PrintForm

End Sub

ça imprime et je voudrai que ça imprime un paysage.

merci de votre aide.

Bonjour,

"est-que je vous demander, voudrai imprimer les lignes trouver, j'ai mis le code:"

Ce n'est pas directement possible. Il faut copier le usf sous forme d'image, pivoter celle-ci et l'imprimer. Code à adapter :

Private Declare PtrSafe Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Public Const VK_SNAPSHOT = 44
Public Const VK_LMENU = 164
Public Const KEYEVENTF_KEYUP = 2
Public Const KEYEVENTF_EXTENDEDKEY = 1

Sub test()
  keybd_event VK_LMENU, 0, KEYEVENTF_EXTENDEDKEY, 0
  keybd_event VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY, 0
  keybd_event VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY + _
                              KEYEVENTF_KEYUP, 0
  keybd_event VK_LMENU, 0, KEYEVENTF_EXTENDEDKEY + _
                           KEYEVENTF_KEYUP, 0
  DoEvents
  Workbooks.Add
  Application.Wait Now + TimeValue("00:00:01")
  ActiveSheet.PasteSpecial Format:="Bitmap", Link:=False, _
                           DisplayAsIcon:=False
  ActiveSheet.Range("A1").Select
  'added to force landscape
  ActiveSheet.PageSetup.Orientation = xlLandscape
  ActiveWindow.SelectedSheets.PrintOut Copies:=1
  ActiveWorkbook.Close False

Daniel

Bonjour,

J'ai fait ça

et j'ai une erreur voir ici:

capture d ecran 2025 11 03 135657

merci de votre aide

Bonjour,

J'ai fait ça

et j'ai une erreur voir ici:

merci de votre aide

Bonjour,

C'est parce que vous avez mis ce code dans une classe (Userform ou Workbook ou Worksheet) et non un module. Const, instruction (VBA) | Microsoft Learn

La doc vous indique que Const ne peut pas être Public dans les cas cités, mais uniquement Private. Cependant dans votre cas vous pouvez changer les "public" en "private" car il n'y a pas besoin de les utiliser ailleurs.

Bonjour DanielC,

merci pour ce code mais où mettre ce code dans le bouton imprime ou dans un module?

Merci de votre réponse.

Pour Papy Henry

Quand je recherche un nom je le trouve le problème la ça fonctionne, mais quand je me le prénom de la personne ça met toues les prénoms.

capture d ecran 2025 11 03 183050

Alors que je voudrai uniquement la personne DANTRAS Ludovic.

Comment changer ce code.

Merci de votre aide.

Je refait mon message c'est plus francais.

Pour Papy Henry

Quand je recherche un nom, je le trouve et la ça fonctionne, le problème quand mais je met le prénom de la personne ça met tous les prénoms et les noms des autres personnes.

capture d ecran 2025 11 03 183050

Alors que je voudrai uniquement la personne DANTRAS Ludovic.

Comment changer ce code.

Merci de votre aide.

Bonjour à tous,

Dans l'exemple, j'ai un bouton sur le userform avec le code :

Private Sub CommandButton1_Click()
  DoEvents
  test
End Sub

Dans un module standard :

Private Declare PtrSafe Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Public Const VK_SNAPSHOT = 44
Public Const VK_LMENU = 164
Public Const KEYEVENTF_KEYUP = 2
Public Const KEYEVENTF_EXTENDEDKEY = 1

Sub test()
  keybd_event VK_LMENU, 0, KEYEVENTF_EXTENDEDKEY, 0
  keybd_event VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY, 0
  keybd_event VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY + _
                              KEYEVENTF_KEYUP, 0
  keybd_event VK_LMENU, 0, KEYEVENTF_EXTENDEDKEY + _
                           KEYEVENTF_KEYUP, 0
  DoEvents
  Workbooks.Add
  Application.Wait Now + TimeValue("00:00:01")
  ActiveSheet.PasteSpecial Format:="Bitmap", Link:=False, _
                           DisplayAsIcon:=False
  ActiveSheet.Range("A1").Select
  'added to force landscape
  ActiveSheet.PageSetup.Orientation = xlLandscape
  ActiveWindow.SelectedSheets.PrintOut Copies:=1
  ActiveWorkbook.Close False
End Sub

Je joins le classeur à toutes fins utiles.

Daniel

15251005.xlsm (20.06 Ko)
Rechercher des sujets similaires à "formulaire recherche multicritere"