-----Message d'origine-----
Bonjour Ellimac;
Par défaut, la fonction Shell exécute les autres
programmes de manière
asynchrone. Cela signifie qu'un programme lancé avec
Shell peut ne pas
s'exécuter entièrement avant que les instructions suivant
la fonction Shell
ne soient exécutées. Il faut don introduire une boucle
jusqu'a ce que
l'application Paint soit disponible:
Sub Paint()
Selection.Copy
Ret = Shell("C:WINDOWSsystem32mspaint.exe", 1)
1: On Error Resume Next
AppActivate Ret, True
If Err Then On Error GoTo 0: GoTo 1
Application.SendKeys "^v", True
End Sub
MP
"Ellimac" a écrit
dans le message de
news:151501c4fc72$0cb7cd20$
Bonjour,
Le bout de code suivant a fonctionné sous NT en XL 97 mais
ne fonctionne plus en XL 2003 sous XP :
Sub Paint()
Selection.Copy
Ret = Shell("C:WINDOWSsystem32mspaint.exe", 1)
AppActivate Ret, True
Application.SendKeys "^v", True
End Sub
Cela ouvre bien Paint mais plantage pour activer Paint et
donc le coller ne s'effectue pas.
Il s'arrête sur la ligne (erreur 5) : AppActivate Ret,
True
et si je clique sur débogage et je poursuis l'exécution
cela fonctionne.
Camille
.
-----Message d'origine-----
Bonjour Ellimac;
Par défaut, la fonction Shell exécute les autres
programmes de manière
asynchrone. Cela signifie qu'un programme lancé avec
Shell peut ne pas
s'exécuter entièrement avant que les instructions suivant
la fonction Shell
ne soient exécutées. Il faut don introduire une boucle
jusqu'a ce que
l'application Paint soit disponible:
Sub Paint()
Selection.Copy
Ret = Shell("C:WINDOWSsystem32mspaint.exe", 1)
1: On Error Resume Next
AppActivate Ret, True
If Err Then On Error GoTo 0: GoTo 1
Application.SendKeys "^v", True
End Sub
MP
"Ellimac" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news:151501c4fc72$0cb7cd20$a301280a@phx.gbl...
Bonjour,
Le bout de code suivant a fonctionné sous NT en XL 97 mais
ne fonctionne plus en XL 2003 sous XP :
Sub Paint()
Selection.Copy
Ret = Shell("C:WINDOWSsystem32mspaint.exe", 1)
AppActivate Ret, True
Application.SendKeys "^v", True
End Sub
Cela ouvre bien Paint mais plantage pour activer Paint et
donc le coller ne s'effectue pas.
Il s'arrête sur la ligne (erreur 5) : AppActivate Ret,
True
et si je clique sur débogage et je poursuis l'exécution
cela fonctionne.
Camille
.
-----Message d'origine-----
Bonjour Ellimac;
Par défaut, la fonction Shell exécute les autres
programmes de manière
asynchrone. Cela signifie qu'un programme lancé avec
Shell peut ne pas
s'exécuter entièrement avant que les instructions suivant
la fonction Shell
ne soient exécutées. Il faut don introduire une boucle
jusqu'a ce que
l'application Paint soit disponible:
Sub Paint()
Selection.Copy
Ret = Shell("C:WINDOWSsystem32mspaint.exe", 1)
1: On Error Resume Next
AppActivate Ret, True
If Err Then On Error GoTo 0: GoTo 1
Application.SendKeys "^v", True
End Sub
MP
"Ellimac" a écrit
dans le message de
news:151501c4fc72$0cb7cd20$
Bonjour,
Le bout de code suivant a fonctionné sous NT en XL 97 mais
ne fonctionne plus en XL 2003 sous XP :
Sub Paint()
Selection.Copy
Ret = Shell("C:WINDOWSsystem32mspaint.exe", 1)
AppActivate Ret, True
Application.SendKeys "^v", True
End Sub
Cela ouvre bien Paint mais plantage pour activer Paint et
donc le coller ne s'effectue pas.
Il s'arrête sur la ligne (erreur 5) : AppActivate Ret,
True
et si je clique sur débogage et je poursuis l'exécution
cela fonctionne.
Camille
.
-----Message d'origine-----
Bonjour Ellimac;
Par défaut, la fonction Shell exécute les autres
programmes de manière
asynchrone. Cela signifie qu'un programme lancé avec
Shell peut ne pas
s'exécuter entièrement avant que les instructions suivant
la fonction Shell
ne soient exécutées. Il faut don introduire une boucle
jusqu'a ce que
l'application Paint soit disponible:
Sub Paint()
Selection.Copy
Ret = Shell("C:WINDOWSsystem32mspaint.exe", 1)
1: On Error Resume Next
AppActivate Ret, True
If Err Then On Error GoTo 0: GoTo 1
Application.SendKeys "^v", True
End Sub
MP
"Ellimac" a écrit
dans le message de
news:151501c4fc72$0cb7cd20$
Bonjour,
Le bout de code suivant a fonctionné sous NT en XL 97 mais
ne fonctionne plus en XL 2003 sous XP :
Sub Paint()
Selection.Copy
Ret = Shell("C:WINDOWSsystem32mspaint.exe", 1)
AppActivate Ret, True
Application.SendKeys "^v", True
End Sub
Cela ouvre bien Paint mais plantage pour activer Paint et
donc le coller ne s'effectue pas.
Il s'arrête sur la ligne (erreur 5) : AppActivate Ret,
True
et si je clique sur débogage et je poursuis l'exécution
cela fonctionne.
Camille
.
-----Message d'origine-----
Bonjour Ellimac;
Par défaut, la fonction Shell exécute les autres
programmes de manière
asynchrone. Cela signifie qu'un programme lancé avec
Shell peut ne pas
s'exécuter entièrement avant que les instructions suivant
la fonction Shell
ne soient exécutées. Il faut don introduire une boucle
jusqu'a ce que
l'application Paint soit disponible:
Sub Paint()
Selection.Copy
Ret = Shell("C:WINDOWSsystem32mspaint.exe", 1)
1: On Error Resume Next
AppActivate Ret, True
If Err Then On Error GoTo 0: GoTo 1
Application.SendKeys "^v", True
End Sub
MP
"Ellimac" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news:151501c4fc72$0cb7cd20$a301280a@phx.gbl...
Bonjour,
Le bout de code suivant a fonctionné sous NT en XL 97 mais
ne fonctionne plus en XL 2003 sous XP :
Sub Paint()
Selection.Copy
Ret = Shell("C:WINDOWSsystem32mspaint.exe", 1)
AppActivate Ret, True
Application.SendKeys "^v", True
End Sub
Cela ouvre bien Paint mais plantage pour activer Paint et
donc le coller ne s'effectue pas.
Il s'arrête sur la ligne (erreur 5) : AppActivate Ret,
True
et si je clique sur débogage et je poursuis l'exécution
cela fonctionne.
Camille
.
-----Message d'origine-----
Bonjour Ellimac;
Par défaut, la fonction Shell exécute les autres
programmes de manière
asynchrone. Cela signifie qu'un programme lancé avec
Shell peut ne pas
s'exécuter entièrement avant que les instructions suivant
la fonction Shell
ne soient exécutées. Il faut don introduire une boucle
jusqu'a ce que
l'application Paint soit disponible:
Sub Paint()
Selection.Copy
Ret = Shell("C:WINDOWSsystem32mspaint.exe", 1)
1: On Error Resume Next
AppActivate Ret, True
If Err Then On Error GoTo 0: GoTo 1
Application.SendKeys "^v", True
End Sub
MP
"Ellimac" a écrit
dans le message de
news:151501c4fc72$0cb7cd20$
Bonjour,
Le bout de code suivant a fonctionné sous NT en XL 97 mais
ne fonctionne plus en XL 2003 sous XP :
Sub Paint()
Selection.Copy
Ret = Shell("C:WINDOWSsystem32mspaint.exe", 1)
AppActivate Ret, True
Application.SendKeys "^v", True
End Sub
Cela ouvre bien Paint mais plantage pour activer Paint et
donc le coller ne s'effectue pas.
Il s'arrête sur la ligne (erreur 5) : AppActivate Ret,
True
et si je clique sur débogage et je poursuis l'exécution
cela fonctionne.
Camille
.
-----Message d'origine-----
Bonjour,
¨Pour exporter une plage (A1:B10 par ex) directement en
fichier image:
Sub exportgif()
Dim Plage As Range
Set Plage = Application.InputBox(Prompt:="Sélectionner
votre zone: (Ex. A1:B10) ", _
Title:="Sélection de zone ", Default:="$A$1", Type:=8)
Application.ScreenUpdating = False
Workbooks.Add
Plage.CopyPicture
ActiveSheet.Paste
With ActiveSheet.ChartObjects.Add(0, 0, _
Selection.Width, Selection.Height).Chart
..Paste
..Export "C:ajeterTest.gif", "GIF"
End With
ActiveWorkbook.Close False
End Sub
--
Daniel
FAQ du Forum Microsoft Public Fr Excel
http://dj.joss.free.fr/faq.htm
"Ellimac" a écrit
dans le message de news:
18bd01c4fc7b$4b616eb0$
Bonjour Michel,
Merci cela fonctionne mais quel temps pour que Paint soit
activé !!!
As-tu une idée de la différence de traitement entre Win NT
et XP ?
Y aurait-il une autre méthode pour copier mon bout de
tableau sous Paint ? L'objectif est de créer un fichier
image.
Camille-----Message d'origine-----
Bonjour Ellimac;
Par défaut, la fonction Shell exécute les autres
programmes de manièreasynchrone. Cela signifie qu'un programme lancé avec
Shell peut ne pass'exécuter entièrement avant que les instructions suivant
la fonction Shellne soient exécutées. Il faut don introduire une boucle
jusqu'a ce quel'application Paint soit disponible:
Sub Paint()
Selection.Copy
Ret = Shell("C:WINDOWSsystem32mspaint.exe", 1)
1: On Error Resume Next
AppActivate Ret, True
If Err Then On Error GoTo 0: GoTo 1
Application.SendKeys "^v", True
End Sub
MP
"Ellimac" a écrit
dans le message denews:151501c4fc72$0cb7cd20$
Bonjour,
Le bout de code suivant a fonctionné sous NT en XL 97
mais
ne fonctionne plus en XL 2003 sous XP :
Sub Paint()
Selection.Copy
Ret = Shell("C:WINDOWSsystem32mspaint.exe", 1)
AppActivate Ret, True
Application.SendKeys "^v", True
End Sub
Cela ouvre bien Paint mais plantage pour activer Paint et
donc le coller ne s'effectue pas.
Il s'arrête sur la ligne (erreur 5) : AppActivate Ret,
Trueet si je clique sur débogage et je poursuis l'exécution
cela fonctionne.
Camille
.
.
-----Message d'origine-----
Bonjour,
¨Pour exporter une plage (A1:B10 par ex) directement en
fichier image:
Sub exportgif()
Dim Plage As Range
Set Plage = Application.InputBox(Prompt:="Sélectionner
votre zone: (Ex. A1:B10) ", _
Title:="Sélection de zone ", Default:="$A$1", Type:=8)
Application.ScreenUpdating = False
Workbooks.Add
Plage.CopyPicture
ActiveSheet.Paste
With ActiveSheet.ChartObjects.Add(0, 0, _
Selection.Width, Selection.Height).Chart
..Paste
..Export "C:ajeterTest.gif", "GIF"
End With
ActiveWorkbook.Close False
End Sub
--
Daniel
FAQ du Forum Microsoft Public Fr Excel
http://dj.joss.free.fr/faq.htm
"Ellimac" <anonymous@discussions.microsoft.com> a écrit
dans le message de news:
18bd01c4fc7b$4b616eb0$a401280a@phx.gbl...
Bonjour Michel,
Merci cela fonctionne mais quel temps pour que Paint soit
activé !!!
As-tu une idée de la différence de traitement entre Win NT
et XP ?
Y aurait-il une autre méthode pour copier mon bout de
tableau sous Paint ? L'objectif est de créer un fichier
image.
Camille
-----Message d'origine-----
Bonjour Ellimac;
Par défaut, la fonction Shell exécute les autres
programmes de manière
asynchrone. Cela signifie qu'un programme lancé avec
Shell peut ne pas
s'exécuter entièrement avant que les instructions suivant
la fonction Shell
ne soient exécutées. Il faut don introduire une boucle
jusqu'a ce que
l'application Paint soit disponible:
Sub Paint()
Selection.Copy
Ret = Shell("C:WINDOWSsystem32mspaint.exe", 1)
1: On Error Resume Next
AppActivate Ret, True
If Err Then On Error GoTo 0: GoTo 1
Application.SendKeys "^v", True
End Sub
MP
"Ellimac" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news:151501c4fc72$0cb7cd20$a301280a@phx.gbl...
Bonjour,
Le bout de code suivant a fonctionné sous NT en XL 97
mais
ne fonctionne plus en XL 2003 sous XP :
Sub Paint()
Selection.Copy
Ret = Shell("C:WINDOWSsystem32mspaint.exe", 1)
AppActivate Ret, True
Application.SendKeys "^v", True
End Sub
Cela ouvre bien Paint mais plantage pour activer Paint et
donc le coller ne s'effectue pas.
Il s'arrête sur la ligne (erreur 5) : AppActivate Ret,
True
et si je clique sur débogage et je poursuis l'exécution
cela fonctionne.
Camille
.
.
-----Message d'origine-----
Bonjour,
¨Pour exporter une plage (A1:B10 par ex) directement en
fichier image:
Sub exportgif()
Dim Plage As Range
Set Plage = Application.InputBox(Prompt:="Sélectionner
votre zone: (Ex. A1:B10) ", _
Title:="Sélection de zone ", Default:="$A$1", Type:=8)
Application.ScreenUpdating = False
Workbooks.Add
Plage.CopyPicture
ActiveSheet.Paste
With ActiveSheet.ChartObjects.Add(0, 0, _
Selection.Width, Selection.Height).Chart
..Paste
..Export "C:ajeterTest.gif", "GIF"
End With
ActiveWorkbook.Close False
End Sub
--
Daniel
FAQ du Forum Microsoft Public Fr Excel
http://dj.joss.free.fr/faq.htm
"Ellimac" a écrit
dans le message de news:
18bd01c4fc7b$4b616eb0$
Bonjour Michel,
Merci cela fonctionne mais quel temps pour que Paint soit
activé !!!
As-tu une idée de la différence de traitement entre Win NT
et XP ?
Y aurait-il une autre méthode pour copier mon bout de
tableau sous Paint ? L'objectif est de créer un fichier
image.
Camille-----Message d'origine-----
Bonjour Ellimac;
Par défaut, la fonction Shell exécute les autres
programmes de manièreasynchrone. Cela signifie qu'un programme lancé avec
Shell peut ne pass'exécuter entièrement avant que les instructions suivant
la fonction Shellne soient exécutées. Il faut don introduire une boucle
jusqu'a ce quel'application Paint soit disponible:
Sub Paint()
Selection.Copy
Ret = Shell("C:WINDOWSsystem32mspaint.exe", 1)
1: On Error Resume Next
AppActivate Ret, True
If Err Then On Error GoTo 0: GoTo 1
Application.SendKeys "^v", True
End Sub
MP
"Ellimac" a écrit
dans le message denews:151501c4fc72$0cb7cd20$
Bonjour,
Le bout de code suivant a fonctionné sous NT en XL 97
mais
ne fonctionne plus en XL 2003 sous XP :
Sub Paint()
Selection.Copy
Ret = Shell("C:WINDOWSsystem32mspaint.exe", 1)
AppActivate Ret, True
Application.SendKeys "^v", True
End Sub
Cela ouvre bien Paint mais plantage pour activer Paint et
donc le coller ne s'effectue pas.
Il s'arrête sur la ligne (erreur 5) : AppActivate Ret,
Trueet si je clique sur débogage et je poursuis l'exécution
cela fonctionne.
Camille
.
.
-----Message d'origine-----
Re Ellimac;
Une macro passe-partout; tu peux copier une plage de
cellules, un graphique,
une image, enfin bref, ce que tu veux, l'image sera
sauvée au format bmp à
l'endroit qu' il te suffit de préciser:
Option Explicit
Private Declare Function CloseClipboard Lib "user32" ()
As Long
Private Declare Function OpenClipboard Lib "user32" _
(ByVal hwnd As Long) As Long
Private Declare Function EmptyClipboard Lib "user32" ()
As Long
Private Declare Function IsClipboardFormatAvailable
Lib "user32" _
(ByVal wFormat As Long) As Long
Private Declare Function CopyImage& Lib "user32" (ByVal
handle& _
, ByVal un1&, ByVal n1&, ByVal n2&, ByVal un2&)
Private Declare Function GetClipboardData Lib "user32" _
(ByVal wFormat As Long) As Long
Private Declare Function IIDFromString Lib "ole32" _
(ByVal lpsz As String, ByRef lpiid As GUID) As Long
Private Declare Function OleCreatePictureIndirect
Lib "olepro32" _
(pPictDesc As PICTDESC, ByRef riid As GUID, ByVal fOwn
As Long _
, ByRef ppvObj As IPicture) As Long
Private Type GUID
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(8) As Byte
End Type
Private Type PICTDESC
cbSize As Long
picType As Long
hImage As Long
End Type
Sub MakeImgFile()
If TypeName(Selection) = "Range" Then
If Selection.Areas.Count > 1 Then
MsgBox " Multiple selections !", 48
Exit Sub
End If
End If
Selection.CopyPicture 1, 2
Dim hCopy&: OpenClipboard 0&
If IsClipboardFormatAvailable(2) = 0 Then GoTo 1
hCopy = CopyImage(GetClipboardData(2), 0, 0, 0, &H4)
If hCopy = 0 Then GoTo 1
Const IPictureIID = "{7BF80981-BF32-101A-8BBB-
00AA00300CAB}"
Dim iPic As IPicture, ID As GUID, PCT As PICTDESC, Ret As
Long
Ret = IIDFromString(StrConv(IPictureIID, vbUnicode), ID)
If Ret Then GoTo 1
With PCT
..cbSize = Len(PCT)
..picType = 1
..hImage = hCopy
End With
Ret = OleCreatePictureIndirect(PCT, ID, 1, iPic)
If Ret Then GoTo 1
' Sauve l'image sur le disque (format bmp)
SavePicture iPic, "c:Recup.bmp"
Set iPic = Nothing
1: EmptyClipboard
CloseClipboard
End Sub
MP
"Ellimac" a écrit
dans le message de
news:151501c4fc72$0cb7cd20$
Bonjour,
Le bout de code suivant a fonctionné sous NT en XL 97 mais
ne fonctionne plus en XL 2003 sous XP :
Sub Paint()
Selection.Copy
Ret = Shell("C:WINDOWSsystem32mspaint.exe", 1)
AppActivate Ret, True
Application.SendKeys "^v", True
End Sub
Cela ouvre bien Paint mais plantage pour activer Paint et
donc le coller ne s'effectue pas.
Il s'arrête sur la ligne (erreur 5) : AppActivate Ret,
True
et si je clique sur débogage et je poursuis l'exécution
cela fonctionne.
Camille
.
-----Message d'origine-----
Re Ellimac;
Une macro passe-partout; tu peux copier une plage de
cellules, un graphique,
une image, enfin bref, ce que tu veux, l'image sera
sauvée au format bmp à
l'endroit qu' il te suffit de préciser:
Option Explicit
Private Declare Function CloseClipboard Lib "user32" ()
As Long
Private Declare Function OpenClipboard Lib "user32" _
(ByVal hwnd As Long) As Long
Private Declare Function EmptyClipboard Lib "user32" ()
As Long
Private Declare Function IsClipboardFormatAvailable
Lib "user32" _
(ByVal wFormat As Long) As Long
Private Declare Function CopyImage& Lib "user32" (ByVal
handle& _
, ByVal un1&, ByVal n1&, ByVal n2&, ByVal un2&)
Private Declare Function GetClipboardData Lib "user32" _
(ByVal wFormat As Long) As Long
Private Declare Function IIDFromString Lib "ole32" _
(ByVal lpsz As String, ByRef lpiid As GUID) As Long
Private Declare Function OleCreatePictureIndirect
Lib "olepro32" _
(pPictDesc As PICTDESC, ByRef riid As GUID, ByVal fOwn
As Long _
, ByRef ppvObj As IPicture) As Long
Private Type GUID
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(8) As Byte
End Type
Private Type PICTDESC
cbSize As Long
picType As Long
hImage As Long
End Type
Sub MakeImgFile()
If TypeName(Selection) = "Range" Then
If Selection.Areas.Count > 1 Then
MsgBox " Multiple selections !", 48
Exit Sub
End If
End If
Selection.CopyPicture 1, 2
Dim hCopy&: OpenClipboard 0&
If IsClipboardFormatAvailable(2) = 0 Then GoTo 1
hCopy = CopyImage(GetClipboardData(2), 0, 0, 0, &H4)
If hCopy = 0 Then GoTo 1
Const IPictureIID = "{7BF80981-BF32-101A-8BBB-
00AA00300CAB}"
Dim iPic As IPicture, ID As GUID, PCT As PICTDESC, Ret As
Long
Ret = IIDFromString(StrConv(IPictureIID, vbUnicode), ID)
If Ret Then GoTo 1
With PCT
..cbSize = Len(PCT)
..picType = 1
..hImage = hCopy
End With
Ret = OleCreatePictureIndirect(PCT, ID, 1, iPic)
If Ret Then GoTo 1
' Sauve l'image sur le disque (format bmp)
SavePicture iPic, "c:Recup.bmp"
Set iPic = Nothing
1: EmptyClipboard
CloseClipboard
End Sub
MP
"Ellimac" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news:151501c4fc72$0cb7cd20$a301280a@phx.gbl...
Bonjour,
Le bout de code suivant a fonctionné sous NT en XL 97 mais
ne fonctionne plus en XL 2003 sous XP :
Sub Paint()
Selection.Copy
Ret = Shell("C:WINDOWSsystem32mspaint.exe", 1)
AppActivate Ret, True
Application.SendKeys "^v", True
End Sub
Cela ouvre bien Paint mais plantage pour activer Paint et
donc le coller ne s'effectue pas.
Il s'arrête sur la ligne (erreur 5) : AppActivate Ret,
True
et si je clique sur débogage et je poursuis l'exécution
cela fonctionne.
Camille
.
-----Message d'origine-----
Re Ellimac;
Une macro passe-partout; tu peux copier une plage de
cellules, un graphique,
une image, enfin bref, ce que tu veux, l'image sera
sauvée au format bmp à
l'endroit qu' il te suffit de préciser:
Option Explicit
Private Declare Function CloseClipboard Lib "user32" ()
As Long
Private Declare Function OpenClipboard Lib "user32" _
(ByVal hwnd As Long) As Long
Private Declare Function EmptyClipboard Lib "user32" ()
As Long
Private Declare Function IsClipboardFormatAvailable
Lib "user32" _
(ByVal wFormat As Long) As Long
Private Declare Function CopyImage& Lib "user32" (ByVal
handle& _
, ByVal un1&, ByVal n1&, ByVal n2&, ByVal un2&)
Private Declare Function GetClipboardData Lib "user32" _
(ByVal wFormat As Long) As Long
Private Declare Function IIDFromString Lib "ole32" _
(ByVal lpsz As String, ByRef lpiid As GUID) As Long
Private Declare Function OleCreatePictureIndirect
Lib "olepro32" _
(pPictDesc As PICTDESC, ByRef riid As GUID, ByVal fOwn
As Long _
, ByRef ppvObj As IPicture) As Long
Private Type GUID
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(8) As Byte
End Type
Private Type PICTDESC
cbSize As Long
picType As Long
hImage As Long
End Type
Sub MakeImgFile()
If TypeName(Selection) = "Range" Then
If Selection.Areas.Count > 1 Then
MsgBox " Multiple selections !", 48
Exit Sub
End If
End If
Selection.CopyPicture 1, 2
Dim hCopy&: OpenClipboard 0&
If IsClipboardFormatAvailable(2) = 0 Then GoTo 1
hCopy = CopyImage(GetClipboardData(2), 0, 0, 0, &H4)
If hCopy = 0 Then GoTo 1
Const IPictureIID = "{7BF80981-BF32-101A-8BBB-
00AA00300CAB}"
Dim iPic As IPicture, ID As GUID, PCT As PICTDESC, Ret As
Long
Ret = IIDFromString(StrConv(IPictureIID, vbUnicode), ID)
If Ret Then GoTo 1
With PCT
..cbSize = Len(PCT)
..picType = 1
..hImage = hCopy
End With
Ret = OleCreatePictureIndirect(PCT, ID, 1, iPic)
If Ret Then GoTo 1
' Sauve l'image sur le disque (format bmp)
SavePicture iPic, "c:Recup.bmp"
Set iPic = Nothing
1: EmptyClipboard
CloseClipboard
End Sub
MP
"Ellimac" a écrit
dans le message de
news:151501c4fc72$0cb7cd20$
Bonjour,
Le bout de code suivant a fonctionné sous NT en XL 97 mais
ne fonctionne plus en XL 2003 sous XP :
Sub Paint()
Selection.Copy
Ret = Shell("C:WINDOWSsystem32mspaint.exe", 1)
AppActivate Ret, True
Application.SendKeys "^v", True
End Sub
Cela ouvre bien Paint mais plantage pour activer Paint et
donc le coller ne s'effectue pas.
Il s'arrête sur la ligne (erreur 5) : AppActivate Ret,
True
et si je clique sur débogage et je poursuis l'exécution
cela fonctionne.
Camille
.