IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Voir le flux RSS

Philippe Tulliez

[Actualit�] VBA - Excel - Comment filtrer et charger des donn�es en fonction de la s�lection d'un onglet du TabStrip

Noter ce billet
par , 19/04/2023 � 12h25 (6126 Affichages)
Pr�ambule
Dans un billet pr�c�dent, titr� Comment cr�er dynamiquement les onglets d'un contr�le TabStrip � l'aide d'une fonction g�n�rique, j'ai montr� comment cr�er dynamiquement les onglets d'un objet TabStrip.

Nom : TabStrip_CRM.gif
Affichages : 8867
Taille : 404,3 Ko

Qu'est-ce qu'un TabStrip ?
Son aspect est proche de l'objet MultiPage mais la mani�re de l'utiliser est totalement diff�rente.

Dans un MutliPage on peut afficher des contr�les diff�rents par onglet tel que TextBox, ListBox, OptionButton, etc. alors que le TabStrip ne peut visuellement qu'avoir les m�mes contr�les.

Son usage est donc tr�s approchant d'un OptionButton sa propri�t� Value renvoie un num�ro. Le fait que l'on clique sur un onglet, le rend plus convivial � utiliser dans certaine circonstance.
Le but lorsque l'on s�lectionne l'onglet d'un TabStrip �tant d'obtenir les donn�es correspondantes � cette s�lection.

L'exemple
Pour illustrer ce billet, j'ai choisi comme exemple, d'afficher des donn�es filtr�es d'une liste des donn�es de clients, Prospectou Suspects en fonction de la s�lection d'un onglet du TabStrip

Pour rendre plus simple la compr�hension de l�article et surtout pour se concentrer sur le sujet, � savoir, l�affichage dans un ListBox de donn�es filtr�es, on consid�rera que pour les contr�les :
  • ListBox : les propri�t�s ColumnCount et ColumnWidth sont d�j� d�finies
  • TabStrip que le nombre d�onglet et la propri�t�s Caption sont d�finis.

Je me concentrerai donc dans cet article sur la proc�dure qui permet de filtrer les donn�es en fonction de la s�lection d�un onglet du TabStrip

La donn�e source
La source de donn�es est un tableau structur� nomm� t_CRM et contient les donn�es de Client, Prospect et Suspect. Le statut de ceux-ci est d�fini dans la colonne �ponyme de la table.

Nom : Liste CRM + TabStrip (r�duit).png
Affichages : 3103
Taille : 197,8 Ko

Le UserForm
Le UserForm nomm� usf_TabStrip_Exemple contient 2 contr�les
  • TabStrip nomm� tabClient
    Qui contient 3 onglets (Collection Tabs) dont la propri�t� Caption a comme valeur pour Tabs(0) Client, Tabs(1) Prospect, Tabs(2) Suspect
  • ListBox nomm� lst_Client

Il contient �galement 3 proc�dures : RefreshList qui actualise le ListBox et deux proc�dures �v�nementielles UserForm_Activate et tabClient_Click qui n'ont comme r�le que d'invoquer la proc�dure RefreshList

Nom : TabStrip - UserForm.png
Affichages : 3071
Taille : 31,6 Ko

La proc�dure RefreshList
Cette proc�dure actualise le ListBox nomm� lst_Client en �valuant la fonction FILTRER (FILTER pour VBA) et modifie le titre du formulaire
Au pr�alable elle remplace la balise <CRITERIA> du mod�le de la formule par le nom de l'onglet s�lectionn�
Code de la proc�dure
Code VBA : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub RefreshList()
  Const FormulaPattern As String = "=FILTER(t_CRM,t_CRM[Statut]=<Criteria>)"
  Dim Text As String
  Dim FormulaText As String
  With Me
   With .tabClient
    Text = .Tabs(.Value).Caption
    ' Remplace le texte de la formule en remplacant la balise <Criteria>
    '    par le nom de l'onglet sélectionné
    FormulaText = Replace(FormulaPattern, "<Criteria>", Chr(34) & Text & Chr(34))
   End With
  .Caption = "CRM - Liste des " & Text     ' Modifie le titre du formulaire
  .lst_Client.List = Evaluate(FormulaText) ' Charge le ListBox
  End With
End Sub

Les proc�dures �v�nementielles
Code VBA : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
Private Sub UserForm_Activate()
  RefreshList '
End Sub
 
Private Sub tabClient_Click(ByVal Index As Long)
  RefreshList '
End Sub

La fonction FILTRE / FILTER
La fonction FILTRE, FILTER pour la version anglaise est utilis�e dans la proc�dure RefreshList par �valuation (fonction Evaluate de VBA). Cette fonction qui n'est disponible que pour les versions 365 pour Windows et Mac ainsi que pour le version Excel Web permet de filtrer des donn�es suivant un ou plusieurs crit�res

Dans l'illustration on peut constater les donn�es filtr�es par rapport au mot qui se trouve en cellule C1 qui est le param�tre. Dans la proc�dure RefreshList on devra pratiquer de la m�me fa�on.

Le texte g�n�rique de la formule est la valeur de la constante FormulaPattern, ci-dessous, et le param�tre est repr�sent� par la balise <Criteria>
Code : S�lectionner tout - Visualiser dans une fen�tre � part
=FILTER(t_CRM,t_CRM[Statut]=<Criteria>)
Pour obtenir le texte entier de la formule on utilisera la fonction Replace pour remplacer cette balise par la valeur de la propri�t� Caption de l'onglet s�lectionn�

Nom : FILTRER - (Excel).png
Affichages : 3041
Taille : 39,4 Ko

Ressources
Voici une liste de tutoriels ou billets en rapport avec cet article.


Un fichier de d�monstration en t�l�chargement

Envoyer le billet � VBA - Excel - Comment filtrer et charger des donn�es en fonction de la s�lection d'un onglet du TabStrip � dans le blog Viadeo Envoyer le billet � VBA - Excel - Comment filtrer et charger des donn�es en fonction de la s�lection d'un onglet du TabStrip � dans le blog Twitter Envoyer le billet � VBA - Excel - Comment filtrer et charger des donn�es en fonction de la s�lection d'un onglet du TabStrip � dans le blog Google Envoyer le billet � VBA - Excel - Comment filtrer et charger des donn�es en fonction de la s�lection d'un onglet du TabStrip � dans le blog Facebook Envoyer le billet � VBA - Excel - Comment filtrer et charger des donn�es en fonction de la s�lection d'un onglet du TabStrip � dans le blog Digg Envoyer le billet � VBA - Excel - Comment filtrer et charger des donn�es en fonction de la s�lection d'un onglet du TabStrip � dans le blog Delicious Envoyer le billet � VBA - Excel - Comment filtrer et charger des donn�es en fonction de la s�lection d'un onglet du TabStrip � dans le blog MySpace Envoyer le billet � VBA - Excel - Comment filtrer et charger des donn�es en fonction de la s�lection d'un onglet du TabStrip � dans le blog Yahoo

Mis � jour 09/05/2023 � 16h46 par Philippe Tulliez

Cat�gories
VBA Excel

Commentaires