TooFatBoy
XLDnaute Barbatruc
Bonjour,
J'ai un classeur Excel qui sert à afficher dans un tableau (une table) des données lues dans un autre classeur servant de base de données (avec "connect", "execute" et tout le tremblement...).
Les données lues dépendent du login de session Windows (pas la même "droits" selon l'utilisateur).
Par exemple, pour chaque chef de service la liste affichée correspond uniquement à son service, alors que pour le grand patron la liste affichée est la totalité de la base de données.
Tout ceci fonctionne parfaitement bien... ou presque.
En effet, si l'utilisateur utilise le menu de l'application pour actualiser l'affichage de la liste, il y a un problème si au moins une colonne comporte un filtre actif.
Au lieu d'effacer la table puis lire et afficher les données, l'application affiche une nouvelle fois les données en fin de liste (ce qui double donc le nombre de lignes), sans parler du décalage de ces nouvelles lignes (d'une colonne vers la droite)...
La solution que j'envisageai était donc de sauvegarder les filtres, supprimer le filtrage, actualiser la table (vidage de la table, puis lecture et affichage des données dans la table, puisque dans ce cas ça fonctionne correctement), et enfin remettre les critères de filtrage.
Seulement, les critères de filtrage peuvent être tellement nombreux que je ne vois pas bien comment procéder.
J'ai essayé de mettre Worksheets("Feuil1").AutoFilter.Filters dans une variable MesFiltres. Ca semble fonctionner d'après l'espion de variables.
Mais dès que je supprime les filtres, Worksheets("Feuil1").AutoFilter.Filters est bien évidemment vidée, mais cette variable MesFiltres est également vidée !!!
Bref, sauriez-vous me venir en aide ?
Merci
(sinon, de mon côté je suis aussi en train de chercher dans une autre direction pour résoudre ce problème d'actualisation de ma table : arriver à faire vider la table correctement, qu'il y ait ou non des filtres actifs)
J'ai un classeur Excel qui sert à afficher dans un tableau (une table) des données lues dans un autre classeur servant de base de données (avec "connect", "execute" et tout le tremblement...).
Les données lues dépendent du login de session Windows (pas la même "droits" selon l'utilisateur).
Par exemple, pour chaque chef de service la liste affichée correspond uniquement à son service, alors que pour le grand patron la liste affichée est la totalité de la base de données.
Tout ceci fonctionne parfaitement bien... ou presque.
En effet, si l'utilisateur utilise le menu de l'application pour actualiser l'affichage de la liste, il y a un problème si au moins une colonne comporte un filtre actif.
Au lieu d'effacer la table puis lire et afficher les données, l'application affiche une nouvelle fois les données en fin de liste (ce qui double donc le nombre de lignes), sans parler du décalage de ces nouvelles lignes (d'une colonne vers la droite)...
La solution que j'envisageai était donc de sauvegarder les filtres, supprimer le filtrage, actualiser la table (vidage de la table, puis lecture et affichage des données dans la table, puisque dans ce cas ça fonctionne correctement), et enfin remettre les critères de filtrage.
Seulement, les critères de filtrage peuvent être tellement nombreux que je ne vois pas bien comment procéder.
J'ai essayé de mettre Worksheets("Feuil1").AutoFilter.Filters dans une variable MesFiltres. Ca semble fonctionner d'après l'espion de variables.
Mais dès que je supprime les filtres, Worksheets("Feuil1").AutoFilter.Filters est bien évidemment vidée, mais cette variable MesFiltres est également vidée !!!
Bref, sauriez-vous me venir en aide ?
Merci
(sinon, de mon côté je suis aussi en train de chercher dans une autre direction pour résoudre ce problème d'actualisation de ma table : arriver à faire vider la table correctement, qu'il y ait ou non des filtres actifs)