Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Creare macro per aprire una immagine

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Creare macro per aprire una immagine

Postdi Chicca Fi » 06/06/10 18:44

Buongiorno,
ho un grande problema, non avendo dimestichezza con il VBA.

Vi spiego in cosa consiste: per lavoro ho bisogno più volte il giorno di capire a quale prodotto si riferisce un determinato codice identificativo, composto da 6 caratteri numerici.
Dunque avrei bisogno di una macro che, dopo aver inserito in una cella predefinita (es. A1) il codice identificativo di un prodotto (es. 123456), mi apra in automatico l'immagine del prodotto stesso (come se fosse un collegamento ipertestuale). Questo per semplificare una ricerca che, se fatta manualmente, mi richiederebbe troppo tempo.

Infatti si tratta di più di 2000 immagini salvate tutte nella stessa cartella del pc. Ognuna è nominata con il proprio codice identificativo, ovvero quello che vorrei scrivere nella cella excel.

Non so proprio come fare, ma questa macro mi salverebbe da una ricerca che tutti i giorni mi richiede ore ed ore di pazienza.

Grazie mille!
Chicca Fi
Newbie
 
Post: 1
Iscritto il: 06/06/10 18:20

Sponsor
 

Re: Creare macro per aprire una immagine

Postdi Flash30005 » 06/06/10 20:25

Ciao Chicca Fi e benvenuto/a nel Forum

copia alcune immagini numerandole e inserendole nella cartella "ImmaginiChiccaFi" situata nella root di C:\ avrai così il percorso C:\ImmaginiChiccaFi (come noterai anche nel foglio cella B1)
(che potrai cambiare in un secondo momento)
poi usa questo file

la macro utilizzata e stata inserite nel codice del foglio1
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:A1")) Is Nothing Or Target = "" Then Exit Sub
Percorso = Worksheets("Foglio1").Range("B1").Value
Nfile = Worksheets("Foglio1").Range("A1").Value & ".jpg"
Dim X As Long
X = ShellExecute(hWnd, "Open", Percorso & Nfile, vbNullString, vbNullString, SW_NORMAL)
End Sub


e nel modulo
Codice: Seleziona tutto
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Public Const SW_NORMAL = 1

In B1 viene riportato il percorso delle immagini
e ad ogni variazione di A1 visualizzerai l'immagine richiesta
Se non accade nulla significa che hai digitato un nome immagine inesistente

Fai sapere
Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Creare macro per aprire una immagine

Postdi ricky53 » 06/06/10 23:21

Ciao,
prima di tutto benvenuta nel nostro forum.

Oltre a quanto consigliato da Flash (un caro saluto) ti propongo questa mia soluzione:
l'immagine da visualizzare viene inserita nel fiel XLS e, quando ne inserisci un'altra, la precedente viene cancellata

Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
    If Application.Intersect(Target, [A2]) Is Nothing Or Target = "" Then
        Exit Sub
    End If
   
    If [C1] <> "" Then
        ActiveSheet.Shapes([C1]).Delete
    End If
    Percorso = [B2]
    Nome_File = [A2] & ".jpg"
   
    [C1].Select
    ActiveSheet.Pictures.Insert(Percorso & Nome_File).Select
    [C1] = Selection.Name
End Sub


Dove:
1. in "A2" c'è la cella che contiene il codice del quale vuoi visualizzare l'immagine
2. in "B2" c'è il percorso ove l'immagine si trova
3. in "C1" viene posizionata l'immagine che vuoi visualizzare
4. in "C1" viene memorizzato il nome dell'immagine caricata per cancellarla prima di caricarne un'altra

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Creare macro per aprire una immagine

Postdi ricky53 » 07/06/10 00:35

Ciao,
ho aggiunto la gestione degli errori per immagine non trovata.
Prima non ti ho scritto che la macro va copiata selezionando VBAProject, Microsoft Oggetti Excel ed infine il foglio ove lavori.

Ecco il nuovo codicie che sostituisce il precedente:
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
    If Application.Intersect(Target, [A2]) Is Nothing Or Target = "" Then
        Exit Sub
    End If
   
    If [C1] <> "" Then
        ActiveSheet.Shapes([C1]).Delete
    End If
    Percorso = [B2]
    Nome_File = [A2] & ".jpg"
   
    [C1].Select
   
    On Error GoTo Errore
    ActiveSheet.Pictures.Insert(Percorso & Nome_File).Select
    [C1] = Selection.Name
    Exit Sub
Errore:
    [C1] = ""
    [A2].Select
    MsgBox "L'immmagine   '" & Nome_File & " '  non è presente nel percorso  '" & Percorso & "'"
End Sub


Buone prove.

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia


Torna a Applicazioni Office Windows


Topic correlati a "Creare macro per aprire una immagine":


Chi c’è in linea

Visitano il forum: Maury170419 e 18 ospiti