Rechercher : dans
Par :

VBA : filtrer avec une boite de dialogue

Dernière réponse le 27 avr 2007 à 20:40:24 Laureen88, le 27 avr 2007 à 14:13:39 
 Signaler ce message aux modérateurs

Bonjour à tous,
J'ai un soucis avec VBA, je dois filtrer les informations d'une liste de produits à l'aide d'une boite de dialogue où sont à indiquer les différents critères de selection.
Après avoir fait ce "filtrage", je dois extraire la liste de produits (correspondant donc à mes critères de séléction), dans une nouvelle feuille.
Et je ne sais pas du tout comment faire.
Pourriez vous m'aider s'il vous plait.
Merci à tous.

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « VBA : filtrer avec une boite de dialogue » dans :
[Windows] Personnaliser la boîte de dialogue 'Enregistrer' VoirPersonnaliser la boîte de dialogue "Enregistrer" ou "Enregistrer sous..." de Windows (XP ou 2000); Plus précisément, il s'agit de personnaliser la colonne de gauche, contenant par défaut les raccourcis (icônes) "Mes documents récents", "Bureau",...
VBScript - Les boîtes de dialogue VoirQu'est-ce qu'une boîte de dialogue? Une boîte de dialogue est une fenêtre qui s'affiche au premier plan suite à un événement, et qui permet : soit d'avertir l'utilisateur ; soit le confronter à un choix ; soit lui demander de compléter un champ...
Javascript - les boîtes de dialogue VoirQu'est-ce qu'une boîte de dialogue? Une boîte de dialogue est une fenêtre qui s'affiche au premier plan suite à un événement, et qui permet Soit d'avertir l'utilisateur Soit le confronter à un choix Soit lui demander de compléter un champ pour...
Ouverture d'un fichier VoirOuverture d'un fichier existant crée avec le même logiciel Il existe fondamentalement deux méthodes pour ouvrir un fichier sous Windows : Choisissez dans le menu du logiciel concerné Fichier > Ouvrir et naviguez jusqu’au fichier concerné dans la...

1

akyrion3000, le 27 avr 2007 à 14:24:47
  • +1

On a un truc comme ça qui traine, je te fais un cc de la maquette, je n'ai pas plus d'infos mais cela peut peut etre orienter tes recherches sur un moteur de recherche.


Il faut compiler un truc de ce style :

LABEL|Label1|Liste des options à remplir|10|10
LABEL|Label2|Votre nom utilisateur|20|30
TEXTBOX|TextBox1|20|45|100|20
LABEL|Label3|Votre choix initial|20|70
LISTBOX|ListBox1|20|90|200|200|Je suis bof,Je suis pas mal,Je suis bon,Je suis excellent
CHECKBOX|Check1|Cochez ici pour voir...|300|100|200|20
CHECKBOX|Check2|Cochez ici pour voir encore...|300|150|200|20


et tu as un fichier texte de réponse :
TextBox1:
ListBox1:
Check1: Oui
Check2: Non
Aky Dépanneur de Paris

Répondre à akyrion3000

2

lermite222, le 27 avr 2007 à 14:28:13

Bonjour,
La boite de dialogue est sur un Usercontrol ou sur une feuille? les propriétés ne sont pas les mêmes.

Les recherches se font sur une seule colonne ?
A-tu déjà commencé un bout de code en VBA ? si oui, poste le.
donne un exemple.
louis

Répondre à lermite222

3

Laureen88, le 27 avr 2007 à 15:03:21

Salut,
La boite de dialogue sera sur un Usercontrol.
Les recherches vont se faire sur 4 colonnes.
Et je n'ai pas commencé à faire le code, car je ne sais pas du tout quoi écrire, je débute dans le VBA.
Pour plus de précision,il s'agit d'un projet où je dois filtrer des places de théâtre selon leur catégorie, leur prix, la date dez représentation, et l'heure. Toutes ces informations sont dans une autre feuille Excel sous forme des 4 colonnes qui sont les 4 critères qui doivent apparaitre dans ma botie de dialogue.
Merci de ton aide.
Laureen

Répondre à Laureen88

4

ixtobilly, le 27 avr 2007 à 16:09:30

Je suis pas un pro sur VBA mais j'ai réussi à faire des trucs symphats grâce à une technique simple.

Tu vas dans le menu : Outil - > Macro - > Nouvelle macro

Ceci va provoquer le lancement de l'enregisrteur de macro.

Cet outil traduit en VBA toutes tes actions. Tu feras donc manuellement tes actions (filatrage, copie deplacer vers une autre feuille, etc)

Ensuite tu arrete l'enregistrement et tu modifie les parties du code qui ne t'arrangent pas grace à :

Outil - > Macro - > Modifier (ALT + F8)

Pourvu que tu t'y connaisse un peu en VB.

Ensuite tu pourras penser Usercontrol

Répondre à ixtobilly

6

lermite222, le 27 avr 2007 à 17:30:08

Bonjour ixtobilly
D'accord pour ton système de macro, mais avec cette méthode pas moyen d'implémenter des recherches, de faire des adressages indexé etc...
C'est uniquement valable pour des tâches répétitives et toujours IDENTIQUES.
Mais le principe est bon pour connaitre la syntaxe.
A+ louis

Répondre à lermite222

5

lermite222, le 27 avr 2007 à 17:26:33

A-tu quand même quelque notion de VBA, sinon ça va être difficile parce que la fonction que tu veux implémenté si elle n'est pas compliquée elle met beaucoup de fonctions en oeuvre.
Si réponse, je verrais ce que je peut faire pour te donner des pistes pour une macro. Mais je ne compte pas te faire une macro toute faite, tu doit aussi apprendre !!
louis

Répondre à lermite222

7

Laureen88, le 27 avr 2007 à 19:56:19

J'ai quelque base de vba mais j'avoue ne pas savori faire énormément de chose avec.
et ne tinkiet je ne m'attendais pas à ce que tu me fasse la macro, sinon ça n'aurai aucun but.
Laureen

Répondre à Laureen88

8

 lermite222, le 27 avr 2007 à 20:40:24

Bonsoir,
Je ne peut faire plus car tu dit que le tri doit êtres sur 4 colonnes
Est-ce que critère1 c'est pour colonne1 ,critère2 pour colonne 2, etc..
ou explique un peu plus.
voilà un début de fonction qui te fait un tri sur une colonne
et peut inscrire dans une autre feuille.

Public Compare(1 To 5) As String

Public Sub Recherche_trie()
Dim i As Integer, T$
Dim a As Long
Dim b As Integer
Dim Lig As Integer


'sélectionne la première feuille
Worksheets("feuil1").Select
'Ceçi simule les critères qui sont dans la liste box
Compare(1) = "critère1"
Compare(2) = "critère2"
Compare(3) = "critère3"
Compare(4) = "critère4"
Compare(5) = "critère5"

'connaitre la dernière ligne initialisée dans la feuille
a = Range("A65536").End(xlUp).Row
Lig = 1 '' la 1ère ligne où copier
'Saisie des contenus des cellules
For i = 1 To a
T$ = Cells(i, 1) '' 1 si c'est dans la colonne 1
For b = 1 To 5 '' vérifie si la cellule contient un critère
If T$ = Compare(b) Then
' a trouver une comparaison

'inscrire la valeur de la cellule (ou la ligne ?)
'dans la feuille 2
'a la ligne lig

' pour avoir la prochaine ligne pour écrire
Lig = Lig + 1

End If
Next b
Next i

End Sub
tient moi au courant et tu peut toujours demander des éclaircisements. Pour connaître la fonction d'un mot le sélectionner et taper F1.
Bon courrage, bonne prog
A+
louis

Répondre à lermite222
Collection CommentÇaMarche.net