Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Excel inserimento automatico 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

Excel inserimento automatico immagine

Postdi Fpas » 17/10/14 12:38

Buongiorno a tutti e complimenti per il vostro impegno, la serietà e la disponibilità.
Vi leggo molto spesso e tantissime volte mi avete risolto problemi.

Vorrei però un aiuto su una macro che ho inserito all'interno di un fogli excel.

Utilizzando un codice, ovviamente trovato su questo forum, ho creato la seguente macro per inserimento automatico delle immagini.

Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)

ListaF = "C10:C12"
For Each Cella In Target
If Not Application.Intersect(Cella, Range(ListaF)) Is Nothing Then
    On Error Resume Next
        ActiveSheet.Shapes("FOTO_DA_" & Cella.Address(0, 0)).Delete
    On Error GoTo 0
    Cella.Select
    If Dir("C:\Users\XXXXXXXX\xxxxxx\" & Cella.Text & ".jpg") = "" Then    '<1
    ActiveSheet.Pictures.Insert("C:\Users\XXXXXXXX\xxxxxx\image").Select  '<2
    Else
    ActiveSheet.Pictures.Insert("C:\Users\XXXXXXXX\xxxxxx\" & Cella.Text & ".jpg").Select '<1
    End If
    Selection.Name = "FOTO_DA_" & Cella.Address(0, 0)
    Selection.ShapeRange.Height = 79
    If Selection.ShapeRange.Width > 150 Then
    Selection.ShapeRange.Width = 150
    End If
   
    'PER POSIZIONARE L'IMMAGINE
    Selection.ShapeRange.Left = Cella.Offset(0, 8).Left - Selection.ShapeRange.Width / 1 + Cella.Offset(0, 8).Width / 1
    Selection.ShapeRange.Top = Cella.Offset(0, 0).Top - Selection.ShapeRange.Height / 1 + Cella.Offset(0, 8).Height / 1
       
    Cella.Select
End Sub


In pratica in base ad una determinata selezione in una cella (nel mio caso C10, C11 o C12), la macro mi ripropone la corrispondente immagine in una ben precisata posizione rispetto alla cella di selezione.
E tutto sembra funzionare bene.

a questo punto vi chiedo:
1) è abbastanza pulito il codice? o si possono fare miglioramenti?
2) è possibile integrare il codice con una stringa che annulli semplicemente l'immagine in caso di selezione vuota? al momento excel va, giustamente, in errore non riuscendo ad identificare un'immagine corrispondente alla cella vuota.

spero di essere stato abbastanza chiaro
grazie mille

Fpas
Francesco

Win7 + Office 2007 Ita
Fpas
Newbie
 
Post: 7
Iscritto il: 17/10/14 12:00

Sponsor
 

Re: Excel inserimento automatico immagine

Postdi Anthony47 » 18/10/14 02:27

L' intervento piu' semplice e' modificare le righe
Cella.Select
If Dir("C:\Users\XXXXXXXX\xxxxxx\" & Cella.Text & ".jpg") = "" Then '<1

in:
Codice: Seleziona tutto
    Cella.Select
If Cella.Text = "" then myPic = "zczczc.jpg" else myPic = Cella.Text & ".jpg"
    If Dir("C:\Users\XXXXXXXX\xxxxxx\" & myPic) = "" Then    '<1


Presuppone che tu NON ABBIA un' immagine chiamata zczczc.jpg.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13903
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel inserimento automatico immagine

Postdi Fpas » 20/10/14 10:05

Anthony47 ha scritto:L' intervento piu' semplice e' modificare le righe
Cella.Select
If Dir("C:\Users\XXXXXXXX\xxxxxx\" & Cella.Text & ".jpg") = "" Then '<1

in:
Codice: Seleziona tutto
    Cella.Select
If Cella.Text = "" then myPic = "zczczc.jpg" else myPic = Cella.Text & ".jpg"
    If Dir("C:\Users\XXXXXXXX\xxxxxx\" & myPic) = "" Then    '<1


Presuppone che tu NON ABBIA un' immagine chiamata zczczc.jpg.

Ciao


Buongiorno Anthony
grazie mille per la risposta.

modificando il codice nel modo da te proposto, non otterrò comunque un errore nel momento in cui annullo il valore nella cella di origine?
o forse il tuo è un consiglio relativo alla mia prima richiesta (pulizia codice)?

grazie
Fpas
Francesco

Win7 + Office 2007 Ita
Fpas
Newbie
 
Post: 7
Iscritto il: 17/10/14 12:00

Re: Excel inserimento automatico immagine

Postdi Anthony47 » 20/10/14 22:17

Se il codice lo hai preso da questo sito non capisco che miglioramenti gli si possa apportare :D :D
La modifica serve a gestire l' errore, devi provarlo tu.

Ciao, fai sapere.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13903
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel inserimento automatico immagine

Postdi Fpas » 21/10/14 08:57

Anthony47 ha scritto:Se il codice lo hai preso da questo sito non capisco che miglioramenti gli si possa apportare :D :D


ci mancherebbe. :) :D era solo per ulteriore supporto!!!
funziona ed anche alla grandissima.

Anthony47 ha scritto: La modifica serve a gestire l' errore, devi provarlo tu.


ho fatto un pò di prove, ma mi restituisce comunque l'errore, probabilmente perché non trova il file zczczc.jpg
quindi (grezzamente ed artigianalmente) ho creato un jpg (zczczc.jpg) delle dimensioni adatte e completamente bianco.
quindi sulla selezione di cella vuota mi richiama zczczc.jpg che si piazza nella giusta posizione.

so che è una soluzione mooooolto grezza.
ma non sapevo cosa altro fare.

se ti viene qualcosa in mente sarei felice di provare.

grazie ancora per la tua disponibilità
Fpas
Francesco

Win7 + Office 2007 Ita
Fpas
Newbie
 
Post: 7
Iscritto il: 17/10/14 12:00


Torna a Applicazioni Office Windows


Topic correlati a "Excel inserimento automatico immagine":


Chi c’è in linea

Visitano il forum: Nessuno e 7 ospiti