Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Inserimento dinamico immagini su Excel tramite VBA

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

Inserimento dinamico immagini su Excel tramite VBA

Postdi carrermauro » 06/01/14 19:20

Buongiorno,
sono nuovo di questo blog, tra tanti lo ho trovato il più utile, premetto che non ho esperienza con VBA e ho fatto un collage di codice trovato tra le vostre discussioni, viceversa con excel va un po meglio, spiego il mio problema :

Serve che al variare dei valori riportati in una cella (es: foto_1, foto_2, foto_3, ecc.), far comparire un'immagine con nome corrispondente (es: foto_1, foto_2, foto_3, ecc.) sulla stessa riga, il codice che ho assemblato funziona se la cella che contiene il nome dell'immagine è un menù a tendina (convalida dati), oppure se digito il nome a mano, non funziona però se cella che contiene il nome fa riferimento ad una terza cella che "calcola" il nome (es: foto_1, foto_2, foto_3, ecc.), io avrei bisogno proprio di questo, come posso risolvere il mio problema?

Allego anche il codice che ho assemblato e spero in un Vostro aiuto, ringrazio anticipatamente.

Carrer Mauro
San Donà di Piave (VE)

CODICE :

Private Sub Worksheet_Change(ByVal Target As Range)
'
ListaF = "B414:B614" '<<< Le celle con nome immagine
For Each Cella In Target
If Not Application.Intersect(Cella, Range(ListaF)) Is Nothing Then
On Error Resume Next
ActiveSheet.Shapes("FOTO_DA_" & Cella.Address(0, 0)).Delete
On Error GoTo 0
Cella.Select
If Dir("H:\SOLE\Programmi SOLE srl\Preventivatori\Preventivatore FTV + AI\Preventivatore Rev 03 del 05 01 14\Schede tecniche\" & Cella.Text & ".jpg") = "" Then '<<< Percorso cartella immagini
ActiveSheet.Pictures.Insert("H:\SOLE\Programmi SOLE srl\Preventivatori\Preventivatore FTV + AI\Preventivatore Rev 03 del 05 01 14\Schede tecniche\ImmStandard.jpg").Select '<<< Percorso cartella immagini + immagine per immagine mancante
Else
ActiveSheet.Pictures.Insert("H:\SOLE\Programmi SOLE srl\Preventivatori\Preventivatore FTV + AI\Preventivatore Rev 03 del 05 01 14\Schede tecniche\" & Cella.Text & ".jpg").Select '<<< Percorso cartella immagini
End If

Selection.Name = "FOTO_DA_" & Cella.Address(0, 0)
Selection.ShapeRange.Height = 1400 '<<< Altezza immagine
If Selection.ShapeRange.Width > 650 Then '<<< Larghezza immagine
Selection.ShapeRange.Width = 650 ' <<< Larghezza immagine
End If

'PER POSIZIONARE L'IMMAGINE
Selection.ShapeRange.Left = Cella.Offset(0, 1).Left '<<< Rientro immagine da sx
Selection.ShapeRange.Top = Target.Offset(0, 0).Top
Cella.Select
End If
Next Cella
End Sub
carrermauro
Newbie
 
Post: 1
Iscritto il: 06/01/14 10:52

Sponsor
 

Re: Inserimento dinamico immagini su Excel tramite VBA

Postdi Anthony47 » 06/01/14 23:50

In linea di massima, dovresti "risalire a monte": visto che la macro si attiva su un "WorksheetChange" (cioe' quando qualche dato viene cambiato a mano dall' utente) devi far partire la macro quando il valore a monte del tuo calcolo (quello da cui deriva il calcolo del nome immagine) viene introdotto; ovviamente serviranno degli adattamenti al codice, che dipendono da come e' organizzato il tuo foglio e il tuo processo. Quindi se non risolvi con questo primo spunto allora ti aspettiamo con tutti i dettagli della tua situazione.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Inserimento dinamico immagini su Excel tramite VBA

Postdi andrea.baiocco1804 » 30/03/15 14:18

Buonasera
Come faccio a impostare che l'immagine inserita sia messa nella cella precedente a "FOTO_DA"?
andrea.baiocco1804
Newbie
 
Post: 2
Iscritto il: 30/03/15 13:11

Re: Inserimento dinamico immagini su Excel tramite VBA

Postdi Anthony47 » 30/03/15 22:32

Non accodarti "a caso" ad altre discussioni, altrimenti la tua domanda rimarra' poco visibile; apri invece uno nuova discussione e avrai miglior visibilita'.
Andando alla domanda "Come faccio a impostare che l'immagine inserita sia messa nella cella precedente a "FOTO_DA"?", malauguratamente non so rispondere perche' non capisco il quesito...
"FOTO_DA" e' una stringa, che viene concatenata con l' indirizzo della cella target, per assegnare un nome noto all' immagine inserita, in sostituzione del nome di default assegnato da Excel (tipo Immagine 1, Immagine 2, etc).
Quindi non capisco cosa intendi.

Ti suggerisco di mettere insieme i tue due messaggi e aprire una nuova discussione, vedrai che sara' piu' facile capirsi.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Inserimento dinamico immagini su Excel tramite VBA":


Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti