Quello che ti suggerisco di fare e usare una macro per inserire l’immagine e nominarla in modo congruo con la cella in cui l’immagine viene posizionata.
Poi una seconda macro puo’ facilmente sistemare l’immagine qualora sia necessario.
Il codice complessivo, da inserire in un modulo standard del tuo progetto vba:
- Codice: Seleziona tutto
Sub InserisciImg()
Dim cPic As Shape, FullNome As String
Dim cAdr As String
'
'Chiedi il file da gestire:
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.Filters.Clear
.Filters.Add "Pictures", "*.jpg; *.png", 1 'Filtro per estensione
.Show
If .SelectedItems.Count = 0 Then
MsgBox ("Nessuna voce selezionata, procedura annullata")
Exit Sub
End If
FullNome = .SelectedItems(1) 'Directory e Nome del file selezionato
End With
'
'Inserisci Immagine:
cAdr = ActiveCell.Address(0, 0)
Set cPic = ActiveSheet.Shapes.AddPicture(FullNome, False, True, ActiveCell.Left, ActiveCell.Top, True, True)
cPic.Name = "Immagine_" & cAdr
'
'Posizionala:
With cPic
.Left = Range(cAdr).MergeArea.Left + Range(cAdr).MergeArea.Width / 2 - .Width / 2
.Top = Range(cAdr).MergeArea.Top + Range(cAdr).MergeArea.Height / 2 - .Height / 2
.OnAction = "Centra"
End With
End Sub
- Codice: Seleziona tutto
Sub Centra()
Dim ShN As String, cAdr As String, zzz As Object
'
ShN = Parent.Caller
cAdr = Split(ShN, "_", , vbTextCompare)(1)
'
With ActiveSheet.Shapes(ShN)
.Left = Range(cAdr).MergeArea.Left + Range(cAdr).MergeArea.Width / 2 - .Width / 2
.Top = Range(cAdr).MergeArea.Top + Range(cAdr).MergeArea.Height / 2 - .Height / 2
End With
End Sub
La
Sub InserisciImg aiuta l’utente a scegliere l’immagine e la inserisce centrandola con la “cella attiva”. Il codice non tocca la dimensione dell’immagine, che rimane della dimensione originale; ma puo’ essere completato con la gestione della dimensione. Inoltre assegna all’immagine il nome “Immagine_XY”, dove XY e’ la coordinata della cella ospitante, e associa all’immagine la macro
Sub Centra (la seconda nel suddetto codice)
Qualora l’immagine non risulti piu’ centrata con la sua “cella madre”, cliccando sull’immagine essa verrà ricentrata.
E’ chiaro che se l’utente non e’ istruito a usare questa procedura e inserisce le immagini “a modo suo” allora si torna nella situazione attuale poco gestibile.
Vedi intanto se riesci ad adattare al tuo caso e ai tuoi disciplinati utenti...