Inserimento immagini dinamiche in Excel 2007

Anonimo
2013-05-14T13:43:39+00:00

Ciao, vorrei sapere come fare per inserire un campo immagine il cui contenuto sia variabile al variare del contenuto di una determinata cella dello stesso foglio di lavoro. Ho provato con controllo immagine ActiveX ma non riesco, come posso fare?

Grazie mille

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2013-05-14T14:05:56+00:00

Ciao, vorrei sapere come fare per inserire un campo immagine il cui contenuto sia variabile al variare del contenuto di una determinata cella dello stesso foglio di lavoro. Ho provato con controllo immagine ActiveX ma non riesco, come posso fare?

Grazie mille

Se le immagini non sono molte, puoi partire da qui:

http://www.maurogsc.eu/esempiforum10/cambiaimmagini.zip

Se le immagini sono molte, meglio non tenerle nel foglio. Puoi partire da qui:

http://www.maurogsc.eu/esempiforum13/cambiaimmagini2.zip

La risposta è stata utile?

10+ persone hanno trovato utile questa risposta.
0 commenti Nessun commento

64 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2014-01-16T13:28:43+00:00

    Mauro anche la tua risposta del 9 gennaio è stata molto utile. Ti chiedo un'altra cosa di ordine generale. Il modulo che hai usato è un active-x combo-box se non erro. Come hai fatto a mettere il controllo direttamente nella cella, tanto che non è selezionabile? Come faccio a modificare le proprietà?

    Volevo provare anche a mettere un altro modulo ma non riesco a capire come associare la cella, il modulo e la macro...

    Scusa lo so che sono cose di base...

    Saluti,

    Alessio.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2014-01-14T18:18:06+00:00

    Ho testato le righe che mi hai scritto e il programma funziona benissimo.

    Purtroppo nel frattempo è sorto un altro inconveniente,nel senso che avrei la necessita di specificare ,distinatmente,le dimensioni delle immagini visualizzate in C2 e C13.

    Se riesci a fare il miracolo..........

    Grazie

    Questo è il codice che sto usando:

    ...

    Ciao,

    dal cappello mi è uscito questo. ;)

    Modifica, però, le dimensioni delle immagini nelle righe evidenziate.

    Andrea.


    Private Sub Worksheet_Change(ByVal Target As Range)

    Dim picName As String, celImage As String

    Dim dWidth As Double, dHeight As Double

    picName = vbNullString

    On Error Resume Next

    If Target.Address = "$A$2" Then

    '---------- imposta qui le dimensioni dell'immagine in C2

    dWidth = 70     ' larghezza in mm

    dHeight = 50    ' altezza   in mm

    picName = Target.Value

    celImage = "C2"

    ActiveSheet.Shapes("Immagine" & celImage).Delete

    ElseIf Target.Address = "$A$13" Then

    '---------- imposta qui le dimensioni dell'immagine in C13

    dWidth = 70     ' larghezza in mm

    dHeight = 50    ' altezza   in mm

    picName = Target.Value

    celImage = "C13"

    ActiveSheet.Shapes("Immagine" & celImage).Delete

    End If

    On Error GoTo 0

    '---------- copia immagine dal foglio pict

    If Len(picName) Then

    Sheets("pict").Shapes(picName).Copy

    Me.Range(celImage).Select

    Me.Paste

    Selection.ShapeRange(1).Name = "Immagine" & celImage

    End If

    '---------- ridimensiona immagine

    With Me.Pictures("Immagine" & celImage)

    .ShapeRange.LockAspectRatio = msoFalse

    .Width = Application.CentimetersToPoints(dWidth / 10#)

    .Height = Application.CentimetersToPoints(dHeight / 10#)

    End With

    Target.Select

    End Sub


    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2014-01-14T17:56:47+00:00

    Ho testato le righe che mi hai scritto e il programma funziona benissimo.

    Purtroppo nel frattempo è sorto un altro inconveniente,nel senso che avrei la necessita di specificare ,distinatmente,le dimensioni delle immagini visualizzate in C2 e C13.

    Se riesci a fare il miracolo..........

    Grazie

    Questo è il codice che sto usando:

    Private Sub Worksheet_Change(ByVal Target As Range)

    Dim picName As String, celImage As String

    Dim dWidth As Double, dHeight As Double

    '---------- imposta qui le dimensioni dell'immagine

    dWidth = 70     ' larghezza in mm

    dHeight = 50    ' altezza   in mm

    picName = vbNullString

    On Error Resume Next

    If Target.Address = "$A$2" Then

    picName = Target.Value

    celImage = "C2"

    ActiveSheet.Shapes("Immagine" & celImage).Delete

    ElseIf Target.Address = "$A$13" Then

    picName = Target.Value

    celImage = "C13"

    ActiveSheet.Shapes("Immagine" & celImage).Delete

    End If

    On Error GoTo 0

    '---------- copia immagine dal foglio pict

    If Len(picName) Then

    Sheets("pict").Shapes(picName).Copy

    Me.Range(celImage).Select

    Me.Paste

    Selection.ShapeRange(1).Name = "Immagine" & celImage

    End If

    '---------- ridimensiona immagine

    With Me.Pictures("Immagine" & celImage)

    .ShapeRange.LockAspectRatio = msoFalse

    .Width = Application.CentimetersToPoints(dWidth / 10#)

    .Height = Application.CentimetersToPoints(dHeight / 10#)

    End With

    Target.Select

    End Sub

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2014-01-09T13:55:43+00:00

    Mauro mi puoi dare qualche info in più su come funziona il posizionamento dell'immagine? Come viene stabilito dove mettere l'immagine? 

    Grazie,

    Alessio

    Il controllo si modifica a seconda della dimensione dell'immagine con questa istruzione che trovi nel codice:

    Me.Image1.AutoSize = True

    Il controllo può essere posizionato via codice dove vuoi. Ad esempio queste righe (da inserire dopo la riga dell'Autosize, lo riposizionano al bordo sx e superiore della cella F10:

                    Me.Image1.Top = Me.Range("F10").Top

                    Me.Image1.Left = Me.Range("F10").Left

    Se invece vuoi modificare la sua posizione *a mano*:

    • Seleziona la scheda Sviluppo
    • Pulsante: Modalità progettazione (il pulsante si evidenzia)
    • Sposta il controllo Immage dove vuoi tu
    • Nuovo click sul pulsante Modalità progettazione (il pulsante torna normale)

    La risposta è stata utile?

    0 commenti Nessun commento