syntaxe de range

sasjm37

XLDnaute Junior
Bonjour le forum,
Grâce à une macro je désire filtrer une BDD via un Userform. J'ai un problème de syntaxe vu que je ne connais pas ni la colonne qui sera choisie par l'utilisateur ni la dernière ligne. Mais un fichier sera bien plus explicite.
Merci de votre aide
 

Pièces jointes

  • exemple BDD fictive.xls
    86.5 KB · Affichages: 64

kjin

XLDnaute Barbatruc
Re : syntaxe de range

Bonjour,
Comprends pas ! la colonne critère "sexe" est la colonne 8, il faudra nous expliquer comment on passe de 8 à 5 car d'explication il n'y en a point...
Code:
Range("A1").AutoFilter Field:=8, Criteria1:="<>femme"
A+
kjin
 

YANN-56

XLDnaute Barbatruc
Re : syntaxe de range

Bonjour sasjm37, kjin, et à ceux qui passeront par ici,

(Au passage; je n'ai pas vu d'USF :confused:)

Je pense que l'utilisation d'une ListView serait une solution intéressante.

Un simple Click sur l'en-tête des colonnes ferait un choix descendant ou ascendant.

Pour un tri élaboré; il suffirait de jouer avec une seconde ListView.

Si cela te tente, on peut aller plus loin.

Amicalement.

Yann
 

sasjm37

XLDnaute Junior
Re : syntaxe de range

Bonjour kjin,
merci de ta réponse mais je ne passe pas de l'un à l'autre, ce sont deux exemples différents : le premier concerne la colonne 8 et le deuxième la colonne 5. Je désire écrire la deuxième formule (colonne 5) sur le même principe que la première (colonne 8). Désolé de vous avoir embrouiller.
SASJM37
 

sasjm37

XLDnaute Junior
Re : syntaxe de range

Bonjour YANN-56 et tout ceux qui passent par là,
Je n'ai pas mis l'Userform. Je ne vois pas trop comment gérer une Listview avec le filtre élaboré mais je suis preneur. As-tu un exemple de macro sur ce principe ?
A+
SASJM37
 

sasjm37

XLDnaute Junior
Re : syntaxe de range

Bonjour Bjin,
Je vais reformuler ma demande.
la syntaxe suivante 'Range("B1:B" & Range("B65536").End(xlUp).Row).AutoFilter Field:=1, Criteria1:="<>2"' me convient parfaitement, seulement je dois l'adapter car je ne connais pas à l'avance la colonne qui sera filtrer. Donc en conservant le même type de formule et sachant que la variable 'CHOIX' sera le numéro de la colonne j'ai écrit 'Range(Cells(1, CHOIX), Cells(CHOIX) & Range(Cells(65535, CHOIX)).End(xlUp).Row).AutoFilter Field:=1, Criteria1:="<>2"' mais ça ne fonctionne pas.
Je n'ai pas parlé de tri et le formulaire n'apportera rien de plus à la compréhension du problème.
Je te remercie néanmoins de prendre du temps pour m'aider.
Cordialement
SASJM37
PS : la formule 'Range(cells(1,CHOIX)).AutoFilter Field:=CHOIX, Criteria1:="="' fonctionne, mais elle filtre toutes les colonnes et ce n'est pas mon souhait.
 

kjin

XLDnaute Barbatruc
Re : syntaxe de range

Bonjour, salut Pierrot :),
Je n'ai pas parlé de tri...
extrait du fichier joint à dit:
Bonjour,
Je veux trier la BDD grâce à un Userform, mais ça bug …
merci de votre aide
...et le formulaire n'apportera rien de plus à la compréhension du problème.
Si tu le dis !
Note que....
Code:
Dim col As Byte
col = 8
Range("A1").AutoFilter Field:=col, Criteria1:="<>femme"
...et...
Code:
Dim col As Byte
col = 8
Range(Cells(1, col), Cells(65536, col).End(xlUp)).AutoFilter Field:=1, Criteria1:="<>femme"
...renverrons le même résultat, les petites flèches en moins dans le second cas
A+
kjin
 
Dernière édition:

YANN-56

XLDnaute Barbatruc
Re : syntaxe de range

Bonjour sasjm37, kjin:), Pierrot:), et à ceux qui passeront par ici,

Sasjm, je te proposais l'utilisation d'une ListView
en espérant t'entendre dire si tu savais un peu utiliser ce type de contrôle.

Quoiqu'il en soit; je te joins un exemple.

Je n'ai pas paramétré les "Click sur en-tête de colonne", mais juste deux boutons.

Les codes sont simples, et si tu bidouilles un peu le VBA tu pourras extrapoler.

Ce n'est qu'une idée. A toi de t'en servir, si tu le souhaites.

Amicalement.

Yann
 

Pièces jointes

  • IDEE_LV.zip
    31 KB · Affichages: 18
Dernière édition:

sasjm37

XLDnaute Junior
Re : syntaxe de range

[Résolu]
Bonjour Yann-56, kjin, Pierrot93, et tous les autres,
Votre aide a été précieuse et a répondu à mes attentes.
Kjin je fais mon méa culpa.
Pierrot93 la formule me convient très bien.
Yann-56 je vais décortiquer le code et m'en servir soit en sur.
MERCI beaucoup
Cordialement
SASJM37
 

Statistiques des forums

Discussions
312 195
Messages
2 086 083
Membres
103 114
dernier inscrit
sylvainb6969