| | 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 | |
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 | |
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 | |
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 | |
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 | |
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 | |
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 | |
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 | |
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 | |
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 | |
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 | |
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 | |
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 | |
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 | |
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 | |
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 | |
allora mi chiedono il file con le immagini in formato csv ma la macro non mi funziona
grazie per suggerimenti |
|
|