Condividi:        

Immagini dinamiche??

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

Immagini dinamiche??

Postdi leo21583 » 06/01/12 20:03

Salve a tutti,
mi chiedo e vi chiedo se sia possibile con VBA realizzare delle immagini che cambiano dimensioni intervenendo sulle celle. Ad esempio, sarebbe possibile (tanto per cominciare) ottenere un semplice rettangolo in cui le dimensioni dei lati vengono inseriti in delle celle? Se la cosa fosse fattibile e qualcuno ha affrontato gia il problema potrebbe postarmi un esempio semplice?
leo21583
Utente Junior
 
Post: 32
Iscritto il: 10/12/11 08:35

Sponsor
 

Re: Immagini dinamiche??

Postdi PcBase » 06/01/12 20:18

Ciao

Quale immagine hai da ridimensionare, quale lo scopo finale?
Windows xp + Office 2003 Ita
Windows8 Office 2013
PcBase
Utente Senior
 
Post: 143
Iscritto il: 24/02/11 23:26

Re: Immagini dinamiche??

Postdi leo21583 » 06/01/12 21:15

Quello che dovrei riuscire a fare io è un po più complicato. Dovrei visualizzare nel mio foglio excel un rettangolo con 4 o più fori (cerchietti) e dovrei poter variare le dimensioni del rettangolo e la posizione e la dimensione dei fori agendo su delle celle( base, altezza, distanze, raggio etc..).. Non ho idea se e come si possa fare ma forse con un semplice esempio potrei capire il meccanismo..
leo21583
Utente Junior
 
Post: 32
Iscritto il: 10/12/11 08:35

Re: Immagini dinamiche??

Postdi Anthony47 » 06/01/12 21:44

A mo' di esempio:
Codice: Seleziona tutto
Sub Demoform()
'
R1xx = Range("A1")  'left
R1yy = Range("A2")  'top
WR1 = Range("B1")   'Larg
HR1 = Range("B2")   'Alt
'
C1xx = Range("A4")
C1yy = Range("A5")
C1Rad = Range("B4")

    ActiveSheet.Shapes.AddShape(msoShapeRectangle, R1xx, R1yy, WR1, HR1). _
        Select
    ActiveSheet.Shapes.AddShape(msoShapeOval, C1xx, C1yy, C1Rad, C1Rad).Select
End Sub
Questa crea un rettangolo le cui coordinate sono impostate in A1 e A2 e i cu lati sono impostati in B1 e B2, e un cerchio con coordinate in A4 e A5 e raggio in B4.

Questo codice invece seleziona una forma e poi la ridimensiona in alto /largo dello stesso fattore:
Codice: Seleziona tutto
    ActiveSheet.Shapes("Oval 19").Select
    Selection.ShapeRange.ScaleWidth 0.71, msoFalse, msoScaleFromTopLeft
    Selection.ShapeRange.ScaleHeight 0.71, msoFalse, msoScaleFromTopLeft

Sono tutti esempi basati sulla registrazione di una nuova macro.

Per altri spunti siamo qua, in tanti.

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

Re: Immagini dinamiche??

Postdi leo21583 » 06/01/12 22:38

Niente male come punto di partenza :) ..
il passo successivo sarebbe quello di riuscire a cancellare l'immagine precedente ogni volta che cambio i valori. Per quanto riguarda l'aggiornamento ho gia imparato ad usare l' istruzione Private Sub Worksheet_Change ma come faccio ad assegnare un nome all'immagine che creo per poterla anche cancellare ogni volta che parte la macro?
L'altra cosa che mi sarebbe utile sarebbe quella di poter scegliere il colore..
leo21583
Utente Junior
 
Post: 32
Iscritto il: 10/12/11 08:35

Re: Immagini dinamiche??

Postdi PcBase » 06/01/12 22:55

Ciao

Intanto prova con questi comandi:

Codice: Seleziona tutto
Sub Disegna()
    ActiveSheet.Shapes.AddShape(msoShapeRectangle, 167.25, 69.75, 149.25, 87.75).Select
    Selection.ShapeRange.Fill.ForeColor.SchemeColor = 10
   
    'Qui disabiliti la selezione dell'ultimo oggetto creato
    'ActiveSheet.Shapes(ActiveSheet.Shapes.Count).BottomRightCell.Select
    ActiveSheet.Shapes(ActiveSheet.Shapes.Count).TopLeftCell.Select
   
    'Code...
   
    'Qui dopo aver deselezionato l'mmagine la puoi richiamare con:
    ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Delete
End Sub
Windows xp + Office 2003 Ita
Windows8 Office 2013
PcBase
Utente Senior
 
Post: 143
Iscritto il: 24/02/11 23:26

Re: Immagini dinamiche??

Postdi Anthony47 » 07/01/12 00:17

In aggiunta al suggerimento di PcBase (vedi sopra): dai sempre un nome tuo alla forma che crei, cosi' sai che cosa devi cancellare.
Cioe', tornando al primo codice che ti ho proposto
Codice: Seleziona tutto
Sub Demoform2()
'
R1xx = Range("A1")  'left
R1yy = Range("A2")  'top
WR1 = Range("B1")   'Larg
HR1 = Range("B2")   'Alt
'
C1xx = Range("A4")
C1yy = Range("A5")
C1Rad = Range("B4")
'
On Error Resume Next
ActiveSheet.Shapes("zczcForma1").Delete
ActiveSheet.Shapes("zczcForma2").Delete
On Error GoTo 0
'
    ActiveSheet.Shapes.AddShape(msoShapeRectangle, R1xx, R1yy, WR1, HR1). _
        Select
    Selection.Name = "zczcForma1"
'
    ActiveSheet.Shapes.AddShape(msoShapeOval, C1xx, C1yy, C1Rad, C1Rad).Select
    Selection.Name = "zczcForma2"
End Sub

Sono esempi; ricorrendo al registratore di macro puoi ottenere una miriade di spunti utili.

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

Re: Immagini dinamiche??

Postdi leo21583 » 07/01/12 23:51

Grazie ancora! Sono riuscito a far funzionare tutto ;) ..
A presto!
leo21583
Utente Junior
 
Post: 32
Iscritto il: 10/12/11 08:35


Torna a Applicazioni Office Windows


Topic correlati a "Immagini dinamiche??":


Chi c’è in linea

Visitano il forum: danibi60 e 16 ospiti