cs_robert96
Messages postés6Date d'inscriptionmardi 1 juin 2010StatutMembreDernière intervention 2 juin 2010
-
1 juin 2010 à 10:29
Calade
Messages postés1207Date d'inscriptiondimanche 20 avril 2003StatutMembreDernière intervention 4 juin 2016
-
3 juin 2010 à 08:20
Bonjour tout le monde,
j'ai un problème avec une macro Excel pour redimensionner une image.
Le but de cette feuille excel est de réaliser des "diplômes" pour une 50aine de site internet.
L'action est la suivante:
1) je click sur un lien Hypertexte qui m'envois sur une page internet.
2) je fais un screenshot et l'insert dans ma feuille excel
3) j'aimerais la redimensionner et repositionner avec une macro
4)imprimer
Problème:
Le nom de l'image est inconnus puisqu'elle change tout le temps.
Est il possible de créer une macro pour redimensionner l'image préalablement insérée?
Est-ce-que quelqu'un aurait une idée là-dessus?
Ah bien sûr, si quelqu'un aurait une macro qui me réalise les actions précédantes: c'est à dire qui envois sur internet via un lien Hypertexte en D8, qui réalise un screenshot, et qui insère le scrennshot en le redimmensionnant... je suis également preneur!
En espérant avoir été assez clair,
je vous remercie.
cs_robert96
Messages postés6Date d'inscriptionmardi 1 juin 2010StatutMembreDernière intervention 2 juin 2010 1 juin 2010 à 11:22
Merci mais ça ne marche pas vraiment...
Au cas où, j'ai trouvé cette macro qui réalise un screenshot mais seulement de la page actuelle..
Serais-tu comment modifier cette macro en lui disant de faire le screenshot d'une page internet (hyperlink en e9)?
Option Explicit
Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" _
(ByVal wCode As Long, ByVal wMapType As Long) As Long
Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, _
ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" _
(LpVersionInformation As OSVERSIONINFO) As Long
Public Const VK_MENU = &H12
Public Const KEYEVENTF_KEYUP = &H2
Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type
Public Sub GetWindowSnapShot(Mode As Long)
Dim altscan%, NT As Boolean
NT = IsNT
If Not NT Then
If Mode 0& Then Mode 1& Else Mode = 0&
End If
If NT And Mode = 0 Then
keybd_event vbKeySnapshot, 0&, 0&, 0&
Else
altscan = MapVirtualKey(VK_MENU, 0)
keybd_event VK_MENU, altscan, 0, 0
DoEvents
keybd_event vbKeySnapshot, Mode, 0&, 0&
End If
Public Function IsNT() As Boolean
Dim verinfo As OSVERSIONINFO
verinfo.dwOSVersionInfoSize = Len(verinfo)
If (GetVersionEx(verinfo)) = 0 Then Exit Function
If verinfo.dwPlatformId 2 Then IsNT True
End Function
Sub Screenshot()
'gesamten Bildschirm:
'GetWindowSnapShot 0
'oder nur das aktives Fenster:
GetWindowSnapShot 1
Sheets("Zeugnis").Paste
ThisWorkbook.Save
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_robert96
Messages postés6Date d'inscriptionmardi 1 juin 2010StatutMembreDernière intervention 2 juin 2010 1 juin 2010 à 13:00
Le problème est que mes screenshot sont en .png
Serais-tu comment modifier la macro ci-dessus pour faire un screenshot sur internet et sur la feuille active?
Calade
Messages postés1207Date d'inscriptiondimanche 20 avril 2003StatutMembreDernière intervention 4 juin 201610 2 juin 2010 à 14:04
Bonjour,
En partant du principe que ton code marche (ie fais bien une copie d'écran), tu dois avant dans ton code VB donner le focus au navigateur (ou le lancer si ce n'est pait)
Par contre je suis désolé, mais je ne sais pas trop quelle API utilisé pour récupérer le handle d'une fenêtre ouverte et lui donner le focus.
Fais des recherches sur CS ou Google, tu devrais en trouver.
Dans ce cas, si mes souvenirs sont bons, ta copie d'écran est au formet Bitmap (.BMP).
Calade
cs_robert96
Messages postés6Date d'inscriptionmardi 1 juin 2010StatutMembreDernière intervention 2 juin 2010 2 juin 2010 à 17:24
Bonjour,
merci de ta réponse!
Mais j'ai finalement réussi à écrire une macro me permettant pour chaque nouveau diplôme:
- d'actionner un lien Hypertexte présent dans une cellule
- de faire un screenshot de la page internet en l'insérant directement dans la feuille active
- et également de rogner, redimensionner et repositionner cette image à une place précise
(Le fait que le lien, et donc le screenshot change tout le temps (puisque plus de 50 diplômes) n'a pas été évident...)
Merci beaucoup quand même pour ton aide et le temps que tu y as consacré!