Condividi:        

[excel] inserimento immagini su controllo activex

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

[excel] inserimento immagini su controllo activex

Postdi accio1965 » 17/08/09 23:28

salve
devo inserire diverse immagini sul un foglio excel in base al valore che assumerà la cella Y1
le immagini saranno nella directory picture e si chiameranno 101.jpg 102.jpg ossia tutti i valori possibili che potrà assumere la cella Y1
tutte le volte che la cella cambierà valore dovrà essere caricata una nuova immagine e nel caso di immagine mancante un immagine di default di errore (es error.jpg)
ho creato il controllo activex immagine ma non conosco la macro da associarvi per caricare la foto
grazie x l'aiuto
accio1965
Utente Junior
 
Post: 52
Iscritto il: 21/08/07 08:39

Sponsor
 

Re: [excel] inserimento immagini su controllo activex

Postdi Anthony47 » 18/08/09 22:16

Non so che activex stai cercando di usare, puoi invece procedere in questo modo:
-ti registri una macro mentre inserisci sul tuo file una qualsiasi delle immagini
-aggiungi al codice, in testa, una istruzione tipo
Codice: Seleziona tutto
FNomFile="C:\directory\subdirectory\Picture\" & Range("Y1").value
-modifichi l' istruzione che importa il file per modificare la stringa del nome con la variabile prima calcolata.
Infine scrivi una macro di Worksheet_Change in cui:
-le prime istruzioni sono
Codice: Seleziona tutto
If Target.Addres <> "$Y$1" Then exit sub
Application.EnableEvents = False
On Error GoTo Exita
If Range("Z1").value <> "" then ActiveSheet.Shapes(Range("Z1").value).Delete  'Z1 = cella di servizio libera

-Poi inserisci le istruzioni della macro di importa immagine modificata come sopra (ovviamente senza il titolo e senza End Sub),
-infine
Codice: Seleziona tutto
Range("Z1").value = Selection.ShapeRange.Name   'Z1 = cella di servizio; modificare a piacere
Exita:
Application.EnableEvents = True
End Sub

In questo modo quando cambi il contenuto di Y1 cancelli la precedente immagine e inserisci la nuova.

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

Re: [excel] inserimento immagini su controllo activex

Postdi borile500 » 07/09/09 20:18

io nella cartella C:\photo ho 100 files nominati 1.jpg, .........,100.jpg. e vorrei visualizzarli, dentro un foglio1 excel all'interno di un rettangolo (Image1), al variare del valore di A1 che potrà essere uguale a (1,2,3,........,100).
Suggerimenti?
borile500
Utente Junior
 
Post: 14
Iscritto il: 25/08/09 11:36

Re: [excel] inserimento immagini su controllo activex

Postdi Anthony47 » 09/09/09 03:19

Registra una macro mentre fai a mano l' operazione con una immagine qualsiasi del tuo elenco, poi posta il codice generato e lo modificheremo per attivare la macro quando inserisci un valore in A1.

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

Re: [excel] inserimento immagini su controllo activex

Postdi borile500 » 09/09/09 11:19

Anthony47 ha scritto:Registra una macro mentre fai a mano l' operazione con una immagine qualsiasi del tuo elenco, poi posta il codice generato e lo modificheremo per attivare la macro quando inserisci un valore in A1.

Ciao.


Ho registrato la macro ma non trovo nel codice alcun passaggio relativo all'inserimento immagine, ho provato in due modi:
1) Impostando lo sfondo del rettangolo di cui parlavo da "formato immagine"/riempimento/riempimento a immagine o trama/file e inserendo come sfondo del rettangolo un file della cartella. Nella macro non compare alcuna fase di questo passaggio...
2) semplicemente registrando la macro mentre inserivo un'immagine in una certa posizione del foglio, anche in questo caso, non viene registrato nulla. :oops: :oops: :oops:
borile500
Utente Junior
 
Post: 14
Iscritto il: 25/08/09 11:36

Re: [excel] inserimento immagini su controllo activex

Postdi borile500 » 09/09/09 11:54

Ho trovato on-line questo codice e funziona. Se nella cella A1 il valore è 1 compare immagine. Tuttavia nel codice è indicato il percorso di una singola immagine (C:\foto\1.jpg) Come fare a caricare le altre al variare del valore di A1?
Codice: Seleziona tutto
Sub SettaRng()
Set rng = ThisWorkbook.Worksheets(1).Range("a1") '<< range del controllo
End Sub

Sub cancella_Pic()
Dim p As Picture

For Each p In rng.Parent.Pictures
If p.Name = "MiaImmagine" Then
p.Delete
End If
Next
End Sub

Private Sub Workbook_Open()
Dim rngA As Excel.Range
Set rngA = ActiveCell
SettaRng
Application.ScreenUpdating = False
With rng
If rngA.Parent.Name = .Parent.Name Then
.Value = .Value
rngA.Select
Else
.Parent.Activate
.Parent.Select
.Value = .Value
rngA.Parent.Activate
rngA.Parent.Select
rngA.Select
End If
End With
Application.ScreenUpdating = True
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Pic As Picture
Const x = 1
SettaRng
If Sh.Name = rng.Parent.Name Then
If Not Intersect(Target, rng) Is Nothing Then
If rng.Value = x Then
cancella_Pic
Set Pic = Sh.Pictures.Insert( _
"C:\1.jpg")
Pic.Left = rng.Offset(0, 1).Left
Pic.Top = rng.Offset(0, 1).Top
Pic.Name = "MiaImmagine"
Else
cancella_Pic
End If
End If
End If
End Sub

borile500
Utente Junior
 
Post: 14
Iscritto il: 25/08/09 11:36

Re: [excel] inserimento immagini su controllo activex

Postdi Anthony47 » 09/09/09 11:56

Hummm...
Controlla bene, perche' appena avvii "Registra nuova macro" ti viene preparata la macro con Sub NomeMacro() / End Sub; quindi non mi torna che non trovi nulla. Perdona il dubbio: ha avviato il registratore di macro? Menu , Strumenti /Macro /Registra nuova macro; qui esegui le operazioni tramire comandi excel; alla fine premi il bottone "Interrompi macro" (se ti si e' presentato all' avvio macro) oppure tramite Menu , Strumenti /Macro /Interrompi registrazione.
A questo punto, Alt-F8, ti si presenta l' elenco delle macro disponibili, click sul nome che hai registrato, premi Modifica e ti si aprira' l' editor delle macro col codice registrato.

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

Re: [excel] inserimento immagini su controllo activex

Postdi borile500 » 09/09/09 13:17

Anthony47 ha scritto:Hummm...
Controlla bene, perche' appena avvii "Registra nuova macro" ti viene preparata la macro con Sub NomeMacro() / End Sub; quindi non mi torna che non trovi nulla. Perdona il dubbio: ha avviato il registratore di macro? Menu , Strumenti /Macro /Registra nuova macro; qui esegui le operazioni tramire comandi excel; alla fine premi il bottone "Interrompi macro" (se ti si e' presentato all' avvio macro) oppure tramite Menu , Strumenti /Macro /Interrompi registrazione.
A questo punto, Alt-F8, ti si presenta l' elenco delle macro disponibili, click sul nome che hai registrato, premi Modifica e ti si aprira' l' editor delle macro col codice registrato.

Ciao.

Si, si certo. Mi registra ogni cosa tranne l'inserimento immagine fatto in entrambi i modi; se nella stessa registrazione aggiungo altre operazioni (tipo copia cella, inserisci valore, blablabla....) quelle le ritrovo nel codice...Cmq Il codice postato sembra adeguato alle mie esigenze, manca solo il controllo cella in A1, che nn so proprio fare
borile500
Utente Junior
 
Post: 14
Iscritto il: 25/08/09 11:36

Re: [excel] inserimento immagini su controllo activex

Postdi Anthony47 » 10/09/09 15:35

Come gia' detto ad altri in questo periodo post-ferie mi ritrovo con troppi impegni e sto' sacrificando le risposte sul forum.
Mi limito a "portare a galla" il tuo quesito, appena riesco gli do' un' occhiata (se nel frattempo non ti e' gia' stata data risposta).

Ciao e scusa per la lentezza.
Avatar utente
Anthony47
Moderatore
 
Post: 19221
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "[excel] inserimento immagini su controllo activex":


Chi c’è in linea

Visitano il forum: Nessuno e 45 ospiti