Formulaire Multi-Critères

paco22

XLDnaute Junior
Bonsoir à tous,

afin de montrer simplement ce que je souhaite réaliser, je joins mon fichier exemple.

En effet, en cliquant sur le bouton "Recherches par Critères" et en selectionnant Marque1 dans le champs Marques, et ensuite Poste dans le champs Livraison, j'aimerais que en validant cette recherche, j'obtienne la page résultats (si possible dans un nouveau fichier à enregistrer). C'est à dire, les 3 premiers champs obligatoires, et ensuite simplement les champs où j'aurais sélectionner des critères.

Merci de votre aide, en espérant avoir été clair dans mes objectifs.

Paco22
 

Pièces jointes

  • Test.zip
    25.3 KB · Affichages: 110
  • Test.zip
    25.3 KB · Affichages: 106
  • Test.zip
    25.3 KB · Affichages: 112

paco22

XLDnaute Junior
Re : Formulaire Multi-Critères

Bonsoir,

merci déjà pour cela, mais par contre dans la feuille résultats, ce n'est pas tout à fait cela que je veux.
Les 3 premières colonnes sont impeccables.
Par contre, pour les autres, je ne veux simplement que les colonnes ou j'ai sélectionné des critères.
Si par exemple, je sélectionne Produits et Prix, je dois voir ces colonnes dans ma feuille résultats avec Civ Nom et Prenom.
Suis-je assez clair ?
Merci déjà de votre aide.

Paco22
 

paco22

XLDnaute Junior
Re : Formulaire Multi-Critères

Bonjour,

pour la recherche, c'est excellent.
J'avais encore des questions :
est-il possible que le résultat s'ouvre automatiquement dans un nouveau fichier ?
est-il possible que lorsque l'on valide la recherche, les filtres se mettent à "Zero" dans la feuille listing et que le formulaire se ferme ?

Merci beaucoup pour cette aide précieuse.

Paco22
 

paco22

XLDnaute Junior
Re : Formulaire Multi-Critères

Bonjour,

ok pour supprimer la ligne.
Autrement, si jamais je rajoute des colonnes avant Marques, Produits
cela va changer quoi dans le code ?

Avez-vous moyen de me mettre des commentaires sur cette partie, afin que je comprennes bien ce qui est fait ??

Set plage1 = Range("a3", "c" & Range("c65536").End(xlUp).Row)
plage1.Copy .Range("a3")
Set suite = .Cells(3, .Range("IV3").End(xlToLeft).Column + 1)
If marques1.Value <> "" Then
Set marques = Range("k3", "k" & Range("c65536").End(xlUp).Row)
marques.Copy suite
Set suite = .Cells(3, .Range("IV3").End(xlToLeft).Column + 1)
End If

Merci beaucoup.
......ensuite ce sera OK

Paco22
 

skoobi

XLDnaute Barbatruc
Re : Formulaire Multi-Critères

Re bonjour,

voici les commentaires:

Set plage1 = Range("a3", "c" & Range("c65536").End(xlUp).Row) 'récupère le résultat du filtre en colonne "A:C"
plage1.Copy .Range("a3")
'permet d'identifier la dernière colonne vide sur la ligne 3 et l'attribuer à la variable suite
Set suite = .Cells(3, .Range("IV3").End(xlToLeft).Column + 1)'permet d'identifier la dernière colonne vide sur la ligne 3 et attribuer la cellule trouvée à la variable suite
If marques1.Value <> "" Then
Set marques = Range("k3", "k" & Range("c65536").End(xlUp).Row) 'récupère le résultat du filtre en colonne "K"
marques.Copy suite
Set suite = .Cells(3, .Range("IV3").End(xlToLeft).Column + 1)
End If

Merci beaucoup.
......ensuite ce sera OK

Paco22[/QUOTE]
 

paco22

XLDnaute Junior
Re : Formulaire Multi-Critères

Bonjour,

j'ai essayé de mettre cela dans un autre fichier identique, mais avec beaucoup plus de colonne....en remplacant K3 et K par des R, et automatiquement, le premier filtre est mis sur la colonne A....
A quoi correspond IV3 dans Range ?
Merci

Paco22
 

skoobi

XLDnaute Barbatruc
Re : Formulaire Multi-Critères

Re bonjour,

cette instruction met le filtre à zéro:

Code:
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData

Elle se trouve normalement à la fin de la macro "Private Sub CommandButton1_Click()"


Code:
Private Sub CommandButton1_Click()
Workbooks.Add
ThisWorkbook.Sheets(1).Activate
With Workbooks(2).Sheets(1)
   Set plage1 = Range("a3", "c" & Range("c65536").End(xlUp).Row)
   plage1.Copy .Range("a3")
   Set suite = .Cells(3, .Range("IV3").End(xlToLeft).Column + 1)
   If marques1.Value <> "" Then
      Set marques = Range("k3", "k" & Range("c65536").End(xlUp).Row)
      marques.Copy suite
      Set suite = .Cells(3, .Range("IV3").End(xlToLeft).Column + 1)
   End If
   If produits1.Value <> "" Then
      Set produits = Range("L3", "L" & Range("c65536").End(xlUp).Row)
      produits.Copy suite
      Set suite = .Cells(3, .Range("IV3").End(xlToLeft).Column + 1)
   End If
   If quantites1.Value <> "" Then
      Set quantites = Range("M3", "M" & Range("c65536").End(xlUp).Row)
      quantites.Copy suite
      Set suite = .Cells(3, .Range("IV3").End(xlToLeft).Column + 1)
   End If
   If prix1.Value <> "" Then
      Set prix = Range("N3", "N" & Range("c65536").End(xlUp).Row)
      prix.Copy suite
      Set suite = .Cells(3, .Range("IV3").End(xlToLeft).Column + 1)
   End If
   If livraison1.Value <> "" Then
      Set livraison = Range("O3", "O" & Range("c65536").End(xlUp).Row)
      livraison.Copy suite
      Set suite = .Cells(3, .Range("IV3").End(xlToLeft).Column + 1)
   End If
End With
[B][COLOR="Blue"]If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData[/COLOR][/B]
Workbooks(2).Activate
Unload Me
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 629
Messages
2 090 321
Membres
104 491
dernier inscrit
anthony2812