Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/06/2011, 18h26   #1
Membre habitué
 
Homme
Conseil - Consultant en systèmes d'information
Inscription : octobre 2008
Messages : 212
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information
Secteur : Conseil

Informations forums :
Inscription : octobre 2008
Messages : 212
Points : 126
Points : 126
Par défaut Identifier les colonnes filtrées dans un formulaire continu

Bonjour à tous,

Dans un formulaire continu on peut effectuer des filtres et des tris. Je souhaiterais avoir une procédure "simple" pour identifier quelles sont les données filtrées (et triées). Ceci afin que je puisse modifier l'apparence des étiquettes de tête de colonne pour les identifier rapidement.

Merci de vos aides.
Triton972 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2011, 21h16   #2
Membre Expert
 
Homme Jacques Petiot
Indépendant développeur et formateur
Inscription : octobre 2007
Messages : 891
Détails du profil
Informations personnelles :
Nom : Homme Jacques Petiot
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Indépendant développeur et formateur
Secteur : Conseil

Informations forums :
Inscription : octobre 2007
Messages : 891
Points : 1 333
Points : 1 333
hello
il suffit d'afficher me.filter et me.orderby
petite précision: quand on désactive le filtre ou le tri, on ne supprime pas la valeur de ces deux variables, on les conserve mais on passe me.filteron et me.orderby on à false

pour les afficher:
deux zones de texte "Filtre" et "Tri" indépendantes
et ce miniVBA:
Code :
1
2
3
4
5
6
7
8
Private Sub Filtre_GotFocus()
Filtre = Me.Filter
If Me.FilterOn Then Else Filtre = ""
End Sub
Private Sub Tri_GotFocus()
Tri = Me.OrderBy
If Me.OrderByOn Then Else Tri = ""
End Sub
ensuite, tu peux complexifier autant que tu veux (changer des étiquettes.caption, changer des couleurs, etc) et sur l'évènement qui te plait form_click par exemple
__________________
-------------------Simplifi----------comme si tout était simple--------
Simplifi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2011, 22h50   #3
Membre habitué
 
Homme
Conseil - Consultant en systèmes d'information
Inscription : octobre 2008
Messages : 212
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information
Secteur : Conseil

Informations forums :
Inscription : octobre 2008
Messages : 212
Points : 126
Points : 126
Bonjour Simplifi,

Je te remercie pour ta réponse mais cela ne répond pas vraiment à mon problème. Je vais essayer de le reformuler autrement.


Je souhaite intégrer dans la procédure évènementielle un morceau de code qui :

1-Balaie tous les contrôles de mon formulaire continu
2-Vérifie pour chaque contrôle si il fait partie de la clé de filtre 3-Retrouve l'étiquette associée à ce contrôle
4-Modifie l'apparence de l'étiquette (changer la couleur du fond par exemple, mais ça je sais faire !)

Merci,
Cordialement,
Triton972 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 10h50   #4
Membre Expert
 
Homme Jacques Petiot
Indépendant développeur et formateur
Inscription : octobre 2007
Messages : 891
Détails du profil
Informations personnelles :
Nom : Homme Jacques Petiot
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Indépendant développeur et formateur
Secteur : Conseil

Informations forums :
Inscription : octobre 2007
Messages : 891
Points : 1 333
Points : 1 333
Hello
Attention ne démarre que si tu utilises le bouton activer/désactiver le filtre, ou bien si tu filtres par le bouton droit
Ce qui veut dire que si tu filtre par programmation tu dois ajouter les lignes de prog

Voilà le prog qui fait ce que tu demandes, pas besoin de balayer les contrôles, ni de chercher les zones ou étiquettes....
Code :
1
2
3
4
5
6
7
Private Sub Form_ApplyFilter(Cancel As Integer, ApplyType As Integer)
If Me.Filter Like "*nom facturation*" Then
    nom_facturation.BackColor = 255
Else
    nom_facturation.BackColor = -2147483643
End If
End Sub
ou bien
Code :
1
2
3
4
5
6
7
8
9
Private Sub Form_ApplyFilter(Cancel As Integer, ApplyType As Integer)
If Me.Filter Like "*nom facturation*" And Me.FilterOn = True Then
    nom_facturation_Étiquette.BackColor = 255
    nom_facturation_Étiquette.Caption = "Nom Facturation Filtré"
Else
    nom_facturation_Étiquette.BackColor = -2147483643
    nom_facturation_Étiquette.Caption = "Nom Facturation"
End If
End Sub
__________________
-------------------Simplifi----------comme si tout était simple--------
Simplifi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 23h36   #5
Membre habitué
 
Homme
Conseil - Consultant en systèmes d'information
Inscription : octobre 2008
Messages : 212
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information
Secteur : Conseil

Informations forums :
Inscription : octobre 2008
Messages : 212
Points : 126
Points : 126
Bonjour,

Je te remercie Simplifi, je pense que je vais me débrouiller avec cà. Mais bon, j'aurai bien bien voulu trouver une procédure "standard" qui marche avec tous les formulaires sans devoir "dérouler" tous les contrôles. Cela en fait, je sais le faire.
En fait ce que je ne trouve pas, c'est comment retrouver, de façon automatique, l'étiquette d'un contrôle.

Mes recherches m'ont mené vers la propriété de l'étiquette qui "devrait" donner la référence du contrôle associé mais elle me renvoie inlassablement la référence du formulaire actif

Apparemment quand les contrôles sont organisés en mode "Empilé" (donc les étiquettes et les contrôles dans la même section) la propriété
Code :
Me.Etiquette123.Parent.Name
renvoie bien le nom du contrôle associé -> donc Pb pratiquement résolu. Par contre, quand les contrôles sont organisés en mode "Tabulaire" (les étiquettes dans l'en-tête et les contrôles dans la section détail) la propriété Parent renvoie la référence du formulaire.
C'est embêtant car pour un formulaire continu le mode "Tabulaire" me parait incontournable ...

Si tu connais une astuce pour réaliser cette opération ou comment me débrouiller pour que je puisse utiliser cette propriété, je pense que je pourrais concevoir LA procédure que j'espère réaliser.
Merci d'avance pour ta contribution,

Cordialement,
Triton972 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2011, 09h07   #6
Membre Expert
 
Homme Jacques Petiot
Indépendant développeur et formateur
Inscription : octobre 2007
Messages : 891
Détails du profil
Informations personnelles :
Nom : Homme Jacques Petiot
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Indépendant développeur et formateur
Secteur : Conseil

Informations forums :
Inscription : octobre 2007
Messages : 891
Points : 1 333
Points : 1 333
Hello
perso j'utilise simplement une procédure de 'nommage' (ou nomination):
Contrôle , Contrôle_Étiquette
Diamètre_Nuance, Diamètre_Nuance_Étiquette
etc....
sinon, je viens d'en apprendre une: pour moi 'parent' renvoyait toujours le nom du formulaire !?!? Merci
__________________
-------------------Simplifi----------comme si tout était simple--------
Simplifi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 03h44   #7
Membre habitué
 
Homme
Conseil - Consultant en systèmes d'information
Inscription : octobre 2008
Messages : 212
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information
Secteur : Conseil

Informations forums :
Inscription : octobre 2008
Messages : 212
Points : 126
Points : 126
Bonsoir Simplifi,

Tes infos m'ont bien aidé à voir ce qui était, en fait, devant mes yeux ...
Un renommage cohérent de mes étiquettes et l'affaire est entendue !
En fin de compte j'ai plutôt fait une boucle sur les étiquettes ainsi "renommées" (et identifiées ainsi comme étant LES étiquettes qui m'intéressent) et vérifié si les contrôles associés faisaient parti des clés de tri et de filtre.
Quand les contrôles font partie de la clé du filtre : je change la couleur du fond de l'étiquette. Quand les contrôles font partie de la clé du tri : je change la couleur de la police.

Merci à toi.
@+
Triton972 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h49.


 
 
 
 
Partenaires

Hébergement Web