Macro protection et tri

Bonjour,

Je rencontre une difficulté dans une petite macro Excel.

J’ai un fichier REPORTING dans lequel j’ai un tableau.

Celui-ci est alimenté par les données provenant d’un autre fichier PRINCIPAL sur lequel je requête Power Query.

Cela fonctionne très bien.

Je souhaiterais néanmoins sur mon fichier REPORTING que :

  • A l’ouverture il automatise la mise à jour des données par la requête
  • Qu’un tri soit fait sur la colonne n° 4 avec le critère « =MS »
  • Protéger la feuille afin que l’utilisateur ne puisse pas modifier les critères de tri

J’ai tenté quelques commandes dans le WorkBook Open mais je rencontre des difficultés car lorsque ma feuille est protégée, le tri ne s’exécute plus.

Pourriez-vous m’aider ?

Je vous remercie

Bonjour,

Si ton soucis c'est qu'au départ ta feuille est protégée, il suffit d'ajouter une instruction unprotect dans tes lignes de code, tu peux également vérifier si le classeur est protégé ou non:

ThisWorkbook.ProtectStructure

ThisWorkbook.ProtectWindows

Ces deux propriétés renvoient si oui ou non, ton classeur est protégé sur la structure, ou sur ses fenêtres.

Il te suffira ensuite de remettre la protection avec Thisworkbook.protect

Merci pour ta réponse rapide.

Mon classeur est bien protégé.

Ce que je voudrais, à son ouverture c'est :

  • Le déprotéger
  • Actualiser les données
  • Laisser le tri se faire
  • Reprotéger

J'ai l'impression que le tri ne fonctionne pas si le classeur est protégé à ce moment.

C'est sûrement car tu protèges la structure du fichier, un tri ça modifie sa structure, il faut donc déprotéger le classeur au lancement, tu rajoutes donc au tout début de ton programme:

Thisworkbook.unprotect(ton mot de passe)

Merci.

Donc dans mon WorkBook Open j'ajoute :

Thisworkbook.Unprotect password:="xxxx"

Thisworkbook.RefreshAll

Thisworkbook.Protect password:="xxxx"

Je présume qu'au moment du RefreshAll il procèdera au tri avant d'être à nouveau protégé et que cela fonctionnera.

Je tente dans l'après-midi et reviens vers toi.

Merci

Actualiser les données ne réapplique pas le filtre, cette ligne de commande en revanche...

ActiveSheet.AutoFilter.ApplyFilter

Rechercher des sujets similaires à "macro protection tri"