Condividi:        

Macro inserisci GIF in posizione cursore.

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Macro inserisci GIF in posizione cursore.

Postdi deniel69 » 09/12/14 18:29

Buon giorno a tutti.

VBA Excel 2007 domanda.

E' possibile tramite una macro lanciabile con CTRL + "lettera" ,inserire una gif nella posizione del cursore?

Non nella cella attiva ma nella posizione del cursore.
E se non è possibile nella posizione del cursore ,almeno nella cella attiva!


Domanda strana ,lo sò.

Grazie a tutti ............. :undecided:
Avatar utente
deniel69
Utente Senior
 
Post: 131
Iscritto il: 17/04/12 22:43

Sponsor
 

Re: Macro inserisci GIF in posizione cursore.

Postdi Anthony47 » 10/12/14 00:42

Non e' difficile ottenere la posizione x-y del mouse sullo schermo (usando la Function GetCursorPos di Windows), ma e' molto piu' incasinato avere la posizione della finestra dati di excel; fortunatamente mi pare che ti basta inserire l' immagine nella cella attiva...
Puoi ottenere il codice della macro che ti serve tramite il registratore di macro; puoi impostare un tasto di scelta rapida quando avvii la registrazione, nella stessa finestrella in cui dai il nome alla macro.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19220
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro inserisci GIF in posizione cursore.

Postdi deniel69 » 10/12/14 13:41

Sono riuscito a trovare quanto segue ,ma va in debug e mi dice
errore nel metodo insert per la classe pictures ,ovvero errore di run-time 1004


Option Explicit

'--------->>
Public Sub Tester()
Const sMacroName As String = "InsertPicture"

Application.MacroOptions Macro:=sMacroName, _
HasShortcutKey:=True, _
ShortcutKey:="Z"
End Sub

'--------->>
Public Sub InsertPicture()
Const sFile As String = "C:\My Pictures\Pippo.gif" '<<==== Modifica

ActiveSheet.Pictures.Insert (sFile)
End Sub
'<<=========

'=========>>
Option Explicit

'--------->>
Private Sub Workbook_Open()
Call Tester
End Sub
Avatar utente
deniel69
Utente Senior
 
Post: 131
Iscritto il: 17/04/12 22:43

Re: Macro inserisci GIF in posizione cursore.

Postdi Anthony47 » 10/12/14 15:08

Perdona, invece di cercare di usare codice altrui perche' non ti registri in proprio la macro? Sai usare il registratore di macro?

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19220
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro inserisci GIF in posizione cursore.

Postdi deniel69 » 10/12/14 18:38

Perdonami... Usare codice altrui serve anche ad imparare ,mentre usare il registratore di macro spesso non aiuta piu di tanto.

la macro funziona ,con una piccola modifica ActiveSheet.Pictures.Insert ("C:\My Pictures\Pippo.gif")
ora mi serve solo capire come usare la Function GetCursorPos per individuare la posizione del cursore
ed inserire in quel punto la gif.

buona serata a tutti......
Avatar utente
deniel69
Utente Senior
 
Post: 131
Iscritto il: 17/04/12 22:43

Re: Macro inserisci GIF in posizione cursore.

Postdi deniel69 » 10/12/14 18:58

Scusate se rompo..... invece di usare la posizione del cursore ,è possibile utilizzare delle caselle di controllo activex e
lanciando la macro dopo averne selezionata una in modo da inserire la GIF sopra la casella di controllo selezionata in quel momento?

Spero di essere stato chiaro.
Avatar utente
deniel69
Utente Senior
 
Post: 131
Iscritto il: 17/04/12 22:43

Re: Macro inserisci GIF in posizione cursore.

Postdi Anthony47 » 11/12/14 23:32

Per usare la GetCursorPos metti questo codice in testa al Modulo:
Codice: Seleziona tutto
Private Type POINTAPI
x As Long
y As Long
End Type

Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long


Poi nella macro in cui vuoi usarla inserisci
Codice: Seleziona tutto
Dim posit As POINTAPI
GetCursorPos posit ' Read Coordinates

La posizione orizzontale la troverai all' interno di posit.x e quella verticale in posit.y

TUTTAVIA queste coordinate sono riferite allo schermo intero, non alla finestra dati di Excel; nella mia installazione lo 0/ 0 dell' area dati corrisponde a 27/ 207 punti, se l' applicazione e' massimizzata.
Per posizionare l' immagine correttamente devi trovare le coordinate del punto top-left dell' area dati, ed e' questo dato che ti dicevo e' abbastanza incasinato da trovare.
Comunque non e' impossibile; fai una ricerca su google con la stringa "get absolute coordinates top left cell excel" (senza gli apici; in italiano la ricerca e' meno efficace) e usa il codice che trovi.

Puoi trovare le coordinate di un Controllo (es CommandButton1) tramite
Codice: Seleziona tutto
Ypos = ActiveSheet.Shapes.Range("CommandButton1").Top
Xpos = ActiveSheet.Shapes.Range("CommandButton1").Left

Sono relative all' area dati di Excel, quindi direttamente utilizzabili per posizionare una immagine usando, ad esempio
Codice: Seleziona tutto
Selection.ShapeRange.Left = Xpos
Selection.ShapeRange.Top = Ypos

(lavorano sull' immagine selezionata)

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19220
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro inserisci GIF in posizione cursore.

Postdi deniel69 » 13/12/14 08:49

Grazie a tutti come sempre..........

Soluzione molto più semplice di quanto pensassi.
Basta inserire nel foglio una casella di controllo o una etichetta (funziona anche con le celle) ,selezionarla e
poi lanciare la macro..............

Public Sub m()
Dim x As Single
Dim y As Single


MsgBox "Da sinistra: " & Selection.Left _
& vbNewLine & _
"Da sopra: " & Selection.Top

x = Selection.Left
y = Selection.Top

'Const sFile As String = "C:\Users\daniele\Pictures\Avatar\Cervello.gif" <=== oppure una gif
Const sFile As String = "C:\Users\daniele\Pictures\Avatar\Cervello.jpg"
ActiveSheet.Pictures.Insert(sFile).Select


Selection.Left = x
Selection.Top = y

End Sub

Ancora grazie a tutti e alla prossima.....
Avatar utente
deniel69
Utente Senior
 
Post: 131
Iscritto il: 17/04/12 22:43


Torna a Applicazioni Office Windows


Topic correlati a "Macro inserisci GIF in posizione cursore.":


Chi c’è in linea

Visitano il forum: Nessuno e 37 ospiti