Extraire et sauvegarder en VBA des objets incorporés
1 réponse
Olivier B
Bonjour,
J'ai une feuille Excel qui contient un fichier incorporé (comme par exemple
un document Word ou une image).
Quelqu'un connaît il une macro sous Excel qui sauvegarde sur le disque dur
le fichier Word ou l'image ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
PMO
Bonjour,
Voici un code qui va peut-être vous satisfaire..
LA MACRO FAIT: 1) Elle ne traite que les objets image et les objets incorporés en les différenciant quant à leur traitement. 2) Elle sauvegarde chaque objet dans un fichier Word (.doc) avec un nom différent pour éviter les conflits. Elle sauve dans C mais il vous suffit de modifier la constante CHEMIN pour adaption.
Si vous ouvrez un fichier INCORPORE et que vous cliquez droit sur l'objet, le menu contextuel vous permet d'ouvrir complètement l'objet pour consultation (clic_droit/Objet/Ouvrir).
'******************************** Option Explicit Const CHEMIN As String = "C:" Sub SaveEmbedded() Dim R As Range Dim S As Shape Dim Obj As Object Dim WD As Object Dim genre$ On Error GoTo Erreur Set R = Range(Selection.Address) Application.ScreenUpdating = False For Each S In ActiveSheet.Shapes If S.Type = msoEmbeddedOLEObject Then S.Select Set Obj = Selection Obj.Verb Verb:=xlPrimary Obj.Copy genre$ = "INCORPORE" GoSub SousProg End If If S.Type = msoPicture Then S.Select S.CopyPicture genre$ = "IMAGE" GoSub SousProg End If Next S Erreur: Application.ScreenUpdating = True Exit Sub SousProg: Set WD = CreateObject("WORD.document") With WD .Content.Paste .ActiveWindow.View.Type = 3 .SaveAs CHEMIN & genre$ & "_" & CDbl(Now) & ".doc" .Close End With Set WD = Nothing R.Select Return End Sub '********************************
Cela fonctionne-t'il chez vous ?
PMO Patrick Morange
Bonjour,
J'ai une feuille Excel qui contient un fichier incorporé (comme par exemple un document Word ou une image). Quelqu'un connaît il une macro sous Excel qui sauvegarde sur le disque dur le fichier Word ou l'image ?
Merci pour votre aide,
Olivier
Bonjour,
Voici un code qui va peut-être vous satisfaire..
LA MACRO FAIT:
1) Elle ne traite que les objets image et les objets incorporés en
les différenciant quant à leur traitement.
2) Elle sauvegarde chaque objet dans un fichier Word (.doc) avec
un nom différent pour éviter les conflits. Elle sauve dans C mais
il vous suffit de modifier la constante CHEMIN pour adaption.
Si vous ouvrez un fichier INCORPORE et que vous cliquez droit sur
l'objet, le menu contextuel vous permet d'ouvrir complètement
l'objet pour consultation (clic_droit/Objet/Ouvrir).
'********************************
Option Explicit
Const CHEMIN As String = "C:"
Sub SaveEmbedded()
Dim R As Range
Dim S As Shape
Dim Obj As Object
Dim WD As Object
Dim genre$
On Error GoTo Erreur
Set R = Range(Selection.Address)
Application.ScreenUpdating = False
For Each S In ActiveSheet.Shapes
If S.Type = msoEmbeddedOLEObject Then
S.Select
Set Obj = Selection
Obj.Verb Verb:=xlPrimary
Obj.Copy
genre$ = "INCORPORE"
GoSub SousProg
End If
If S.Type = msoPicture Then
S.Select
S.CopyPicture
genre$ = "IMAGE"
GoSub SousProg
End If
Next S
Erreur:
Application.ScreenUpdating = True
Exit Sub
SousProg:
Set WD = CreateObject("WORD.document")
With WD
.Content.Paste
.ActiveWindow.View.Type = 3
.SaveAs CHEMIN & genre$ & "_" & CDbl(Now) & ".doc"
.Close
End With
Set WD = Nothing
R.Select
Return
End Sub
'********************************
Cela fonctionne-t'il chez vous ?
PMO
Patrick Morange
Bonjour,
J'ai une feuille Excel qui contient un fichier incorporé (comme par exemple
un document Word ou une image).
Quelqu'un connaît il une macro sous Excel qui sauvegarde sur le disque dur
le fichier Word ou l'image ?
LA MACRO FAIT: 1) Elle ne traite que les objets image et les objets incorporés en les différenciant quant à leur traitement. 2) Elle sauvegarde chaque objet dans un fichier Word (.doc) avec un nom différent pour éviter les conflits. Elle sauve dans C mais il vous suffit de modifier la constante CHEMIN pour adaption.
Si vous ouvrez un fichier INCORPORE et que vous cliquez droit sur l'objet, le menu contextuel vous permet d'ouvrir complètement l'objet pour consultation (clic_droit/Objet/Ouvrir).
'******************************** Option Explicit Const CHEMIN As String = "C:" Sub SaveEmbedded() Dim R As Range Dim S As Shape Dim Obj As Object Dim WD As Object Dim genre$ On Error GoTo Erreur Set R = Range(Selection.Address) Application.ScreenUpdating = False For Each S In ActiveSheet.Shapes If S.Type = msoEmbeddedOLEObject Then S.Select Set Obj = Selection Obj.Verb Verb:=xlPrimary Obj.Copy genre$ = "INCORPORE" GoSub SousProg End If If S.Type = msoPicture Then S.Select S.CopyPicture genre$ = "IMAGE" GoSub SousProg End If Next S Erreur: Application.ScreenUpdating = True Exit Sub SousProg: Set WD = CreateObject("WORD.document") With WD .Content.Paste .ActiveWindow.View.Type = 3 .SaveAs CHEMIN & genre$ & "_" & CDbl(Now) & ".doc" .Close End With Set WD = Nothing R.Select Return End Sub '********************************
Cela fonctionne-t'il chez vous ?
PMO Patrick Morange
Bonjour,
J'ai une feuille Excel qui contient un fichier incorporé (comme par exemple un document Word ou une image). Quelqu'un connaît il une macro sous Excel qui sauvegarde sur le disque dur le fichier Word ou l'image ?