Far apparire immagini



  • Far apparire immagini
    di Julio data: 19/01/2013 15:50:21

    Ciao, ho una domanda generica relativa alle immagini.
    e' possibile far apparire un immagine durante la compilazione di un userform?
    Ad esempio se ho all'interno di un frame degli optionbutton ai quali associo delle foto in modo che se l'utente sceglie appare una foto a lato dell'option
    Grazie
    Julio



  • di patel (utente non iscritto) data: 20/01/2013 09:39:53

    Sì, è possibile, allega un file di esempio



  • di Julio data: 20/01/2013 09:52:37

    E Come faccio a scrivere un esempio se non ho idea di come associare l'immagine ad un evento? Nel mio precedente post avevo ipotizzato un option button ma potrebbe essere qualsiasi altro evento, anche un command button credo possa esaustivo.
    Vorrei capire come far apparire una foto/immagine ad un evento.
    Grazie



  • di Vecchio Frac data: 20/01/2013 11:39:35

    Diverso tempo fa HarryBosch aveva realizzato un bellissimo esempio in cui venivano pescate delle immagini da una cartella di file. Se lo trovo lo riallego.
    Potresti comunque cercare l'istruzione LoadPicture sulla Guida e prendere uno spunto da li'.





  • di Vecchio Frac data: 20/01/2013 13:34:19

    Non l'ho trovato, quindi l'ho ricostruito :)
    Allego il file, è davvero semplice ma funziona bene.





  • di Julio data: 20/01/2013 22:36:51

    Molte grazie Vecchio Frac,
    non vedo l'ora di studiarmelo.
    Ti terrò aggiornato.

    Buona serata
    Julio



  • di Julio data: 24/01/2013 18:25:32

    Credo di sbagliare qualcosa, quando parte il programma compare la Userform con vari option button, appena ne seleziono uno appare il messaggio d'errore: "impossibile trovare il percorso" e mi rimanda al seguente codice:

    Image1.Picture = LoadPicture(ThisWorkbook.Path & "immagini" & s & ".jpg")

    Non riesco a trovare lal ogica della sintassi, mi puoi aiutare?
    Grazie
    Julio
     
    Option Explicit
    
    Private Sub OptionButton1_Click()
        set_image ActiveControl.ActiveControl.Caption
    End Sub
    
    Private Sub OptionButton2_Click()
        set_image ActiveControl.ActiveControl.Caption
    End Sub
    
    Private Sub OptionButton3_Click()
        set_image ActiveControl.ActiveControl.Caption
    End Sub
    
    Private Sub OptionButton4_Click()
        set_image ActiveControl.ActiveControl.Caption
    End Sub
    
    Private Sub OptionButton5_Click()
        set_image ActiveControl.ActiveControl.Caption
    End Sub
    
    Private Sub OptionButton6_Click()
        Image1.Picture = LoadPicture("")
    End Sub
    
    Private Sub set_image(s As String)
        Image1.Picture = LoadPicture(ThisWorkbook.Path & "immagini" & s & ".jpg")
    End Sub
    



  • di Julio data: 26/01/2013 15:51:50

    Dubbio: il nome del file .jpg deve essere:"s"?
    Ho messo il programma in Excel all'interno di una cartella nel desktop che si chiama:inserire immagini.
    All'interno di:"inserire immagini" ho realizzato una cartella che si chiama:"immagini" al suo interno ho inserito una foto e l'ho nominata: s.jpg; ma l'errore:"impossibile trovare il file" appare ancora, dov'e' che sto sbagliando?

    Scusami non voglio essere insistente e' che vorrei capire l logica che c'e' dietro a queste istruzioni.

    Grazie e buon weekend

    J



  • di HarryBosch data: 26/01/2013 18:44:27

    "s" corrisponde al nome della Caption, ovvero il nome dell'OptionButton. E dovrà anche essere il nome dell'immagine da caricare.
    La foto in se si può chiamare in qualsiasi nome: l'importante è che poi assegni tale nome all'OptionButton corrispondente.

    Per quanto riguarda la cartella, l'istruzione
    ThisWorkbook.Path & "immagini"
    ti dice che dove stanno le immagini, la cartella si dovrà chiamare solo "Immagini".
    E il file Excel si dovrà trovare nello stesso percorso: quindi file Excel e cartella Immagini all'interno di una stessa cartella.

    Forse ti viene facile in questo modo, vedi il codice sotto che praticamente è una copia di quello di Vecchio Frac, con la differenza che il percorso della cartella Immagini lo devi inserire nel codice ( e quindi puoi mettere questa cartella dove vuoi) e che i nomi delle immagini li devi scrivere nel codice (ovviamente devono corrispondere!).

    Ti allego un file dove ho inserito due Userform, una con il codice di VecchioFrac e una con quello sotto... così magari mici torna utile anche per le prossime occasioni ^_^

    Ps: prova entrambe le istruzioni:
    Me.Image1.PictureSizeMode = fmPictureSizeModeStretch
    'Me.Image1.PictureSizeMode = fmPictureSizeModeZoom
    così verifichi quale delle due imposta meglio le tue immagini.


     
    Option Explicit
    'inserisci il percorso dove risiedono le immagini che vuoi caricare
    Const percorso As String = "C:UsersVanniEXCEL-VBAForumJulioimmagini"
    
    Private Sub OptionButton1_Click()
        carica ("A real live one.jpg")
    End Sub
    
    Private Sub OptionButton2_Click()
        carica ("Fear of the dark.jpg")
    End Sub
    
    Private Sub OptionButton3_Click()
        carica ("Live after death.jpg")
    End Sub
    
    Function carica(nomefoto)
        Me.Image1.Picture = LoadPicture(percorso & "" & nomefoto)
        Me.Image1.PictureSizeMode = fmPictureSizeModeStretch
        'Me.Image1.PictureSizeMode = fmPictureSizeModeZoom
    End Function



  • di Vecchio Frac data: 26/01/2013 21:11:40

    Più modi diversi di interpretare la stessa soluzione :)
    L'unica cosa che non avevo spiegato, ma mi pareva accessibile, è che il file di immagine doveva chiamarsi con la stessa etichetta dell'option button, il trucchetto di ActiveControl.ActiveControl.Caption funzionava egregiamente; il primo ActiveControl si riferisce al frame che contiene gli Option button, il secondo all'Option button che è stato cliccato, del quale viene recuperato il Caption... il resto è intuitivo.





  • di Julio data: 27/01/2013 08:11:27

    Grazie, per la spiegazione, e' tutto molto interessante.

    Non vedo l'ora di provarlo.

    Grazie ancora.
    Julio