0
votes

Exécuter une macro dans un classeur protégé

J'essaie d'exécuter une macro dans Excel. J'ai un problème, le problème est que je souhaite protéger toutes les feuilles que la macro va générer. J'ai cette pièce de code pour générer le nom de la feuille: xxx pré>

J'ai une recherche et une façon d'exécuter la macro dans un fichier avec un mot de passe est celui-ci: P>

**ActiveSheet.Select
    ActiveSheet.Unprotect Password:="OSDA06"
 ActiveSheet.Select
    ActiveSheet.Protect Password:="OSDA06"**


0 commentaires

4 Réponses :


1
votes

Utilisez A pour la boucle pour parcourir toutes les feuilles de calcul.

Dim ws as variant

For Each ws in ThisWorkbook.Worksheets
    ws.Unprotect Password:="OSDA06"
next ws


1 commentaires

Je suis dimité à la feuille de calcul plus efficace.



1
votes

Merci beaucoup pour votre réponse, j'essaie maintenant avec le morceau de code que vous m'avez donné, et cela fonctionne, mais avec un petit problème. Ma macro crée une nouvelle feuille de calcul avec le mot semaine plus le nombre de la semaine, donc ma première feuille est "Semaine 24" lorsque j'exécute la macro avec votre code crée "Semaine 25", si je suis en feuille "Semaine 25" Et essayez de lancer la macro à nouveau, je reçois cette erreur "Le nom est déjà pris" et génère la feuille "Semaine 25 (2)". Si je supprime cette feuille et exécutez à nouveau la macro, fonctionne parfaitement, génère une "semaine 26". Si je suis en feuille "Semaine 26" et essayez de générer une autre feuille, la même chose se produit, générer la semaine 26 (2), je dois le supprimer et réessayer, puis génère, puis génère "la semaine 27"

C'est tout mon Code xxx


2 commentaires

Combien de feuilles de calcul essayez-vous de créer? Cette dynamique est-elle basée sur la valeur dans la cellule B5?


J'essaie de créer les semaines de l'année, donc essentiellement de la semaine 24 à la semaine 52



0
votes

Essayez ceci. Je n'ai pas testé ce code afin que cela puisse avoir besoin d'une modification. En général, envisagez d'éviter d'utiliser SELECT. Cela vous fera économiser du temps de calcul et vous permettra d'agir directement sur les données. xxx


0 commentaires

1
votes

Merci beaucoup pour votre aide, j'ai essayé avec le dernier code que vous m'avez donné et je ferai de faire des modifications (comme vous l'avez dit), mais le résultat final était que le bouton que j'utilise a généré les 52 feuilles. à une fois.

Alors, ce que j'ai fait était:

au lieu de xxx

i utilisé xxx

Le reste du code Je l'ai laissé le même

merci beaucoup pour votre aide


0 commentaires