Exécution macro dans un fichier en lecture seule

H1pnose

XLDnaute Nouveau
Bonjour,

Je rencontre actuellement un problème, j'ai besoin, pour une application, que mon fichier soit ouvert en lecture seule.
Pour cela j'utilise un premier fichier qui vient ouvrir automatiquement le fichier numéro 2 en lecture seule.

Or, quand le second fichier est ouvert ,en lecture seule, les macros saisies dans la partie "Sub Woorkbook_Open()" ne s'exécute pas.

De plus, ce même fichier (Fichier numéro 2), en l'ouvrant normalement me sors une erreur de d’exécution 5 quant à l'ouverture d'un UserForm, je clique sur déboggage puis relance l’exécution avec "F5" et tout fonctionne parfaitement.

Avez-vous déjà rencontré ce problème et avez vous une solution ?
 

dysorthographie

XLDnaute Accro
Bonjour,
Woorkbook_Open() à pour objet d'intialiser certains paramètres pas à exécuter des actions du genre actve , activate ,Select et selecton !

En fait pendant toute Woorkbook_Open() le classeur n'est pas actif !

C'est pour cette raison que ça fonctionne avec F5!

En d'autres termes ça ne fonctionne pas à l'ouverture car ton classeur n'est pas actif, ça fonctionne avec F5 car à ce moment là ton classeur est activé !

Il faut que tu copies colle toute la macro Woorkbook_Open() dans un module standard sous un autre nom, MyWoorkbook_Open() par exemple et que tu l'appelles de Woorkbook_Open()!
 
Dernière édition:

H1pnose

XLDnaute Nouveau
dysorthographie,

J'ai bien mis en place ce que tu m'as dit mais je rencontre toujours le problème de lecture seule, je m'explique :

J'ouvre mon fichier 1 qui exécute une macro ouvrant le fichier 2 en lecture seule
A l'ouverture le fichier 2 ferme le fichier 1 et doit Load puis . show mon Userform.

La fermeture du fichier 1 fonctionne parfaitement mais l'affichage de mon UserForm ne s'effectue pas.


VB:
Sub Initialisation_Ouverture ()

MonClasseur = ThisWorkbook.Path & "\Monfichieràfermer.xlsm"
Call OuvertureClasseur 'Procédure de vérification si le fichier est ouvert si oui il le ferme'

    Load USF_SignIn
    USF_SignIn.Show
    
Application.ScreenUpdating = False
Application.WindowState = xlMinimized
End Sub
 

H1pnose

XLDnaute Nouveau
Pour le code qui ferme le fichier 1 c'est un simple Workbook("Fichier1.xlsm").close
En supprimant cette ligne tout fonctionne correctement excepté que mon fichier 1 reste ouvert, mais il faut absolument qu'il se ferme.

Je fais actuellement une mise à jour d'un outil de gestion de demande maintenance (créer auparavant par mes soins) le souci est que excel ne gère pas le multi-user. J'ai donc décidé de scinder chaque fonction en un fichier ouvert en lecture seule pour pallier le problème.
 

Discussions similaires

Statistiques des forums

Discussions
311 729
Messages
2 081 966
Membres
101 852
dernier inscrit
dthi16088