[Résolu] Déclencher l'ouverture d'une copie d'un document

Troudz

XLDnaute Occasionnel
Bonjour tout le monde,

Je viens de réaliser une macro me permettant d'ouvrir divers documents en lecture seule :
Code:
Sub OuvertureLectureSeule(ByVal Chemin As String)
    Select Case ExtraireExtension(Chemin)
    Case ".xl", ".xls", ".xlt", ".xla", ".xlm", ".xlc", ".xlw"
        Call Workbooks.Open(Filename:=Chemin, ReadOnly:=True)
    Case ".doc", ".dot"
        Set NouvelAppli = CreateObject("Word.Application")
        NouvelAppli.Visible = True
        Set NouveauDoc = NouvelAppli.Documents.Open(Chemin, ReadOnly:=True)
    Case ".ppt", ".pps"
        Set NouvelAppli = CreateObject("PowerPoint.Application")
        NouvelAppli.Visible = True
        Set NouveauDoc = NouvelAppli.Presentations.Open(Chemin, ReadOnly:=True)
    Case Else
        Call ShellExecute(0, "Open", Chemin, "", "", 1)
    End Select
End Sub

Je voudrais adapter ce code pour permettre l'ouverture d'une copie du document original(comme quand on clique droit sur un doc à partir de l'explorateur et que l'on fait "Nouveau").

Auriez vous une idée d'adaptation ?

Je vous remercie grandement pour votre aide
 
Dernière édition:

Misange

XLDnaute Barbatruc
Re : Déclencher l'ouverture d'une copie d'un document

Bonjour

tu ne peux pas ouvrir une copie d'un document original. Cette fonctionnalité n'est pas présente dans windows ou dans excel.
Il te faut ouvrir ton classeur, l'enregistrer sous un autre nom et travailler sur la copie ainsi créée
 

Troudz

XLDnaute Occasionnel
Re : Déclencher l'ouverture d'une copie d'un document

Bonjour Misange,

Je te remercie pour ta réponse même si elle n'arrange pas vraiment mes affaires. :(

En poursuivant mes recherches, j'ai tout de même trouvé une solution partielle pour les documents Office.
Remplacer :
Code:
Workbooks.Open(Chemin)
par
Code:
Workbooks.Add(Chemin)

C'est toujours ça de pris.

En tout cas merci d'avoir pris la peine de me répondre.

Bonne fin de journée
 

Misange

XLDnaute Barbatruc
Re : [Résolu] Déclencher l'ouverture d'une copie d'un document

Workbooks.add crée un nouveau classeur. Cela n'a rien à voir avec ta question qui si je l'ai bien comprise est d'ouvrir un classeur particulier sur une copie du classeur !

Tu peux mettre dans le workbook_open quelque chose comme ça pour créer une copie de sauvegarde et fermer l'original
Code:
NomCopie = "C:Users\XXXXX\sauvegarde\copie_" & ActiveWorkbook.Name ThisWorkbook.SaveCopyAs Filename:=NomCopie
ThisWorkbook.close False
 

Troudz

XLDnaute Occasionnel
Re : [Résolu] Déclencher l'ouverture d'une copie d'un document

Bonjour Misange et toutes mes excuses pour ne pas avoir vu ta dernière réponse. Je ne pensais pas avoir d'autre retour de ta part vu que tu m'avais dit que l'ouverture d'une copie n'était pas prévu par Windows ou Excel.

Etant un peu entêté, j'ai poursuivi mes recherches et je me suis fait la fonction ci dessous qui permet véritablement d'ouvrir une copie d'un document Excel, Word ou Powerpoint.

Code:
Sub OuvertureCopie(ByVal Chemin As String)
    Dim AppliExcel As Excel.Application
    Dim AppliWord As Word.Application
    Dim AppliPwt As PowerPoint.Application
    Select Case ExtraireExtension(Chemin)
    Case ".xl", ".xls", ".xlt", ".xla", ".xlm", ".xlc", ".xlw"
        Set AppliExcel = CreateObject("Excel.Application")
        AppliExcel.Visible = True
        Call AppliExcel.Workbooks.Add(Chemin)
    Case ".doc", ".dot"
        Set AppliWord = CreateObject("Word.Application")
        AppliWord.Visible = True
        Call AppliWord.Documents.Add(Chemin)
        AppliWord.Activate
    Case ".ppt", ".pps", ".pot"
        Set AppliPwt = CreateObject("PowerPoint.Application")
        AppliPwt.Visible = True
        Call AppliPwt.Presentations.Open(Chemin, , msoTrue)
        AppliPwt.Activate
    End Select
End Sub

Concernant ton observation sur Workbooks.Add, cette fonction permet effectivement de créer un nouveau classeur sauf si tu y rajoute un chemin de fichier en argument. Dans ce cas, elle ouvrira une copie de ce document.

En espérant que mes petites recherches serviront à d'autres.

Bonne journée à tous.
 

Misange

XLDnaute Barbatruc
Re : [Résolu] Déclencher l'ouverture d'une copie d'un document

Concernant ton observation sur Workbooks.Add, cette fonction permet effectivement de créer un nouveau classeur sauf si tu y rajoute un chemin de fichier en argument. Dans ce cas, elle ouvrira une copie de ce document.

En espérant que mes petites recherches serviront à d'autres.

Bonne journée à tous.

Bonjour

Bien vu. En fait tu détournes Workbooks.add(template), ce qui permet de créer un nouveau document en se basant sur un modèle. Dans le cas présent le modèle est un classeur complet.
 

Discussions similaires

Statistiques des forums

Discussions
312 800
Messages
2 092 231
Membres
105 297
dernier inscrit
Cadnov