Condividi:        

EXCEL2010: Cambio immagine da cambio valore 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

EXCEL2010: Cambio immagine da cambio valore cella

Postdi leo21583 » 10/12/11 08:53

Salve a tutti,

Sto lavorando alla mia tesi e ho un problema con excel! Immaginiamo di avere 3 immagini .jpeg che si chiamano gatto.jpeg , cane.jpeg , topo.jpeg . Vorrei che in una certa zona della pagina sul mio foglio di lavoro mi apparisse una di queste tre immaigni a seconda che in una cella io scriva gatto, cane o topo.. So che si può fare ma non so come!
Sarebbe auspicabile che il programma fosse autonomo, cioè se invio il file al mio relatore non sia necessario inviargli anche le immagini e e spiegargli dove metterle! Non so se ho reso l'idea. Spero che qualcuno mi possa aiutare!
A presto!

P.S. Ovviamente non tratto cani, gatti e topi nella tesi :)
leo21583
Utente Junior
 
Post: 32
Iscritto il: 10/12/11 08:35

Sponsor
 

Re: EXCEL2010: Cambio immagine da cambio valore cella

Postdi Flash30005 » 10/12/11 09:57

Ciao Leo21583 e benvenuto nel Forum

se fai una ricerca su questa sezione con chiave di ricerca "Immagini" trovi un argomento già trattato

http://www.pc-facile.com/forum/viewtopic.php?f=26&t=93054&hilit=immagini

Ricorda comunque che le immagini vanno, oltre che inviate insieme al file di excel, inserite nello stesso percorso previsto dal programma.
La miglior cosa quindi è che siano nella stessa cartella del file di excel (o sottocartella): percorso ricavabile con una riga di codice (ThisWorkbook.path) e, inoltre, creare un archivio (.zip o .rar) da spedire.

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: EXCEL2010: Cambio immagine da cambio valore cella

Postdi leo21583 » 10/12/11 10:23

Ciao Flash,
innanzitutto ti ringrazio per la pronta risposta. Ho guardato il link di cui mi ha detto, ma il problema è che io vorrei inserire tutte le mie immagini in una pagina excel che chiamerò "Images" e le immagini vorrei richiarmarle da questa pagina. Non ho trovato un codice che mi permetta di fare questo. Ho invece provato a inserire le immagini da un percorso copiando e adattando un codice trovato su questo forum ed ha funzionato. Come dicevo, vorrei non avere la necessità di richiamare immagini da files perchè il mio programma dovrà essere inviato a terzi senza che debbano reimpostare i percorsi o cose del genere.. Se potrai aiutarmi inviandomi un esempio di codice e qualche spiegazione ti sarei molto grato!
leo21583
Utente Junior
 
Post: 32
Iscritto il: 10/12/11 08:35

Re: EXCEL2010: Cambio immagine da cambio valore cella

Postdi leo21583 » 10/12/11 10:31

Dimenticavo!
Tu mi consigli di creare un file .rar o .zip da spedire ma anche in questo caso non si dovrebbero reimpostare le directory nel Worksheet_Change? O la cosa avviene in automatico? Perchè se non fosse necessario intervenire sul programma potrei benissimo adottare il sistema di caricare le immagine da files contenuti nella stessa cartella avvertendo terzi di non spostare il file fuori dalla suddetta cartella. Scusa la mia ignoranza ma non mi sono mai trovato ad affrontare problemi di questo tipo con excel..
leo21583
Utente Junior
 
Post: 32
Iscritto il: 10/12/11 08:35

Re: EXCEL2010: Cambio immagine da cambio valore cella

Postdi Flash30005 » 10/12/11 13:04

Trattandosi di Tesi e quindi si presume che non debba essere modificata dal lettore, non capisco perché non inserisci direttamente le immagini dove dovrebbero essere invece di fare link o richiami ad oggetti.
Comunque penso che a questo punto occorra prendere una decisione
1) avere le immagini in un foglio di excel e in un altro richiamarle
2) avere le immagini come file (esterni ad excel) che vengono richiamate come da macro esistenti e da adattare (forse)

Se le immagini sono all'interno di un foglio (punto 1) il problema di creare un file archivio (.zip) non sussiste ovvero potrà solo servire per compattare un file eventualmente troppo grande.
Se sono all'esterno del foglio è sufficiente che tu faccia un unico file archivio contenente sia la cartella con il file di excel sia la sottocartella che contiene le immagini (al momento che crei lo zip di una cartella verranno compresse automaticamente anche le sottocartelle)
al momento che il destinatario scompatta il file zip si troverà la cartella con i file e sottocartelle all'interno, pertanto il percorso delle immagini riferite al file di excel non cambia (potrà cambiare la posizione della cartella appena scompattata ma è ininfluente in quanto il codice VBA permette di risalire al nuovo percorso del file di excel)
es.:
Tuo Pc, percorso file
C:\Documents and Settings\Laureando\Documenti\Tesi\Tesi.xls
la cartella tesi conterrà oltre al file xls anche una sottocartella "Immagini" quindi avrai
C:\Documents and Settings\Laureando\Documenti\Tesi\Immagini\Figura1.jpg, Figura2.jpg etc

Il codice Vba ThisWorkbook.path all'interno del file di excel fornirà il seguente percorso
Perc = ThisWorkbook.path & "\"
(risultato C:\Documents and Settings\Laureando\Documenti\Tesi\)
e le immagini saranno quindi
PercImm = Perc & "Immagini" & "\"
(risultato C:\Documents and Settings\Laureando\Documenti\Tesi\Immagini\)

Quando il destinatario del tuo file scompatterà nel suo Pc il file .zip
e lo collocherà ad esempio in un percorso tipo
C:\Documents and Settings\Docente\Documenti\Tesi2012\
il tuo file si troverà in
C:\Documents and Settings\Docente\Documenti\Tesi2012\Tesi\Tesi.xls
e una sottocartella Immagini in quanto scompattata come struttura dall'archivio
C:\Documents and Settings\Docente\Documenti\Tesi2012\Tesi\Immagini\

A questo punto lo stesso codice contenuto nel VBA di excel fornirà il nuovo percorso del file
Perc = ThisWorkbook.path & "\"
(risultato C:\Documents and Settings\Docente\Documenti\Tesi2012\Tesi\)
e le immagini saranno quindi
PercImm = Perc & "Immagini" & "\"
(risultato C:\Documents and Settings\Docente\Documenti\Tesi2012\Tesi\Immagini\)

Quindi le immagini vengono ugualmente trovate in quanto è un percorso relativo al file di excel.

Spero di essere stato sufficientemente chiaro per farti prendere la soluzione più consona.

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: EXCEL2010: Cambio immagine da cambio valore cella

Postdi leo21583 » 10/12/11 13:27

Grazie per la pazienza! Non vorrei diventare stressante.. Diciamo che il mio problema rimane capire come inserire correttamente il comando ThisWorkbook.path.. Ero riuscito a far funzionare il programmino che carica le immaigni semplicemente perchè lo avevo copiato e con un po di fortuna adattato ma non ci capisco molto di VBA. In quell'esempio però manca l'istruzione ThisWorkbook.path e non saprei proprio come inserirla.. Se non ti sbatti troppo potresti darmi qualche ultima dritta su questo punto? Poi giuro che smetto di rompere :) ..
leo21583
Utente Junior
 
Post: 32
Iscritto il: 10/12/11 08:35

Re: EXCEL2010: Cambio immagine da cambio valore cella

Postdi leo21583 » 10/12/11 15:24

:( in pratica, così funziona:

Private Sub Worksheet_Change(ByVal Target As Range)
Perc = ThisWorkbook.Path & "\"
PercImm = ThisWorkbook.Path & "Pictures\"
If Application.Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
On Error Resume Next
ActiveSheet.Shapes("ZC_" & Target.Offset(0, 1).Address(0, 0)).Delete
On Error GoTo 0
Target.Offset(1, 0).Select
ActiveSheet.Pictures.Insert("C:\Users\Leonardo\Desktop\Prova\Pictures\" & Target.Value & ".jpg").Select
Selection.Name = "ZC_" & Target.Offset(0, 1).Address(0, 0)
Target.Select
End Sub

ma se sostituisco la quartultima riga con:

ActiveSheet.Pictures.Insert("PercImm" & Target.Value & ".jpg").Select

non funziona più e da il seguente messaggio: impossibile trovare la proprietà insert per la classe Pictures!

Mi sa che non ne esco vivo..
leo21583
Utente Junior
 
Post: 32
Iscritto il: 10/12/11 08:35

Re: EXCEL2010: Cambio immagine da cambio valore cella

Postdi Flash30005 » 10/12/11 15:44

C'è un errore sul percorso immagini
Il codice ThisWorkbook.path non prevede lo slash finale ("\")
Quindi devi correggere così
PercImm = ThisWorkbook.Path & "\Pictures\"
(la variabile Perc, in questo caso, non serve più)

Non entro in merito al resto della macro
in caso di problemi posta ancora

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: EXCEL2010: Cambio immagine da cambio valore cella

Postdi leo21583 » 10/12/11 16:09

Grazie molte! Ci ero arrivato per tentativi :) proprio 5 minuti di leggere la tua risposta.. Sicuramente avrò ancora problemi con excel quindi.. A Presto! ;)
leo21583
Utente Junior
 
Post: 32
Iscritto il: 10/12/11 08:35


Torna a Applicazioni Office Windows


Topic correlati a "EXCEL2010: Cambio immagine da cambio valore cella":

BTp Valore
Autore: MarioLombardi
Forum: Forum off-topic
Risposte: 2

Chi c’è in linea

Visitano il forum: raimea e 59 ospiti