Bonjour,

Mon profil : Je maîtrise Excel, mais pas du tout VBA / macro.
Je maîtrise plusieurs langages de dév., donc je peux comprendre des solutions de type dév. à bases de macro / VBA.

Voici ma situation :

J'ai développé un document de reporting à base de tableaux croisés dynamiques que je pourrai joindre à ce post une fois celui-ci anonymisé.

Chaque onglet du classeur présente des données de service spécifiques sur la base d'une période de temps de :
- 1 année glissante

En outre, ce document fait appel à une requête SQL qui va interroger une base MySQL distante grâce notamment à un numéro de Client (XXXX) unique.

Ce document fait des merveilles, mais il a deux défauts majeurs :

1) Le plus important : il est encore trop "manuel" - En effet, je suis obligé chaque mois de re-sélectionner les bons intervalles de temps dans chaque tableau dynamique de chaque onglet (de même que le bon code Client), ce qui s'avère fastidieux et source d'erreurs (humaines s'entend) - Je ne suis pas parvenu à trouver un filtre chronologique du type : "données sur 1 année glissante" dans les TCD.

2) Accessoirement : il est "trop" ouvert - Ainsi tout le monde peut-il accéder aux onglets en modification, ce qui empêche la distribution contrôlée du document, dès lors potentiellement modifiable à de multiples endroits et par de multiples utilisateurs non-habilités, avec toutes les conséquences que l'on peut imaginer - je souhaiterais maintenir une seule feuille en modification, et le reste en consultation / copie, tout en maintenant le doc modificable pour la requête SQL (Cf. plus bas).

Je souhaiterais donc pouvoir intégrer une requête SQL dans une macro, afin que les utilisateurs d'un fichier Excel 2010 puissent d'un simple clic réaliser l'équivalent d'un "Actualiser tout".

L'objectif au final serait de distribuer un fichier verrouillé en lecture seule mais tout de même modifiable par la requête SQL.

Comment faire pour :
1) Créer un bouton cliquable qui déclenchera un "Actualiser tout" de la requête SQL encapsulée ?
2) Faire en sorte de récupérer un code Client précisé dans une cellule du doc pour l'intégrer dans la requête SQL ?
3) Verrouiller le doc en lecture/copie seule pour les utilisateurs tout en le maintenant modifiable par la requête SQL ?
4) Créer un filtre chronologique dans les TCD pour sélectionner une anéne glissante ?

Par avance, merci de vos lumières.

Stéphane.