Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[Excel 2013] Inserimento Immagini

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

Re: [Excel 2013] Inserimento Immagini

Postdi Anthony47 » 17/01/15 00:24

Come hai determinato che la macro "controlla anche l'inserimento che avviene in A1"?

Quanto alle immagini mancanti secondo me e' che in quei casi inserisci una immagine specifica di "Immagine Mancante".
Per questo userai questa versione della macro precedente:
Codice: Seleziona tutto
Sub Worksheet_Change(ByVal Target As Range)
    Dim mPath As String, mFoto As String, myArea As String, Cella As Range
'
myArea = "A2:A150"      '<< Le celle dove potrai scrivere nomi immagini
'
If Application.Intersect(Range(myArea), Target) Is Nothing Then Exit Sub
'
For Each Cella In Application.Intersect(Range(myArea), Target)
        On Error Resume Next
        ActiveSheet.Shapes("FOTO_DA_" & Cella.Address(0, 0)).Delete
        On Error GoTo 0
    If Cella.Value <> "" Then
            mPath = "C:\TempFoto" ' <<===== QUI scrivi il percorso ove hai le tue foto
            mFoto = Cella.Value
'**            If Dir(mPath & "\" & mFoto & ".jpg") <> "" Then ' Si controlla se la foto esiste
            If Dir(mPath & "\" & mFoto & ".jpg") = "" Then mFoto = "Missing" ' <<** Se foto non esiste inserire foto di Riempimento
               
                Application.ScreenUpdating = False
                With ActiveSheet.Pictures.Insert(mPath & "\" & mFoto & ".jpg")
                    .Top = Cella.Offset(0, 1).Top + 5
                    .Left = Cella.Offset(0, 1).Left + 5
'                        .Height = Cella.Offset(0, 1).Height - 10
'                        .Width = Cella.Offset(0, 1).Width - 10
                    .Name = "FOTO_DA_" & Cella.Address(0, 0)
                End With
                On Error Resume Next
                With ActiveSheet.Shapes("FOTO_DA_" & Cella.Address(0, 0))
                    .LockAspectRatio = True
                    .Height = Cella.Height - 10
                    If .Width > Cella.Offset(0, 1).Width Then .Width = Cella.Offset(0, 1).Width - 10  '***
                End With
                On Error GoTo 0
               
                Application.ScreenUpdating = True
'**            Else
'**                MsgBox ("Immagine non trovata: " & Cella.Value) ' <<====== QUI scrivi il messaggio che vuoi sia inviato
'**            End If
    End If
Next Cella
End Sub

Le righe che cominciano con '** sono state eliminate; la riga marcata <<** e' stata aggiunta, e va personalizzata col nome dell' immagine generica che verra' inserita in assenza della foto specifica; questa immagine deve essere presente nella directtory delle immagini.

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: 13891
Iscritto il: 21/03/06 16:03
Località: Ivrea

Sponsor
 

Re: [Excel 2013] Inserimento Immagini

Postdi saxas » 18/01/15 10:21

Così è perfetto, tantissimi grazie
Win10 - Office 2016 Ita
saxas
Utente Junior
 
Post: 48
Iscritto il: 14/11/13 16:58

Re: [Excel 2013] Inserimento Immagini

Postdi saxas » 18/01/15 11:53

Spero Ultima richiesta :eeh:
si può facendo doppio click sull'immagine ingrandirla e successivamente farla tornare selle dimensioni iniziali?
Grazie
Win10 - Office 2016 Ita
saxas
Utente Junior
 
Post: 48
Iscritto il: 14/11/13 16:58

Re: [Excel 2013] Inserimento Immagini

Postdi saxas » 02/02/15 23:16

Anthony47 ha scritto:Come hai determinato che la macro "controlla anche l'inserimento che avviene in A1"?



nella colonna delle foto, nella prima riga (riga dell'intestazione) appare la foto minuscola dell'immagine tipo "Assente"

ho cambiato un pò la macro riadattandola ad altre mie esigenze, ma mi son bloccato
volevo inserire un userform o msgbox con 4 possibilità di scelta dell'area da cui prelevare il nome delle immagini
codice useform
Codice: Seleziona tutto
Private Sub CommandButton1_Click()
MyAreaTip = 1     
End Sub
Private Sub CommandButton2_Click()
MyAreaTip = 2   
End Sub
Private Sub CommandButton3_Click()
MyAreaTip = 3   
End Sub
Private Sub CommandButton4_Click()
MyAreaTip = 0   
End Sub


codice Worksheet_Change
Codice: Seleziona tutto
SceltaFotoColonna.Show False 'richiama la userform

    Select Case MyAreaTip
        Case 0
                Goto Fine
        Case 1
            myArea = "A2:A" & EndRow     '<< Le celle dove potrai scrivere nomi immagini
            Sposta = 7
        Case 2
            myArea = "C2:C" & EndRow     '<< Le celle dove potrai scrivere nomi immagini
            Sposta = 5
        Case 3
            myArea = "Z2:Z" & EndRow     '<< Le celle dove potrai scrivere nomi immagini
            Sposta = -18
    End Select


una macro precedente inserisce rigo per rigo tutti i nomi delle immagini nelle varie colonne, e quando parte la userform va subito in debug con la dicitura "Form già Visualizzato. Impossibile visualizzarlo a scelta Obbligatoria"
come posso aggirare il problema?
grazie
Win10 - Office 2016 Ita
saxas
Utente Junior
 
Post: 48
Iscritto il: 14/11/13 16:58

Precedente

Torna a Applicazioni Office Windows


Topic correlati a "[Excel 2013] Inserimento Immagini":


Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti