DisplayAlerts sur fichier en lecture seule

Xtian_Québec

XLDnaute Occasionnel
Salut le Forum,
Merci à l'avance pour votre aide.

J'ai fait une recherche sur le forum mais je ne trouve pas la solution à mon problème. J'ai besoin de votre aide.

J'ai un fichier excel Metadata.xls qui ouvre un autre fichier excel Code.xls pour consulter des listes. J'ai une option dans Code.xls pour enregistrer une copie de la liste dans un fichier que l'utilisateur pourra conserver. Lorsque ces fichier sont sur mon poste local, tout fonctionne bien, voici ce qui se passe:

L'utilisateur ouvre le fichier Metadata.xls
Il active la macro pour accéder au fichier Code.xls
Dans ce fichier, il sélectionne une série de code et lorsqu'il veut les conserver, il sélectionne l'option "Exporter" et le code suivant s'exécute:

Sub ExportCode()
Dim ActiveWB, ExportWB As String
Dim FirstRow, LastRow As Integer
ActiveWB = ActiveWorkbook.Name
Workbooks.Add
ExportWB = ActiveWorkbook.Name

Workbooks(ActiveWB).Activate

FirstRow = Range("F18").End(xlDown).Row
LastRow = Range("F10000").End(xlUp).Row

Range("F12:AA" & LastRow).Select
Selection.Copy
Windows(ExportWB).Activate
Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.DisplayAlerts = False
Workbooks(ActiveWB).Close savechanges = False
End Sub


Le fichier Code.xls se ferme et l'utilisateur a alors un fichier "Classeur1" ouvert et il peut l'enregistrer comme bon lui semble. Tout est OK et lorsqu'il ferme son fichier, il retourne dans le fichier Metadata.xls.

Le problème survient lorsque je transfere les dossiers sur le serveur. L'utilisateur utilise une page Web avec un lien pour accéder au fichier Metadata. Afin de permettre à l'utilisateur d'utiliser Excel pour ouvrir le fichier Metadata, je m'assure que l'option "Ouvrir dans une page différente de IE est activé). Donc, lorsque l'utilisateur ouvre le Metadata.xls, il s'ouvre avec Excel, pas en HTML...

Même action mais cette fois à partir de la page Web
L'utilisateur ouvre le fichier Metadata.xls
Il active la macro pour accéder au fichier Code.xls
Dans ce fichier, il sélectionne une série de code et lorsqu'il veut les conserver, il sélectionne l'option "Exporter" et le même code s'exécute sauf que cette fois, le DisplayAlerts ne fonctionne pas car le message m'indique que le fichier est en lecture seule et demande de mettre un autre nom et enregistrer !!!

Je ne veux pas que les utilisateurs enregistrent une copie du fichier Code.xls, je veux que le fichier se ferme lorsque l'utilisateur fait "Exporter"

Pourquoi mon fichier se ferme directement sur mon poste local, sans message d'enregistrement (DisplayAlerts = False) (il n'est pas en lecture seule) et que le message apparaît lorsque je ferme le fichier que j'ai ouvert à partir du lien Web (Lecture seule) ???

Quelqu'un peut m'éclaircir ?

Merci à l'avance pour vos commentaires.

@+
Xtian_Quebec
 

Pierrot93

XLDnaute Barbatruc
Re : DisplayAlerts sur fichier en lecture seule

Bonjour xtian

pas sûr de répondre complètement à ta question.... mais remets peut être à "true" l'affichage des alertes, modifie la fin de ta procédure ainsi :

Code:
Application.DisplayAlerts = False
Workbooks(ActiveWB).Close savechanges = False
Application.DisplayAlerts = True

bonne soirée
@+
 

Xtian_Québec

XLDnaute Occasionnel
Re : DisplayAlerts sur fichier en lecture seule

Salut Pierrot93
J'ai essayé et aucun changement, la fenêtre "Enregistrer sous" apparaît encore et indique "Copie de Code.xls" dans le nom du fichier.

Je ne sais vraiment pas quoi faire pour empêcher cette fenêtre d'apparaître...
J'attends d'autres solutions.

merci pour ta réponse rapide.

Xtian_Québec
 

Pierrot93

XLDnaute Barbatruc
Re : DisplayAlerts sur fichier en lecture seule

Re

A mon avis, si le fichier est en lecture seule, tu ne pourras pas enregistrer les modifications directement, il y aura lieu de faire un "enregistrer sous"... Pour vérifier si le classeur est en "lecture seule", tu peux tester ainsi :

Code:
If ActiveWorkbook.ReadOnly Then

@+
 

Xtian_Québec

XLDnaute Occasionnel
Re : DisplayAlerts sur fichier en lecture seule

Re Pierrot93,
Ce que tu m'as indiqué dans ta réponse ne répond pas à ma demande mais tu m'as fait réfélchir et j'ai trouvé ce qui ne fonctionnait pas dans mon code. En m'indiquant "tu ne pourras pas enregistrer les modifications directement" tu m'a fait réaliser que mon code indiquait

Workbooks(ActiveWB).Close savechanges = False

alors qu'aucun enregistrement ne doit être effectué dans ce fichier. j'ai donc changé le "false" pour "true" dans cette ligne de code et maintenant, mon fichier Code.xls se ferme sans alerte...c'est super...

Merci de m'avoir permis de réfléchir sur mon cas...Quelques fois, il s'agit que d'une autre vision du problème pour trouver la solution...

Merci encore et à la prochaine !

Xtian_Québec
 

Discussions similaires

Réponses
2
Affichages
113

Statistiques des forums

Discussions
312 201
Messages
2 086 171
Membres
103 152
dernier inscrit
Karibu