Condividi:        

inserire immagine in una cella

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 immagine in una cella

Postdi paolone2001 » 21/08/17 11:13

Ciao, ho una serie di modelli a cui devo cambiare l'intestazione (per l'ennesima volta). Si tratta del logo che metto in alto a sinistra.
Visto che ricapiterà ancora, vorrei evitare di aprirli sempre uno per uno e fare la modifica immagine per immagine.
Mi domando se sia possibile associare ad una cella (ad es A1) un'immagine che chiamerei logo.jpg, così se cambio l'immagine la modifica viene acquisita da tutti i fogli excel una volta aperti e aggiornati.
Spero di essermi spiegato,
vi ringrazio, ciao
Paolo
paolone2001
Utente Junior
 
Post: 19
Iscritto il: 05/01/08 17:54

Sponsor
 

Re: inserire immagine in una cella

Postdi Anthony47 » 21/08/17 23:47

Prima di proporti qualcosa devi tener presente che una immagine puo' essere "integrata" (1) nel foglio (viene memorizzata nel file) o solo "linkata" al file, che puo' essere un file locale (2) oppure su un sito web (3).

Ognuno di queste modalita' ha vantaggi e svantaggi:
-nel caso (1) il file contiene tutto; chiunque riceve il file vede il logo corrente; per modificare il logo bisogna modificare il file (e immagino sara' difficile "richiamare" eventuali file copiati o distribuiti ad altri).
-nel caso (2) il file carica l'immagine dal disco locale a ogni apertura; se il file viene distribuito si vedra' il "segnaposto" dell'immagine perche' ragionevolmente non si trova sul disco di chi lo legge (ma si puo' inserire una scritta "Logo Società PincoPalla Spa", normalmente coperta dall'immagine, che indica cosa dovrebbe esserci); basta cambiare il file sul disco per avere un nuovo logo.
-il caso (3) e' un po' come il (2): l'immagine viene caricata se all'apertura del file esiste una connessione internet, altrimenti compare il segnaposto; basta modificare il file sul sito web per modificare il logo.

Quale di queste situazioni e' aderente alla tua situazione?
Questo per il futuro.

Per quanto riguarda il presente e' utile sapere se l'immagine e' integrata o linkata (aprendo il file da altro PC l'immagine non si trova) e sara' necessario sapere con quale logica si puo' identificare l'immagine "logo": la posizione? Il nome dell'immagine? Oppure cosa? Volendo creare una macro che esamina tutti i file e cambia il logo nei file in cui si trova queste informazioni sono essenziali.

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

Re: inserire immagine in una cella

Postdi paolone2001 » 22/08/17 08:46

Grazie Anthony,
dunque, le tue proposte vanno tutte bene, perché il prodotto finale sarà un pdf che di fatto va in distribuzione, quindi esso stesso sarà immutabile, poco importa il file di excel da cui proviene. Per quello che penso, comunque la soluzione migliore per me è la seconda, quella che "linka" l'immagine al file e la carica ogni volta, tanto i pc coinvolti sono in un gruppo di lavoro e condividono una unità esterna con indirizzo di rete dove salverei il file logo.jpg, appunto. Se cambia il logo basta cambiare il file immagine e all'apertura si aggiorna il tutto.
Grazie mille, come sempre, ciao
Paolo
paolone2001
Utente Junior
 
Post: 19
Iscritto il: 05/01/08 17:54

Re: inserire immagine in una cella

Postdi paolone2001 » 22/08/17 15:45

ah, dimenticavo:
se è ad una macro che stai pensando ti devo anche dire che le celle dei vari fogli del file excel sono protette da modifica, quindi andrebbe prevista la rimozione della protezione, fatto l'aggiornamento del file immagine e ripristinata la protezione. In alternativa più semplicemente posso sbloccare la cella dove sta il logo in modo che la macro non si blocchi per via della protezione celle.
Solo per completezza, grazie ancora
Paolo
paolone2001
Utente Junior
 
Post: 19
Iscritto il: 05/01/08 17:54

Re: inserire immagine in una cella

Postdi Anthony47 » 23/08/17 00:48

Ok, per il futuro sappiamo come fare.
Ma per recuperare il presente, cioe' modificare il logo nei file attuali, dovresti rispondere anche alla seconda parte del mio messaggio precedente.
La protezione non e' un problema, si mette e si togli; e' un po' lento ma trattandosi di una operazione una tantum non importa a nessuno.

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

Re: inserire immagine in una cella

Postdi paolone2001 » 23/08/17 08:36

Per quanto riguarda il presente e' utile sapere se l'immagine e' integrata o linkata (aprendo il file da altro PC l'immagine non si trova) e sara' necessario sapere con quale logica si puo' identificare l'immagine "logo": la posizione? Il nome dell'immagine? Oppure cosa? Volendo creare una macro che esamina tutti i file e cambia il logo nei file in cui si trova queste informazioni sono essenziali.


l'immagine dovrebbe essere linkata e posizionata in una unità esterna (un nas) accessibile con indirizzo di rete da tutti i pc del gruppo di lavoro. Quindi l'identificazione avverrebbe sia sul nome che sulla posizione, ad es \\192.168.1.168\shared\[logo.jpg].

Grazie
Paolo
paolone2001
Utente Junior
 
Post: 19
Iscritto il: 05/01/08 17:54

Re: inserire immagine in una cella

Postdi Anthony47 » 23/08/17 11:18

Humm... C'e' qualcosa che non mi convince...
Se nella situazione attuale l'immagine e' gia' linkata allora ti basta mettere nella posizione corrispondente a \\192.168.1.168\shared il nuovo file grafico e chiamarlo logo.jpg (dopo aver rinominato a piacere l'attuale logo.jpg).

Non e' che hai ribadito come la vogliamo fare per il futuro?

Hai la possibilita' di condividere uno dei file correnti dove e' inserito il vecchio logo?
Per le istruzioni su come allegare un file:
viewtopic.php?f=26&t=103893&p=605487#p605487

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

Re: inserire immagine in una cella

Postdi paolone2001 » 23/08/17 13:24

Scusa, hai ragione, ho ribadito il futuro.
Nella situazione attuale il file l'immagine è integrata nel file (inserisci immagine da file).
Intuisco che vuoi realizzare una macro che apra i file in questione, cancelli l'immagine e la sostituisca con quella corretta, linkata al file logo.jpg (che ho appena creato).
Sarebbe una figata, ma temo sia complicato (per me lo sarebbe assai), perché i file xls hanno ovviamente tutti nomi diversi, diverso numero di fogli all'interno ed il logo non è sempre in A1.
Sono pertanto rassegnato a doverli aprire uno per uno, ma vorrei fosse l'ultima volta; già che li apro vorrei sistemarli in modo che il logo diventi un link e non un'immagine integrata. Te lo dico per non farti perdere troppo tempo.
Lo so mi spiego male, scusatemi.
Grazie,
Paolo
paolone2001
Utente Junior
 
Post: 19
Iscritto il: 05/01/08 17:54

Re: inserire immagine in una cella

Postdi Anthony47 » 24/08/17 01:05

Vediamo di fare qualcosa...
Prova questa macro:
Codice: Seleziona tutto
Sub Renew()
Dim mPath As String, LogoFile As String, Posiz, cPic, LogoAlt As Long
Dim PosizStd As String
'
mPath = "C:\Users\user01\Pictures"      '<<< Il Percorso in cui si trova il file logo
LogoFile = "wandg_40.jpg"               '<<< Il nome del file "logo"
LogoAlt = 300                           '<<< L'altezza del logo; se 0 viene usata la dimensione originale
PosizStd = "B2"                         '<<< La posizione di default per il logo
'
'Cancella l'eventuale immagine selezionata:
If TypeName(Selection) = "Picture" Then
    Selection.Delete
End If
'
On Error Resume Next
    ActiveSheet.Shapes("ZcZcA_Logo_").Delete
    Set Posiz = Application.InputBox("Seleziona la cella in cui inserire l'immagine", "Destinazione?", PosizStd, , , , , 8)
On Error GoTo 0
If TypeName(Posiz) = "Range" Then
    If Posiz.Value = "" Then Posiz.Value = "Spazio per il Logo Aziendale: Pippo Spa, Trieste"   '***
    Set cPic = ActiveSheet.Shapes.AddPicture(mPath & "\" & LogoFile, True, False, _
    Posiz.Left, Posiz.Top, True, True)
    cPic.LockAspectRatio = msoTrue
    cPic.Placement = xlFreeFloating             '+++ Non spostare ne' ridimensionare con le celle
'    cPic.Placement = xlMove                     '+++ Sposta ma non ridimensionare con le celle
    If LogoAlt > 0 Then cPic.ScaleHeight (LogoAlt / cPic.Height), msoTrue
    cPic.Name = "ZcZcA_Logo_"
Else
    MsgBox ("Nessuna operazione eseguita")
End If
End Sub

Va messa in un "modulo standard del vba" di file diverso dai file da modificare, ad esempio il file Personal.xls (inteso come il file che si apre automaticamente in modo nascosto all'apertura di Excel; se non hai un file "Personal" ti insegnero' come crearlo), oppure un qualsiasi altro file che andra' aperto manualmente.

Le istruzioni marcate <<< sono da personalizzare come da commenti.

L'istruzione marcata *** inserisce una scritta nella cella di destinazione, se la cella e' vuota; ovviamente l'operazione e' facoltativa e la scritta va modificata.

Le istruzioni marcate +++ sono alternative, e impostano due diversi comportamenti dell'immagine, come da commenti; scegli tu quale mantenere, e l'altra la puoi cancellare o meglio puoi "commentarla" (inserendo un "apostrofo" a inizio riga in modo che se cambi idea ce l'hai gia' a disposizione).

All'occorrenza poi bisogna aprire il file da modificare, cancellare il logo esistente, e avviare la macro.

La macro chiedera' di selezionare la cella di destinazione e vi inserira' il file specificato; eventualmente fa un resize in altezza (la larghezza sara' calcolata di conseguenza, avendo impostato "non distorcere l'immagine"); infine all'immagine viene assegnato un nome particolare, che potrebbe essere usato per operazioni future

La macro non salva automaticamente il nuovo file, quindi se il risultato non va bene basta chiudere il file senza salvarlo.

In tutto questo discorso non hai detto quale versione di Excel usi; se hai XL2007 o superiore puoi facilmente aggiungere una icona nella "Barra di accesso rapido" da associare alla Sub Renew (per questo meglio che sia in Personal.xls); vedi l'help on line di Excel alla voce "Personalizzare la barra di accesso rapido".

Prova e fai sapere...

keywords
Inserisci immagine foglio excel linkata link inserisci e modifica logo aziendale
link image excel worksheet sheet
Avatar utente
Anthony47
Moderatore
 
Post: 19181
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: inserire immagine in una cella

Postdi paolone2001 » 24/08/17 15:35

Innanzitutto grazie!
Ho provato e funziona molto bene.
L'ultima cosa che mi resta da capire è come faccia excel a ricordarsi che quella cella è collegata a quella determinata immagine, ma le mie capacità non me lo permetteranno, temo. ;-)
La versione di excel che utilizzo è la 2003, perché è l'ultima che permette di modificare un punto di una curva di un grafico x-y trascinandolo col mouse e come conseguenza il valore della cella corrispondente si aggiorna da solo.
Grazie mille ancora, ciao
Paolo
paolone2001
Utente Junior
 
Post: 19
Iscritto il: 05/01/08 17:54

Re: inserire immagine in una cella

Postdi Anthony47 » 24/08/17 19:15

So che Excel e' un programma complesso e fa tante cose; come fa a farle non lo so e nemmeno mi interessa, mi basta sapere che e' cosi'...
Avatar utente
Anthony47
Moderatore
 
Post: 19181
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "inserire immagine in una cella":


Chi c’è in linea

Visitano il forum: Nessuno e 38 ospiti

cron