È soltanto un Pokémon con le armi o è un qualcosa di più? Vieni a parlarne su Award & Oscar!
 
Pagina precedente | 1 2 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

inserire Macro per associare immagine ad una cella

Ultimo Aggiornamento: 13/12/2017 18:54
Post: 1
Registrato il: 25/11/2017
Età: 48
Utente Junior
97-2004
OFFLINE
25/11/2017 19:13

Buonasera,
avrei bisogno di una aiutino.
Non ricordo come inserire una macro in un foglio excel , per inserire in modo automatico le immagini di un prodotto, è un listino in cui devo associare l'immagine al prodotto.
Le immagini sono nominate con il codice articolo es. ARG50 codice prodotto e l'immagine ARG50.jpg
Allego il file e vi ringrazio in anticipo , è tre giorni che provo ma sbaglio qualcosa.
Uso un mac e forse è per questo.Versione Excel 97-2004
GRAZIE MILLE
giorgia
Post: 4.011
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
25/11/2017 20:41

se è tre giorni che ci provi qualche riga di codice avrai scritto, cosa ? inoltre non hai detto dove si trovano le immagini.
[Modificato da patel45 25/11/2017 20:42]

----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Post: 1
Registrato il: 25/11/2017
Età: 48
Utente Junior
97-2004
OFFLINE
25/11/2017 21:42

Re:
patel45, 25/11/2017 20.41:

se è tre giorni che ci provi qualche riga di codice avrai scritto, cosa ? inoltre non hai detto dove si trovano le immagini.




Il File l'ho allegato, non si vede ? le immagini sono in una cartella sul desktop. Il codice l ho trovato in internet ma nn funziona , non conosco VBA. Per cui è tre giorni che cerco una soluzione.

Grazie mille

Post: 4.012
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
26/11/2017 09:01

non conosci il vba, ma vuoi impararlo ? o ti interessa risolvere questo problema e basta ? puo darsi che il codice che hai trovato debba essere adattato al tuo caso ed io potrei aiutarti a farlo.
[Modificato da patel45 26/11/2017 09:03]

----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Post: 2
Registrato il: 25/11/2017
Età: 48
Utente Junior
97-2004
OFFLINE
26/11/2017 09:37

Re:
patel45, 26/11/2017 09.01:

non conosci il vba, ma vuoi impararlo ? o ti interessa risolvere questo problema e basta ? puo darsi che il codice che hai trovato debba essere adattato al tuo caso ed io potrei aiutarti a farlo.




Mi interessa risolvere il problema perché è urgente.
Ecco il codice :

Sub InsImg()
Application.ScreenUpdating = False
ActiveSheet.Shapes.SelectAll
Selection.Delete
mPath = ActiveWorkbook.Path
r = 2 ' riga inizio prodotti
Lr = Range("A" & Rows.Count).End(xlUp).Row ' ultima riga da analizzare
For i = r To Lr
mFoto = Cells(i, 1)

If Len(mFoto & "") <> 0 Then ' se c'e' il nome prodotto
If Dir(mPath & "\" & mFoto & ".jpg") <> "" Then ' se la foto esiste
' inserisce foto e adatta a dimensioni cella/colonna B
With ActiveSheet.Pictures.Insert(mPath & "\" & mFoto & ".jpg")
'NOTA: in blu per centrare la foto nelle celle (puoi ovviamente variare), altrimenti vengono una attaccata all'altra
.Top = Range("B" & i).Top + 5
.Left = Range("B" & i).Left + 5
.Height = Range("B" & i).Height - 10
.Width = Range("B" & i).Width - 10
End With
End If
End If
Next i
Application.ScreenUpdating = True
End Sub


grazie mille
Post: 4.013
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
26/11/2017 10:16

non posso testare in mancanza delle foto, ma secondo me devi correggere la riga
mFoto = Cells(i, 1)
in
mFoto = Cells(i, "B")
e sostituire B con C nelle righe
         .Top = Range("B" & i).Top + 5
         .Left = Range("B" & i).Left + 5
         .Height = Range("B" & i).Height - 10
         .Width = Range("B" & i).Width - 10

e A con B nella riga
Lr = Range("A" & Rows.Count).End(xlUp).Row
ovviamente il file excel deve stare nella stessa cartella delle foto.

La macro che hai copiato è fatta per i dati che partono dalla colonna A e non dalla B
[Modificato da patel45 26/11/2017 10:38]

----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Post: 3
Registrato il: 25/11/2017
Età: 48
Utente Junior
97-2004
OFFLINE
26/11/2017 11:13

Re:
patel45, 26/11/2017 10.16:

non posso testare in mancanza delle foto, ma secondo me devi correggere la riga
mFoto = Cells(i, 1)
in
mFoto = Cells(i, "B")
e sostituire B con C nelle righe
         .Top = Range("B" & i).Top + 5
         .Left = Range("B" & i).Left + 5
         .Height = Range("B" & i).Height - 10
         .Width = Range("B" & i).Width - 10

e A con B nella riga
Lr = Range("A" & Rows.Count).End(xlUp).Row
ovviamente il file excel deve stare nella stessa cartella delle foto.

La macro che hai copiato è fatta per i dati che partono dalla colonna A e non dalla B



Grazie
ho provato ma mi da l'errore che ti allego. Le foto sono nella stessa cartella del Excel cartella chiamata Prodotto.
ti allego anche la foto
grazie ancora
Post: 4.014
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
26/11/2017 11:45

la modifica è questa
in
mFoto = Cells(i, "B")
tu hai scritto B senza virgolette

----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Post: 4
Registrato il: 25/11/2017
Età: 48
Utente Junior
97-2004
OFFLINE
26/11/2017 12:04

Re:
patel45, 26/11/2017 11.45:

la modifica è questa
in
mFoto = Cells(i, "B")
tu hai scritto B senza virgolette



Fatto , ma mi da un altro errore.

" Dispositivo non disponibile "
Allego errore

grazie mille


Post: 4.016
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
26/11/2017 12:22

non avevo notato che usi il mac, credo che tu debba modificare il backslash \ in slash / quindi
If Dir(mPath & "/" & mFoto & ".jpg") <> "" Then 
With ActiveSheet.Pictures.Insert(mPath & "/" & mFoto & ".jpg") 

----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Post: 5
Registrato il: 25/11/2017
Età: 48
Utente Junior
97-2004
OFFLINE
26/11/2017 12:32

Re:
patel45, 26/11/2017 12.22:

non avevo notato che usi il mac, credo che tu debba modificare il backslash \ in slash / quindi
If Dir(mPath & "/" & mFoto & ".jpg") <> "" Then 
With ActiveSheet.Pictures.Insert(mPath & "/" & mFoto & ".jpg") 




Nulla , stesso errore , boh !
Post: 6
Registrato il: 25/11/2017
Età: 48
Utente Junior
97-2004
OFFLINE
26/11/2017 12:52

Re: Re:
GIORGIA.17, 26/11/2017 12.32:




Nulla , stesso errore , boh !




E' possibile che MAC non riconosca qualche segno , tipo le apici?
grazie
Post: 4.017
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
26/11/2017 13:47

Il problema non sono gli apici, ma l'organizzazione del disco (filesystem) diversa da win. La tua macro dopo le modifiche funziona perfettamente sul mio pc con win. Per cercare di risolvere prova questo codice e lancialo con F8 che permette l'esecuzione, step by step, quando ottieni l'errore posiziona il mouse sulle varie variabili e segnati il loro valore, quelle importanti sono:
mPath, mFoto, percorsofoto
Sub InsImg()
ActiveSheet.Shapes.SelectAll
Selection.Delete
mPath = ActiveWorkbook.Path
r = 2 ' riga inizio prodotti
Lr = Range("B" & Rows.Count).End(xlUp).Row ' ultima riga da analizzare
For i = r To Lr
  mFoto = Cells(i, "B")
  If Len(mFoto & "") <> 0 Then ' se c'e' il nome prodotto
    percorsofoto = mPath & "/" & mFoto & ".jpg"
    If Dir(percorsofoto) <> "" Then 
       With ActiveSheet.Pictures.Insert(percorsofoto)
         .Top = Range("C" & i).Top + 5
         .Left = Range("C" & i).Left + 5
         .Height = Range("C" & i).Height - 10
         .Width = Range("C" & i).Width - 10
       End With
    End If
  End If
Next i
End Sub

lancia anche questa sub
sub a
msgbox (ActiveWorkbook.Path & Application.PathSeparator)
end sub 

e posta il risultato
[Modificato da patel45 26/11/2017 13:57]

----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Post: 7
Registrato il: 25/11/2017
Età: 48
Utente Junior
97-2004
OFFLINE
26/11/2017 15:14

Re:
patel45, 26/11/2017 13.47:

Il problema non sono gli apici, ma l'organizzazione del disco (filesystem) diversa da win. La tua macro dopo le modifiche funziona perfettamente sul mio pc con win. Per cercare di risolvere prova questo codice e lancialo con F8 che permette l'esecuzione, step by step, quando ottieni l'errore posiziona il mouse sulle varie variabili e segnati il loro valore, quelle importanti sono:
mPath, mFoto, percorsofoto
Sub InsImg()
ActiveSheet.Shapes.SelectAll
Selection.Delete
mPath = ActiveWorkbook.Path
r = 2 ' riga inizio prodotti
Lr = Range("B" & Rows.Count).End(xlUp).Row ' ultima riga da analizzare
For i = r To Lr
  mFoto = Cells(i, "B")
  If Len(mFoto & "") <> 0 Then ' se c'e' il nome prodotto
    percorsofoto = mPath & "/" & mFoto & ".jpg"
    If Dir(percorsofoto) <> "" Then 
       With ActiveSheet.Pictures.Insert(percorsofoto)
         .Top = Range("C" & i).Top + 5
         .Left = Range("C" & i).Left + 5
         .Height = Range("C" & i).Height - 10
         .Width = Range("C" & i).Width - 10
       End With
    End If
  End If
Next i
End Sub

lancia anche questa sub
sub a
msgbox (ActiveWorkbook.Path & Application.PathSeparator)
end sub 

e posta il risultato



Buongiorno ,
presa dallo sconforto ho provato la macro su un pc Window e funziona. Cercherò di modificarla per Mac se riesco
grazie veramente molto
Giorgia
Post: 4.018
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
26/11/2017 19:49

controlla il risultato di
sub a
msgbox (ActiveWorkbook.Path & Application.PathSeparator)
end sub

interessa anche a me sapere come risolvere su mac

----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Post: 8
Registrato il: 25/11/2017
Età: 48
Utente Junior
97-2004
OFFLINE
29/11/2017 11:42

Re:
patel45, 26/11/2017 19.49:

controlla il risultato di
sub a
msgbox (ActiveWorkbook.Path & Application.PathSeparator)
end sub

interessa anche a me sapere come risolvere su mac



Ciao Patel45
su mac ci sto lavorando.
Ora per poter mandare il file excel in modo che possano vedere le foto come posso fare ?
grazie
Giorgia
Post: 4.024
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
29/11/2017 13:03

non capisco la domanda, a chi lo vuoi mandare e come ?

----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Post: 9
Registrato il: 25/11/2017
Età: 48
Utente Junior
97-2004
OFFLINE
29/11/2017 14:16

Re:
patel45, 29/11/2017 13.03:

non capisco la domanda, a chi lo vuoi mandare e come ?




Devo mandare il file excel via email ma se sposto il file le immagini non si vedono più
grazie mille
G.
Post: 4.026
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
29/11/2017 16:54

invece del metodo insert devi usare AddPicture, se non riesci riallega il file

----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Post: 10
Registrato il: 25/11/2017
Età: 48
Utente Junior
97-2004
OFFLINE
29/11/2017 17:11

Re:
patel45, 29/11/2017 16.54:

invece del metodo insert devi usare AddPicture, se non riesci riallega il file




lo devo mandare sempre da un mac - non riesco ad allegarlo ora ho inserito i prezzi
nn so che fare
per il momento ho mandato il file in pdf , ma possibile che non posso fare un copia e incolla ora con le immagine che non abbiano il collegamento??
grazie
Post: 3.565
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
29/11/2017 17:56

Ciao a tutti

Non ho seguito la discussione ma i destinatari dei file hanno il db delle immagini?

Se non ce l'hanno non può funzionare.

Alfredo
Post: 4.027
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
29/11/2017 18:38

Re: Re:
GIORGIA.17, 29/11/2017 17.11:


non riesco ad allegarlo ora ho inserito i prezzi

che c'entrano i prezzi ? li cancelli, salvi con altro nome e lo alleghi qui.
Poi non ho capito, dici che stai usando il mac, sei riuscita a far funzionare la macro sul mac ?


[Modificato da patel45 29/11/2017 18:47]

----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Post: 11
Registrato il: 25/11/2017
Età: 48
Utente Junior
97-2004
OFFLINE
29/11/2017 20:27

Re: Re: Re:
patel45, 29/11/2017 18.38:

che c'entrano i prezzi ? li cancelli, salvi con altro nome e lo alleghi qui.
Poi non ho capito, dici che stai usando il mac, sei riuscita a far funzionare la macro sul mac ?






Esatto , la persona a cui invio il file non ha la cartella immagini. No , uso il mac per mandare il file. Ho provato con un copia ed incolla ma devo ridimensionare tutte le immagini. allego il file
grazie
Post: 4.029
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
29/11/2017 20:39

ma non vedo la mia macro, cosa stai usando ?

----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Post: 12
Registrato il: 25/11/2017
Età: 48
Utente Junior
97-2004
OFFLINE
30/11/2017 16:05

Re:
patel45, 29/11/2017 20.39:

ma non vedo la mia macro, cosa stai usando ?




Questa è la macro inserita :
ho copiato quella che mi ha indicato con le modifiche della colonna:
Sub InsImg()
Application.ScreenUpdating = False
ActiveSheet.Shapes.SelectAll
Selection.Delete
mPath = ActiveWorkbook.Path
r = 2 ' riga inizio prodotti
Lr = Range("B" & Rows.Count).End(xlUp).Row ' ultima riga da analizzare
For i = r To Lr
mFoto = Cells(i, "B")

If Len(mFoto & "") <> 0 Then ' se c'e' il nome prodotto
If Dir(mPath & "\" & mFoto & ".jpg") <> "" Then ' se la foto esiste
' inserisce foto e adatta a dimensioni cella/colonna C
With ActiveSheet.Pictures.Insert(mPath & "\" & mFoto & ".jpg")
'NOTA: in blu per centrare la foto nelle celle (puoi ovviamente variare), altrimenti vengono una attaccata all'altra
.Top = Range("C" & i).Top + 5
.Left = Range("C" & i).Left + 5
.Height = Range("C" & i).Height - 10
.Width = Range("C" & i).Width - 10
End With
End If
End If
Next i
Application.ScreenUpdating = True
End Sub
Post: 4.030
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
30/11/2017 17:15

prova questa
Sub Ins_Img()
Application.ScreenUpdating = False
ActiveSheet.Shapes.SelectAll
Selection.Delete
mPath = ActiveWorkbook.Path
r = 2 ' riga inizio prodotti
Lr = Range("B" & Rows.Count).End(xlUp).Row ' ultima riga da analizzare
For i = r To Lr
  mFoto = Cells(i, "B")
  If Len(mFoto & "") <> 0 Then ' se c'e' il nome prodotto
    fName = mPath & "\" & mFoto & ".jpg"
    If Dir(fName) <> "" Then ' se la foto esiste
    With Range("C" & i)
      Set imgIcon = ActiveSheet.Shapes.AddPicture(Filename:=fName, LinkToFile:=False, SaveWithDocument:=True, Left:=.Left + 2, Top:=.Top + 2, Width:=.Width - 4, Height:=.Height - 4)
    End With

    End If
  End If
Next i
Application.ScreenUpdating = True
End Sub

aspetto sempre la risposta a
sub a
msgbox (ActiveWorkbook.Path & Application.PathSeparator)
end sub
da eseguire sul mac che permetterebbe di capire come far girare la macro sul mac
[Modificato da patel45 30/11/2017 17:15]

----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Post: 13
Registrato il: 25/11/2017
Età: 48
Utente Junior
97-2004
OFFLINE
01/12/2017 11:27

Re:
allego la risposta del Mac alla macro che mi hai indicato
grazie
Post: 4.031
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
01/12/2017 12:26

finalmente ! allora basta sostituire il carattere \ con :

----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Post: 14
Registrato il: 25/11/2017
Età: 48
Utente Junior
97-2004
OFFLINE
01/12/2017 14:33

Re:
patel45, 01/12/2017 12.26:

finalmente ! allora basta sostituire il carattere \ con :




buondi
la macro ha funzionato ma poi si è bloccata, fino a quando non ha trovato una foto mancante. In alcuni casi le foto non ci sono. per cui dovrebbe riuscire a proseguire ed aggiungetele altre.
Ho modificato \ con i :

grazie

allego errore
Post: 15
Registrato il: 25/11/2017
Età: 48
Utente Junior
97-2004
OFFLINE
01/12/2017 14:45

Re:
allora mi chiedono il file con le immagini in formato csv ma la macro non mi funziona
grazie per suggerimenti
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 2 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 01:13. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com