Richiamare immagine esterna al foglio excel

Anonimo
2013-05-12T12:08:16+00:00

Ho un file excel

all'interno ho un foglio con un elenco di prodotti, prezzo e immagini

(meglio immagini sul foglio excel o in una cartella dove e' salvato anche il foglio excel?)

Su un altro foglio voglio che in base al valore scelto nella lista prodotti ( lista men ua tendina dove scelgo un prodotto)  mi prende i dati del prezzo (usando cerca vert) ed inoltre mi deve prendere l'immagine relativa al prodott ( magari imamgine salvata nel directory dove e' salvato il file excel)

Mi domando: le immagini relative ad ogni prodotto devono essere sul foglio excel o possono essere in una cartella con magari il nome del prodotto, in modo tale che quando seleziono il prodotto dalla lista automaticamente mi carica l-immagine corrispondente.

Grazie Mille Lorenzo

Esempio: Lista nel foglio Prodotti dalla cella A1:C5

Foglio Output, scelgo prodotto dalla lista e cerca il valore prezzo ed immagini, e carica i dati corrispondenti....

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2013-05-15T12:06:39+00:00

Volevo chiederti come mai usi index? non e' meglio vlookup?

Ciao Lorenzo,

nell'attesa che tu pubblichi il file ...

La casella combinata è già di per sé una ... ricerca e restituisce nella cella associata ad essa, la posizione della selezione all'interno dell'intervallo di ricerca, cosicché è sufficiente adoperare quel riferimento con la funzione indice/index per ottenere i valori cercati. In buona sostanza, utilizzare cerca.vert o analogo sarebbe un inutile doppione.

Ciao,

Andrea.

La risposta è stata utile?

0 commenti Nessun commento

26 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2013-08-19T08:33:08+00:00

    ciao, ho provato ad inserire il tuo codice mi da errore, inserisco quello in MAN, ma ricevo errore di debug....inoltre ho un altro codice in modulo questo:

    Option Explicit

    Public Sub m()

        Dim sh As Worksheet

        Dim shp As Shape

        Set sh = ThisWorkbook.Worksheets("output")

        With sh

            .Range("A7:B7").Value = ""

            For Each shp In .Shapes

                If shp.Left = .Range("C1").Left Then

                    shp.Delete

                End If

            Next

        End With

        Set sh = Nothing

    End Sub

    e poi ho iltuo nel foglio MAN

    Private Sub Worksheet_Change(ByVal Target As Range)

    Dim rFile As Range, rImage As Range

    Dim sImageFile As String

    '---------- adatta in base alle tue esigenze

    Set rFile = Range("F1")     ' cella contenente il nome del file

    Set rImage = Range("C1")    ' top-left cell destinazione immagine

    If Not Intersect(Target, Range("A7:B7")) Is Nothing Then

    '---------- cancella le immagini nel range di destinazione

    Dim pic As Picture

    For Each pic In ActiveSheet.Pictures

    If Not Intersect(pic.TopLeftCell, rImage) Is Nothing Then pic.Delete

    Next

    Set pic = Nothing

    '---------- inserisce immagine nel range di destinazione

    If Not IsError(rFile.Value) Then

    sImageFile = ThisWorkbook.Path & "\MAN" & rFile.Value

    If Len(Dir(sImageFile)) Then

    With ActiveSheet.Pictures.Insert(sImageFile)

    .Top = rImage.Top

    .Left = rImage.Left

    End With

    e non mi va purtroppo.... ;(

    grazie mille super gentile :)

    Ciao Lorenzo,

    sostituirei il codice presente nel modulo del foglio MAN con il seguente. Credo non servano spiegazioni!

    Andrea.


    Private Sub Worksheet_Change(ByVal Target As Range)

    Dim rFile As Range, rImage As Range

    Dim sImageFile As String

    '---------- adatta in base alle tue esigenze

    Set rFile = Range("F1")     ' cella contenente il nome del file

    Set rImage = Range("C1")    ' top-left cell destinazione immagine

    If Not Intersect(Target, Range("A7:B7")) Is Nothing Then

    '---------- cancella le immagini nel range di destinazione

    Dim pic As Picture

    For Each pic In ActiveSheet.Pictures

    If Not Intersect(pic.TopLeftCell, rImage) Is Nothing Then pic.Delete

    Next

    Set pic = Nothing

    '---------- inserisce immagine nel range di destinazione

    If Not IsError(rFile.Value) Then

    sImageFile = ThisWorkbook.Path & "\MAN" & rFile.Value

    If Len(Dir(sImageFile)) Then

    With ActiveSheet.Pictures.Insert(sImageFile)

    .Top = rImage.Top

    .Left = rImage.Left

    End With

    End If

    End If

    End If

    Set rFile = Nothing

    Set rImage = Nothing

    End Sub


    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2013-08-17T13:36:10+00:00

    grazie mille super gentile :)

    Ciao Lorenzo,

    sostituirei il codice presente nel modulo del foglio MAN con il seguente. Credo non servano spiegazioni!

    Andrea.


    Private Sub Worksheet_Change(ByVal Target As Range)

    Dim rFile As Range, rImage As Range

    Dim sImageFile As String

    '---------- adatta in base alle tue esigenze

    Set rFile = Range("F1")     ' cella contenente il nome del file

    Set rImage = Range("C1")    ' top-left cell destinazione immagine

    If Not Intersect(Target, Range("A7:B7")) Is Nothing Then

    '---------- cancella le immagini nel range di destinazione

    Dim pic As Picture

    For Each pic In ActiveSheet.Pictures

    If Not Intersect(pic.TopLeftCell, rImage) Is Nothing Then pic.Delete

    Next

    Set pic = Nothing

    '---------- inserisce immagine nel range di destinazione

    If Not IsError(rFile.Value) Then

    sImageFile = ThisWorkbook.Path & "\MAN" & rFile.Value

    If Len(Dir(sImageFile)) Then

    With ActiveSheet.Pictures.Insert(sImageFile)

    .Top = rImage.Top

    .Left = rImage.Left

    End With

    End If

    End If

    End If

    Set rFile = Nothing

    Set rImage = Nothing

    End Sub


    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2013-08-17T12:24:15+00:00

    grazie mille super gentile :)

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2013-08-17T10:39:35+00:00

    ...

    starno, perchè nel file NEW, ho un foglio MAN, dove in a7 (merge di a7 e b7) inserisco codice numerico, e il file fa un vlookup dandomi risultato in a2, al tempo stesso ho fatto un concatena in f1 del nome del file con estensione, che corrisponde all immagine nella cartella MAN... ho controllato queste cose le caselle, ovviamente in C1 verrà caricata l immagine...provo a seguire le tue istruzioni....

    grazie mille

    Scusa ho scaricato il file sbagliato.

    Poi lo correggo,

    Andrea.

    La risposta è stata utile?

    0 commenti Nessun commento