Instance Excel dans Access

Le
Christophe CAMPAIN
Bonjour à tous,

Depuis quelques tps, je travail sur un module Access permettant de
travailler au minimum des photos sur Access (visualisation, séléction zone
de grossissement, travail par lot) afin de faciliter la création d'états
incorporants des images.
Access n'est pas ce qui se fait de mieux pour le travail des images
Cependant, avec l'aide de certain dont Raymond (c'est à partir du fichier
pompé sur son site que je bosse "imagedouble.mdb") je parviens à bricoler
des trucs qui vont dans ce sens.

Actuellement , j'essaie de trouver une astuce pour afficher la zone
séléctionnée d'une image en version agrandie. Access ne dispose pas (aprés
recherche perso et question sur le forum) d'outils capables de répondre à ce
besoin.
Je sais qu'Excel lui en dispose (on me l'a soufflé et j'ai pu dévelloper un
module sous excel permettant de faire ce que j'essaie de faire une grande
partie de ce que j'essaie de faire sous access : Merci Michel)

La solution qui m'a été soufflé ( je ne sais malheureusement plus par
qui) était d'avoir recour à une instance Excel pour utiliser ses objets.

Voilà donc le code auquel je suis arrivé pour le moment
--
Sub testXL()
Dim xlAppl As Excel.Application
Dim Image, gr, ExcelSheet As Object


Set xlAppl = CreateObject("Excel.Application")
xlAppl.Visible = True
xlAppl.WindowState = xlMaximized

Set ExcelSheet = CreateObject("Excel.Sheet")
' Rend Excel visible au travers de l'objet Application.
ExcelSheet.Application.Visible = True
ExcelSheet.Activate
Set gr = ActiveSheet.ChartObjects.Add(0, 0, 512, 384)
gr.Activate
' On Error Resume Next
Set Image = ActiveChart.Pictures.Insert("C:Documents and
SettingsccampainBureauVirtual picturePhoto 016.jpg").Select
With Image
.ShapeRange.LockAspectRatio = True
.ShapeRange.Width = 300
.ShapeRange.Height = 300
.CopyPicture Appearance:=xlScreen, Format:=xlPicture
End With

' gr.Chart.Paste
' Enregistre l'image dans le répertoire de destination
gr.Chart.Export "C:Documents and SettingsccampainBureauTest Image
Access - Excel .jpg"
Image.Delete
Set Image = Nothing
gr.Delete
Set gr = Nothing

' Ferme Excel en appliquant la méthode Quit sur l'objet Application.
ExcelSheet.Application.Quit
' Supprime la variable objet.
Set ExcelSheet = Nothing

End Sub


le problème c'est que la ligne "Set Image =
ActiveChart.Pictures.Insert("C:Documents and
SettingsccampainBureauVirtual picturePhoto 016.jpg").Select" génère une
erreur (ce qu'elle ne fait pas sous excel) pour incompatibilté de type.

Pourquoi ?

Par avance merci, déjà pour être arrivé à la fin du message, et pour l'aide
que vous pourrez m'apporter.

@+
Kristof

  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
Christophe CAMPAIN
Le #5060811
Je viens de trouver...
Un ".select" s'était glissé par erreur à la fin de l'instruction...

@+
Kristof

"Christophe CAMPAIN" dans le message de news:
Bonjour à tous,

Depuis quelques tps, je travail sur un module Access permettant de
travailler au minimum des photos sur Access (visualisation, séléction zone
de grossissement, travail par lot...) afin de faciliter la création
d'états

incorporants des images.
Access n'est pas ce qui se fait de mieux pour le travail des images...
Cependant, avec l'aide de certain dont Raymond (c'est à partir du fichier
pompé sur son site que je bosse "imagedouble.mdb") je parviens à bricoler
des trucs qui vont dans ce sens.

Actuellement , j'essaie de trouver une astuce pour afficher la zone
séléctionnée d'une image en version agrandie. Access ne dispose pas (aprés
recherche perso et question sur le forum) d'outils capables de répondre à
ce

besoin.
Je sais qu'Excel lui en dispose (on me l'a soufflé et j'ai pu dévelloper
un

module sous excel permettant de faire ce que j'essaie de faire une grande
partie de ce que j'essaie de faire sous access : Merci Michel)

La solution qui m'a été soufflé ( je ne sais malheureusement plus par
qui...) était d'avoir recour à une instance Excel pour utiliser ses
objets.


Voilà donc le code auquel je suis arrivé pour le moment
--------------
Sub testXL()
Dim xlAppl As Excel.Application
Dim Image, gr, ExcelSheet As Object


Set xlAppl = CreateObject("Excel.Application")
xlAppl.Visible = True
xlAppl.WindowState = xlMaximized

Set ExcelSheet = CreateObject("Excel.Sheet")
' Rend Excel visible au travers de l'objet Application.
ExcelSheet.Application.Visible = True
ExcelSheet.Activate
Set gr = ActiveSheet.ChartObjects.Add(0, 0, 512, 384)
gr.Activate
' On Error Resume Next
Set Image = ActiveChart.Pictures.Insert("C:Documents and
SettingsccampainBureauVirtual picturePhoto 016.jpg").Select
With Image
.ShapeRange.LockAspectRatio = True
.ShapeRange.Width = 300
.ShapeRange.Height = 300
.CopyPicture Appearance:=xlScreen, Format:=xlPicture
End With

' gr.Chart.Paste
' Enregistre l'image dans le répertoire de destination
gr.Chart.Export "C:Documents and SettingsccampainBureauTest
Image

Access - Excel .jpg"
Image.Delete
Set Image = Nothing
gr.Delete
Set gr = Nothing

' Ferme Excel en appliquant la méthode Quit sur l'objet Application.
ExcelSheet.Application.Quit
' Supprime la variable objet.
Set ExcelSheet = Nothing

End Sub
---------------------

le problème c'est que la ligne "Set Image > ActiveChart.Pictures.Insert("C:Documents and
SettingsccampainBureauVirtual picturePhoto 016.jpg").Select" génère
une

erreur (ce qu'elle ne fait pas sous excel) pour incompatibilté de type.

Pourquoi ?

Par avance merci, déjà pour être arrivé à la fin du message, et pour
l'aide

que vous pourrez m'apporter.

@+
Kristof





Poster une réponse
Anonyme