Condividi:        

Inserire immagini in excel

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

Inserire immagini in excel

Postdi nippon » 22/05/19 15:00

Buongiorno a tutti. :)

A dispetto del titolo, so con Excel 2019 come si inserisce un'immagine. :D
Quel che volevo sapere, è come si fa per posizionarla automaticamente al centro di una cella.

Per fare un esempio pratico, se io ho una cella 10x10, ed un'immagine 8x8 (i numeri non vogliono dire nulla come unità di misura, è solo per capirci... ;) ), inserendola bisogna poi posizionarla a mano dove si vuole; se io, però, volessi posizionarla facilmente al centro della casella (oppure sopra... sotto... lateralmente... in un angolo), facendo in modo che lei si piazzi automaticamente lì dove a me serve (nel caso in esempio, dovrebbe restare 1 di spazio per ognuno dei 4 lati...), ci sarebbe un modo?...

Grazie! :)
CIAO A TUTTI E GRAZIE A TUTTI QUELLI CHE MI PRENDERANNO IN CONSIDERAZIONE! :)
Avatar utente
nippon
Utente Senior
 
Post: 832
Iscritto il: 22/04/07 15:19

Sponsor
 

Re: Inserire immagini in excel

Postdi Anthony47 » 23/05/19 15:16

Non hai detto nulla su come l'immagine viene inserita; mi limito quindi a uno snippet che e' in grado di "centrare" l'immagine selezionata rispetto alla cella che contiene il suo vertice superiore sinistro:
Codice: Seleziona tutto
If TypeName(Selection) = "Picture" Then
    Selection.Top = Selection.TopLeftCell.Top - Selection.Height / 2 + Selection.TopLeftCell.Height / 2
    Selection.Left = Selection.TopLeftCell.Left - Selection.Width / 2 + Selection.TopLeftCell.Width / 2
End If

Se carichi l'immagine con una macro, allora integra il codice nella tua macro; oppure crea una macro che contenga solo quelle istruzioni e avviala quando vuoi riposizionare un'immagine.
Nota che se l'immagine e' piu' grande della cella allora eventuali riesecuzioni del codice potrebbero spostare l'immagine verso l'alto o verso sinistra

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

Re: Inserire immagini in excel

Postdi nippon » 30/05/19 06:57

Ciao Anthony, e scusa il ritardo nella risposta... :oops:

Riguardo all'inserimento dell'immagine, seguo il percorso Inserisci > Illustrazioni > Immagini.

Per il codice che m'hai gentilmente dato, ammetto la mia ignoranza, e non ho mai capito come si usano 'sti codici... :oops:


Non so quali altre info può essere utile che ti dia, e nel frattempo aspetto il tuo feedback. ;)

Grazie. :)
CIAO A TUTTI E GRAZIE A TUTTI QUELLI CHE MI PRENDERANNO IN CONSIDERAZIONE! :)
Avatar utente
nippon
Utente Senior
 
Post: 832
Iscritto il: 22/04/07 15:19

Re: Inserire immagini in excel

Postdi Anthony47 » 30/05/19 22:47

Se le immagini le inserisci a mano allora devi crearti una macro che contiene solo le istruzioni date; ad esempio:
Codice: Seleziona tutto
Sub ImgCentra()
If TypeName(Selection) = "Picture" Then
    Selection.Top = Selection.TopLeftCell.Top - Selection.Height / 2 + Selection.TopLeftCell.Height / 2
    Selection.Left = Selection.TopLeftCell.Left - Selection.Width / 2 + Selection.TopLeftCell.Width / 2
End If
End Sub

La metti in un Modulo standard del vba (vedi viewtopic.php?f=26&t=103893&p=647675#p647675); poi selezioni una immagine e lanci quella sub.
Per le varie opzioni su come avviare una sub, vedi viewtopic.php?f=26&t=103893&p=647678#p647678

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

Re: Inserire immagini in excel

Postdi zanatta77 » 01/02/23 09:47

Buongiorno
Mi inserisco a questo post per non inserirne uno nuovo.
Dovrei inserire una o più immagini su foglio attivo a seguito di apertura di un percorso che porta alla sola cartella interessata che contiene altre cartelle al suo interno con i file immagine d'interesse che possono essere 1 o più foto.
Non riesco a capire che codice scrivere al momento sono fermo qui...

Sub InserisciImmagine ()
Dim Cartella As string
ActiveWorkbook.FollowHyperlink _ Address:=Cartella
ActiveSheet.pictures.Insert("Cartella\\.jpg").Select
End sub
Windows 8
Office 2010
Avatar utente
zanatta77
Utente Senior
 
Post: 127
Iscritto il: 01/12/12 16:12

Re: Inserire immagini in excel

Postdi zanatta77 » 01/02/23 10:09

zanatta77 ha scritto:Buongiorno
Mi inserisco a questo post per non inserirne uno nuovo.
Dovrei inserire una o più immagini su foglio attivo a seguito di apertura di un percorso che porta alla sola cartella interessata che contiene altre cartelle al suo interno con i file immagine d'interesse che possono essere 1 o più foto.
Non riesco a capire che codice scrivere al momento sono fermo qui...

Sub InserisciImmagine ()
Dim Cartella As string
Cartella = "C:\antonio\foto"
ActiveWorkbook.FollowHyperlink _ Address:=Cartella
ActiveSheet.pictures.Insert("Cartella\\.jpg").Select
End sub
Avatar utente
zanatta77
Utente Senior
 
Post: 127
Iscritto il: 01/12/12 16:12

Re: Inserire immagini in excel

Postdi zanatta77 » 01/02/23 10:12

zanatta77 ha scritto:
zanatta77 ha scritto:Buongiorno
Mi inserisco a questo post per non inserirne uno nuovo.
Dovrei inserire una o più immagini su foglio attivo a seguito di apertura di un percorso che porta alla sola cartella interessata che contiene altre cartelle al suo interno con i file immagine d'interesse che possono essere 1 o più foto.
Non riesco a capire che codice scrivere al momento sono fermo qui...

Sub InserisciImmagine ()
Dim Cartella As string
Cartella = "C:\antonio\foto"
ActiveWorkbook.FollowHyperlink _ Address:=Cartella
ActiveSheet.pictures.Insert("Cartella\\.jpg").Select
End sub


In sostanza quindi dovrei a seguito apertura da un modulo collegato a un pulsante aprire la cartella definita e andare a scegliere la sottocartella d'interesse selezionando o trascinando una o più foto per averle nel foglio
Avatar utente
zanatta77
Utente Senior
 
Post: 127
Iscritto il: 01/12/12 16:12

Re: Inserire immagini in excel

Postdi zanatta77 » 01/02/23 10:18

zanatta77 ha scritto:
zanatta77 ha scritto:
zanatta77 ha scritto:Buongiorno
Mi inserisco a questo post per non inserirne uno nuovo.
Dovrei inserire una o più immagini su foglio attivo a seguito di apertura di un percorso che porta alla sola cartella interessata che contiene altre cartelle al suo interno con i file immagine d'interesse che possono essere 1 o più foto.
Non riesco a capire che codice scrivere al momento sono fermo qui...

Sub InserisciImmagine ()
Dim Cartella As string
Cartella = "C:\antonio\foto"
ActiveWorkbook.FollowHyperlink _ Address:=Cartella
ActiveSheet.pictures.Insert("Cartella\\.jpg").Select
End sub


In sostanza quindi dovrei a seguito apertura da un modulo collegato a un pulsante aprire la cartella definita e andare a scegliere la sottocartella d'interesse selezionando o trascinando una o più foto per averle nel foglio

In pratica dovrebbe fare quello che fa in modo predefinito dal menù del programma Excel se premo INSERISCI,immagini con unica differenza che già siamo nella cartella interessata.
Avatar utente
zanatta77
Utente Senior
 
Post: 127
Iscritto il: 01/12/12 16:12

Re: Inserire immagini in excel

Postdi Anthony47 » 01/02/23 12:41

Prova a usare questa macro, che ti consente di scegliere l'immagine e poi la inserisce direttamente nella cella attiva:
Codice: Seleziona tutto
Sub InsertPicture()
Dim PictName As String
Dim Posiz As Range, cPic
'
'Scelta dell'immagine
With Application.FileDialog(msoFileDialogFilePicker)
            .Title = "Scegli l'Immagine da inserire"
            .InitialFileName = "C:\prova"                   '<<< La directory di partenza
            .AllowMultiSelect = False
            .Filters.Clear
            .Filters.Add "All Pictures", "*.jpg; *.jpeg; *.png;*.gif; *.bmp"
   .Show
    If .SelectedItems.Count = 0 Then
        MsgBox ("Nessuna voce selezionata, processo abortito")
        Exit Sub
    End If
    PictName = .SelectedItems.Item(1)
End With
'
'Inserimento Immagine scelta suula cella attiva:
Set Posiz = ActiveCell
Set cPic = ActiveSheet.Shapes.AddPicture(PictName, False, True, 0, 0, True, True)
With cPic
    .LockAspectRatio = msoFalse
    .Height = 80#                   'dimensione
    .Width = 80#
    .Left = Posiz.Left + Posiz.Width / 2 - .Width / 2   'Centratura
    .Top = Posiz.Top + Posiz.Height / 2 - .Height / 2
End With
Set cPic = Nothing
End Sub

Hai la possibilita' di impostare da quale directory eseguire la ricerca (istruzione marcata <<<); ho inserito le estensioni piu' comuni delle immagini, se na hai di altre (tiff?, emz?, svg?, ???) aggiungile al "filtro".
Dopo l'inserimento ho aggiunto, arbitrariamente, alcune istruzioni (quelle comprese tra With cPic e End With) che ridimensionano l'immagine e la centrano sulla cella di destinazione. Sono operazioni fatte con criteri inventati, per farti vedere dove e come aggiungere comandi che ti interessano.


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

Re: Inserire immagini in excel

Postdi zanatta77 » 01/02/23 17:48

Perfetto grazie è esattamente quello che cercavo. Adesso devo soltanto cambiare il posizionamento della foto che vorrei iniziasse dalla cella selezionata ad andare verso il basso e da sinistra verso destra
Gentilissimo come sempre.
Windows 8
Office 2010
Avatar utente
zanatta77
Utente Senior
 
Post: 127
Iscritto il: 01/12/12 16:12

Re: Inserire immagini in excel

Postdi Anthony47 » 01/02/23 23:29

Allora elimina il dimensionamento e modifica il posizionamento:
Codice: Seleziona tutto
With cPic
    .LockAspectRatio = msoFalse
'    .Height = 80#                 'dimensione
'    .Width = 80#
    .Left = Posiz.Left             '+ Posiz.Width / 2 - .Width / 2   'Centratura
    .Top = Posiz.Top               '+ Posiz.Height / 2 - .Height / 2
End With

(tutte le parti dopo gli Apostrofi, compreso le due righe Height e Width, possono essere eliminate)
Avatar utente
Anthony47
Moderatore
 
Post: 19220
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Inserire immagini in excel":


Chi c’è in linea

Visitano il forum: Nessuno e 41 ospiti