Plantage=Mémoire ne peut pas être READ..
Le
ephilibert
Private Sub Exporter()
Dim sht As Worksheet
Dim NomSht As String
NomSht = ActiveSheet.Name
If MsgBox(prompt:="L'onglet actif va être exporté vers un
nouveau " & _
" classeur. Continuer ?", Buttons:=vbOKCancel,
Title:="Export") = vbCancel Then _
Exit Sub
Application.EnableEvents = False
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Sheets(1).Activate
ActiveWorkbook.SaveCopyAs "C:\ClasseurTemp.xls"
Workbooks.Open Filename:="C:\ClasseurTemp.xls",
password:="monaco"
For Each sht In ActiveWorkbook.Sheets
If sht.Name <> NomSht Then sht.Delete
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.EnableEvents = True
MsgBox prompt:="Opération effectuée avec succés.",
Buttons:=vbInformation, Title:="Export"
End Sub
Le classeur source que je duplique (pour n'en conserver que l'onglet
actif) contient pal mal de modules et des Userform,
si une des Userform a été initialisée avant l'exécution de ce module,
ce code provoque le plantage au moment de la sauvegarde du classeur
source.
J'ai essayé des Unload, des set Userform=Nothingrien à faire, je ne
comprends pas ce plantage ? Quelqu'un a-t-il une solution ? Merci.
Dim sht As Worksheet
Dim NomSht As String
NomSht = ActiveSheet.Name
If MsgBox(prompt:="L'onglet actif va être exporté vers un
nouveau " & _
" classeur. Continuer ?", Buttons:=vbOKCancel,
Title:="Export") = vbCancel Then _
Exit Sub
Application.EnableEvents = False
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Sheets(1).Activate
ActiveWorkbook.SaveCopyAs "C:\ClasseurTemp.xls"
Workbooks.Open Filename:="C:\ClasseurTemp.xls",
password:="monaco"
For Each sht In ActiveWorkbook.Sheets
If sht.Name <> NomSht Then sht.Delete
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.EnableEvents = True
MsgBox prompt:="Opération effectuée avec succés.",
Buttons:=vbInformation, Title:="Export"
End Sub
Le classeur source que je duplique (pour n'en conserver que l'onglet
actif) contient pal mal de modules et des Userform,
si une des Userform a été initialisée avant l'exécution de ce module,
ce code provoque le plantage au moment de la sauvegarde du classeur
source.
J'ai essayé des Unload, des set Userform=Nothingrien à faire, je ne
comprends pas ce plantage ? Quelqu'un a-t-il une solution ? Merci.

Poser une question


Une solution différente pour sauver un onglet :
activesheet.copy
ActiveWorkbook.saveas "C:ClasseurTemp.xls"
j-p
Activesheet.copy car je souhaite que le classeur mono-onglet ainsi
créé porte toutes les macros et userforms du classeur source.
En fait je pense que je viens de découvrir l'origine du plantage qui
serait dû à la procédure suivante:
Ouverture du classeur source
Load userform du classeur source
Unload userform du classeur source
SaveCopyAs du classeur source
Load userform du classeur source:...impossible, objet inconnu!!
j-p
As-tu fait toutes les mises à jour pour ta version d'Excel ?
En général, cela règle le problème de lecture de la mémoire.
MP
"manu" news:
En complément de la réponse de Michel (oui, il faut se lever tôt pour
trouver où il se pourrait que ... :o) ), passe aussi les mises à jour
pour ton système d'exploitation.
@+
FxM
Michel Pierron wrote: