| | Post: 26 | Registrato il: 29/05/2015
| Età: 35 | Utente Junior | 2007/2010/2013 | | OFFLINE | |
|
21/11/2017 11:08 | |
Buongiorno a tutti i maghi di questo forum!! :D
Sperando come sempre nel Vostro aiuto vi espongo il mio problema..
allora ho un file con della merce magazzino, con tutti i prodotti catalogati, ho per ogni prodotto una foto con relativo nome inserito nel file excel colonna (F) navigando online sono riuscito a trovare una macro che in base al nome della cella foto selezionata mi fa comparire l'immagine del prodotto SE disponibile
il problema e che il prodotto compare solamente se nella cella non ce inserito il formato .jpg di conseguenza dovrei rinominare tutte le celle ed eliminare l'estensione. ma io vorrei che lui cercasse l'intero file comprensivo di estensione in modo che se per un motivo o per l'altro il file non è un jpg ma un altra estensione (sempre immagine) lui me la faccia apparire, e sempre se possibile sarebbe COMODO che l'immagine venisse visualizzata selezionando la RIGA dell'articolo e non la CELLA col nome immagine, questo per semplificare la gestione del foglio facendo come riferimento al nome della foto ovviamente.
successivamente avrei necessità che si potesse aprire l'immagine se necessario, o cliccando sulla foto oppure in alternativa che mi generasse un collegamento ipertestuale per ogni foto in modo che vada ad aprirla.
vi allego i file di esempio , scusatemi se ho fatto una spiegazione confusionaria.. e grazie per l'aiuto che mi darete !!! |
|
| | Post: 4.008 | Registrato il: 13/03/2012
| Città: LIVORNO | Età: 78 | Utente Master | 2010 | | OFFLINE | |
|
21/11/2017 13:19 | |
prova questa senza mettere le estensioni
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("F2:F50")) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
On Error Resume Next
ActiveSheet.Shapes(1).Delete
aleft = 650
atop = 40
w = 120
h = 120
myfolder = ThisWorkbook.Path & "\"
myfile = myfolder & Target & "*"
ffile = Dir(myfile)
If ffile = "" Then ffile = myfolder & "Img_non_disponibile.jpg"
Application.ActiveSheet.Shapes.AddPicture ffile, False, True, aleft, atop, w, h
End Sub [Modificato da patel45 21/11/2017 13:20]
----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta |
| | Post: 26 | Registrato il: 29/05/2015
| Età: 35 | Utente Junior | 2007/2010/2013 | | OFFLINE | |
|
21/11/2017 15:31 | |
avevo gia provato questa soluzione senza aver successo in quanto mettendo l'asterisco non funziona :(
patel45, 21/11/2017 13.19:
prova questa senza mettere le estensioni
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("F2:F50")) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
On Error Resume Next
ActiveSheet.Shapes(1).Delete
aleft = 650
atop = 40
w = 120
h = 120
myfolder = ThisWorkbook.Path & "\"
myfile = myfolder & Target & "*"
ffile = Dir(myfile)
If ffile = "" Then ffile = myfolder & "Img_non_disponibile.jpg"
Application.ActiveSheet.Shapes.AddPicture ffile, False, True, aleft, atop, w, h
End Sub
|
| | Post: 4.009 | Registrato il: 13/03/2012
| Città: LIVORNO | Età: 78 | Utente Master | 2010 | | OFFLINE | |
|
21/11/2017 16:53 | |
l'hai provata la mia ? a me funziona perfettamente
----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta |
| | Post: 27 | Registrato il: 29/05/2015
| Età: 35 | Utente Junior | 2007/2010/2013 | | OFFLINE | |
|
21/11/2017 18:02 | |
patel45, 21/11/2017 16.53:
l'hai provata la mia ? a me funziona perfettamente
si, ho provato ma risponde sempre errore, selezionando debug mi evidenzia in giallo questa sezione di codice
Application.ActiveSheet.Shapes.AddPicture myfile, False, True, aleft, atop, w, h [Modificato da angeluskk 21/11/2017 18:03] |
| | Post: 28 | Registrato il: 29/05/2015
| Età: 35 | Utente Junior | 2007/2010/2013 | | OFFLINE | |
|
21/11/2017 18:09 | |
patel45, 21/11/2017 16.53:
l'hai provata la mia ? a me funziona perfettamente
Allora ho appena risolto impostandolo in questo modo
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("F2:F50")) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
ActiveSheet.Shapes.SelectAll
aleft = 650
atop = 40
w = 120
h = 120
myfolder = ThisWorkbook.Path & "\"
myfile = myfolder & Target & ""
If Dir(myfile) = "" Then myfile = myfolder & "Img_non_disponibile.jpg"
Application.ActiveSheet.Shapes.AddPicture myfile, False, True, aleft, atop, w, h
End Sub
adesso riesce a selezionarmi il file con .jpg nella cella. ora rimane il problema che vorrei che in base alla RIGA del prodotto potesse seleizonarmi l'immagine e se possibile creare un collegamente ipertestuale per aprire la foto del prodotto per intero |
| | Post: 29 | Registrato il: 29/05/2015
| Età: 35 | Utente Junior | 2007/2010/2013 | | OFFLINE | |
|
23/11/2017 09:06 | |
qualcuno ha qualche idea? :( almeno solo il discorso di dare ad ogni nome del foto il collegamento ipertestuale alla foto corrispondente, altrimenti su 3mila articoli dovrei farlo a mano e diventa bibblico il lavoro |
|
|