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

[Excel 2013] Inserimento Immagini

Postdi rmauro1969 » 14/02/15 15:49

Ciao, sono Mauro e sono nuovo del forum, ho trovato interessante la precedente discussione viewtopic.php?f=26&t=103687, da cui ho preso spunto (in tutta onestà "copiando" il codice consigliato) per ottenere in un mio file l' inserimento automatico di immagini. Avrei però alcuni chiarimenti da chiedere in quanto non sono per nulla esperto di questo linguaggio di programmazione ! :oops:

Nel file che ho impostato non viene riconosciuto il nome del file, quindi la query da errore perchè non trova l'immagine, quando, invece di copiare il nome del file e incollarlo o trascriverlo, il nome della cella viene inserito generandolo da una formula.
I nomi delle fotografie sono il risultato di un concatenamento di altre celle.

In pratica avrei bisogno di generare nella colonna nomi una serie di nomi di file semplicemente trascinando in giu la formula che concatena le altre celle e automaticamente si dovrebbero inserire le immagini relative.

Inoltre dovrei colorare il fondo della cella dove viene inserita l'immagine di nero.

Grazie per l'aiuto
Ciao
Mauro
rmauro1969
Utente Junior
 
Post: 19
Iscritto il: 14/02/15 15:36

Sponsor
 

Re: [Excel 2013] Inserimento Immagini

Postdi rmauro1969 » 14/02/15 16:23

Scusate, ho scoperto che l'errore di cui parlavo prim,a era semplicemente che il nome del file era diverso per un piccolo spazio, quindi ora funziona, mi servirebbe sapere come aggiungere e togliere la colorazione di nero della cella.
Un'altra domanda, sarebbe possibile lanciare la sub con un pulsante solo quando inseriti i nomi nelle celle e non far lavorare excel ogni vola che si scrive qualche cosa, in questo modo dovrebbe essere più veloce
Premendo il pulsante la sub dovrebbe controllare la colonna e se manca la foto inserirla oppure se manca il nome toglierla.

Grazie
Mauro
rmauro1969
Utente Junior
 
Post: 19
Iscritto il: 14/02/15 15:36

Re: [Excel 2013] Inserimento Immagini

Postdi Anthony47 » 15/02/15 17:20

Non so quale macro stai usando, quella che io suggerisco e' riportata in questo messaggio:
viewtopic.php?f=26&t=103687&start=20#p604377

Se vuoi lanciarla con un pulsante allora elimina la Sub Worksheet_Change dal "modulo di codice" del foglio di lavoro e inserisci in un nuovo "Modulo vba" lo stesso codice salvo sostituire questa parte iniziale
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)
'ETC ETC
con QUEST'ALTRA:
Codice: Seleziona tutto
Sub MettImm()
    Dim mPath As String, mFoto As String, myArea As String, Cella As Range
'
myArea = "A2:A150"      '<<< Le celle dove sono compilati i nomi immagini
'
For Each Range(myArea)
'ETC ETC

La riga marcata <<< va personalizzata come da commento.
Da excel: Alt-F11 per aprire l' editor delle macro; Menu /Inserisci /Modulo; copia il codice e incollalo nel frame di dx del nuovo modulo creato.
Poi crea un pulsante su foglio di lavoro (trovi questa forma in tab Sviluppo, gruppo Controlli, Inserisci, Controlli Modulo) e assegnagli la macro "geppo" (ti verra' fatta una domanda specifica nel ciclo di creazione del pulsante).
In questo modo potrai eseguire la macro al semplice premere del pulsante.

Non so a che cosa ti serve colorare in nero la cella che dovrebbe essere ricoperta dall' immagine, quindi al momento non ti suggerisco niente.

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

Re: [Excel 2013] Inserimento Immagini

Postdi rmauro1969 » 15/02/15 20:58

Grazie Anthony,
premesso che sono due giorni che provo a capirci qualche cosa del linguaggio VBA e di come usarlo con excel, quindi abbi pazienza ma sono proprio all'inizio e potrei non capire cose che a te sembreranno elementari e ovvi, comunque, ho provato a fare la modifica che mi hai proposto e ho fatto come sotto, ma avviando la query mi da errore. (Ho messo gli apici per le righe che mi dicevi di togliere)
Ti metto tutta la query:

Codice: Seleziona tutto
Sub MettImm()
    Dim mPath As String, mFoto As String, myArea As String, Cella As Range

'Sub Worksheet_Change(ByVal Target As Range)
       ' Dim mPath As String, mFoto As String, myArea As String, Cella As Range
    '
    myArea = "A12:A1048576"     '<< 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)
   For Each Range(myArea)
        On Error Resume Next
            ActiveSheet.Shapes("FOTO_DA_" & Cella.Address(0, 0)).Delete
        On Error GoTo 0
        If Cella.Value <> "" Then
                mPath = "F:\Backup disco D\Documenti Mauro\Immagini\Per vendita\004 Archivio foto inviate" ' <<===== QUI scrivi il percorso ove hai le tue foto
                mFoto = Cella.Value
                If Dir(mPath & "\" & mFoto & ".jpg") <> "" Then ' Si controlla se la foto esiste
                    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


Con la modifica che andremmo a fare la sub ricontrollerebbe tutte le volte tutta la colonna A ? Non vorrei che così invece di alleggerire le operazioni diventasse ancora più lento in quanto analizzerebbe tutte le celle ogni volta !
Inoltre vorrei capire come fare per inserire delle immagini di formato ridotto per non appesantire il file, non sò se si può fare con una sub senza doverlo fare prima nella cartella di salvataggio file usando altro programma.

Grazie
Mauro
rmauro1969
Utente Junior
 
Post: 19
Iscritto il: 14/02/15 15:36

Re: [Excel 2013] Inserimento Immagini

Postdi Anthony47 » 16/02/15 22:56

Nel codice che ti ho dato, a forza di sforbiciare, ho tagliato qualcosa di essenziale:
non For Each Range(myArea)
ma
For Each Cella in Range(myArea)
Ti confermo che con la nuova macro tutte le righe dell' intervallo impostato saranno scansionate per inserire l' immagine il cui nome e' in colonna A.
D'altra parte tu dici che i nomi immagine si formano tramite formula, quindi non e' detto che potresti sfruttare la Sub Worksheet_Change da cui siamo partiti.

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

Re: [Excel 2013] Inserimento Immagini

Postdi rmauro1969 » 17/02/15 21:05

Ho corretto il comando, ma con questa nuova logica di inserimento ancora non funziona:
la sub parte ma poi continua a lavorare senza apparentemente fare nulla e non si interrompe, penso che il motivo sia perchè analizza tutto il foglio fino all'ultima riga.
Non sò come si possa fare ! Bisognerebbe fargli capire quali celle analizzare in modo veloce e non inutile se non necessario, forse con un msgbox dove dargli il range di celle da valutare ?
Inoltre ho notato che, aprendo il file senza avere l'hard disk esterno collegato, non compare nessuna immagine, ma compare un messaggio con scritto che il file non viene trovato in quanto probabilmente spostato, però così significa che ogni volta che il file si apre deve caricare tutte le foto ? Quindi senza le l'hard disk collegato e con solo il file excel non si vedrebbe nulla !
Inoltre resta il problema delle dimensioni delle foto da ridurre. (Questo sarebbe risolvibile ridimensionandole prima con altro programma, bello sarebbe evitarlo)

Mi sa che ci sono troppi problemi, non sò se rinunciare ! Cosa suggerisci, abbandoniamo o ci si prova ? (Anche perchè il lavoro di concetto è soprattutto il tuo ! :roll: )

Ciao
Grazie
Mauro
rmauro1969
Utente Junior
 
Post: 19
Iscritto il: 14/02/15 15:36

Re: [Excel 2013] Inserimento Immagini

Postdi Anthony47 » 18/02/15 00:13

La tua richiesta era originariamente accodata a quest'altra discussione: viewtopic.php?f=26&t=103687
Li' viene chiaramente detto che c' e' un comportamento diverso tra versione e versione di Excel:
. . . a partire da XL2010 il metodo Insert crea un link all' immagine (che quindi non viene integrata nel file Excel) . . .

Da quello che dici mi pare che usi una versione 2010 o superiore, ma se non lo chiarisci tu io non lo indovino...

La macro che ti ho suggerito prevede che venga definito al suo interno l' area da cui prelevare i nomi file da inserire, quindi non "analizza il foglio fine a fine riga".
Purtroppo con quel che aggiungi non mi sono fatto un' idea di cosa sta' andando storto, ne' mi son fatto un'idea se sia possibile tornare a una macro di Worksheet_Change per inserire la singola immagine man mano che viene inserito un nome immagine.
Prova ad allegare un file dimostrativo, comprensivo di file di immagini campione, magari ne capiamo di piu'. Per come fare guarda qui: viewtopic.php?f=26&t=103893&p=605487#p605487
Nel file inserisci anche la tua versione di macro, magari spieghiamo anche altre cose.

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

Re: [Excel 2013] Inserimento Immagini

Postdi rmauro1969 » 19/02/15 20:28

Sicuramente mi sono spiegato male io, in ogni caso vorrei chiarire.
La mia versione di Excel è l'ultima e con questa inserivo le immagini nel file manualmente una per volta, semplicemente facendo inserisci immagine, per poi ridimensionarla alla grandezza desiderata e bloccandola alla cella.
Questo tipo di inserimento non crea un link alla foto, ma inserisce la fotografia fisica e quindi è sempre disponibile anche senza avere la cartella dove salvate le foto.(Anche con questa versione di excel)

Quello che interessa a me è semplicemente inserire velocemente allo stesso modo le foto e la cosa funziona perfettamente con la sub fatta in precedenza in questo post, anche se volevo migliorarla in alcune cose, i problemi però che riscontro facendo così sono:
Senza avere la cartella fisica dove salvati i file non si possono vedere le foto nel file di excel, quindi bisognerebbe fare una sub uguale a quello che faccio manualmente per una foto per volta.
Il file con parecchie foto, o meglio con parecchi link alle foto, diventa leggero come grandezza ma molto pesante nell'apertura e anche nello scorrimento/utilizzo in quanto probabilmente continua a cercare le fotografie nella relativa cartella usando i link inseriti. (Ho inserito circa 700 fotografie con la sub e successivamente il file è andato praticamente in blocco solo mettendo un filtro)

La macro che ti ho suggerito prevede che venga definito al suo interno l' area da cui prelevare i nomi file da inserire, quindi non "analizza il foglio fine a fine riga".

Io avevo inserito il range dalla riga 12 all'ultima 1048576, è per quello che la sub analizza tutta la colonna


Quindi se si riuscisse bisognerebbe:
Fare la sub in modo che inserisca le fotografie fisiche in dimensioni adatte alla cella e bloccata con la cella. (Non ho idea di come)
Ridurre alla dimensione minima la foto per non appesantire il file (Per questo avrei risolto salvando una copia ridotta in altra cartella)
Se possibile far partire la sub con un imputbox in modo da decidere per quali celle inserire le foto. (Penso sia abbastanza semplice)

Riporto qui la sub attuale, non saprei come fare per allegare alla chat un file (Ignoranza mia)

Ciao
Grazie
Mauro

Codice: Seleziona tutto
Sub Worksheet_Change(ByVal Target As Range)
        Dim mPath As String, mFoto As String, myArea As String, Cella As Range
    '
    myArea = "E12:E1048576"     '<< 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 = "F:\Backup disco D\Documenti Mauro\Immagini\Per vendita\004 Archivio foto inviate" ' <<===== QUI scrivi il percorso ove hai le tue foto
                mFoto = Cella.Value
                If Dir(mPath & "\" & mFoto & ".jpg") <> "" Then ' Si controlla se la foto esiste
                    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
rmauro1969
Utente Junior
 
Post: 19
Iscritto il: 14/02/15 15:36

Re: [Excel 2013] Inserimento Immagini

Postdi Anthony47 » 22/02/15 13:03

Ci sono due opzioni:
1) Far partire una macro quando una singola cella viene modificata (nb: "viene" modificata, non "si modifica" per effetto di una formula), in modo che una immagine corrispondente venga inserita nel foglio di lavoro.
Oppure
2) Avviare una macro che inserisce tutte le immagini che corrispondono a un certo elenco di celle; l' elenco di celle puo' essere (a)scritto nella macro (quindi "semi-fisso") o puo' corrispondere a un elenco che puo' essere (b)selezionato o (c)dichiarato dall' utente con vari metodi di input.

Sulla base di quanto dicesti nel primo messaggio il metodo 1 e' inapplicabile ("I nomi delle fotografie sono il risultato di un concatenamento di altre celle"); l'assenza di un file esemplificativo impedisce di capire se il metodo e' applicabile usando altri "agganci".
La Sub MettImm() che ti ho suggerito qualche giorno fa opera secondo il metodo 2a.
Gli hai dichiarato un intervallo di 1 milione di celle in cui puoi scrivere le immagini, quindi la macro controllera' un milione di celle e per questo impieghera' il suo tempo...

Volendo in controllare l' intervallo di celle da controllare, invece della riga
myArea = "A2:A150" '<< Le celle dove potrai scrivere nomi immagini
potresti inserire le istruzioni
Codice: Seleziona tutto
On Error Resume Next
Set mmArea = Application.InputBox("Seleziona l' Intervallo", , , , , , , 8)
On Error GoTo 0
If IsEmpty(mmArea) Then Exit Sub
myArea = mmArea.Address


Veniamo al problema successivo: le immagini non riultato "integrate" nel foglio ma solo "collegate", per cui se l' archivio immagini non e' disponibile viene solo evidenziato un "segnaposto".
Questo succede perche' a partire da XL2010 il "metodo Insert" (usato all' interno della Sub MettImm) si limita a creare un link all' immagine, non la inserisce realmente come faceva nelle versioni precedenti.
Per compatibilita' con le versioni successive useremo quindi ActiveSheet.Shapes.AddPicture, con gli adattamenti richiesti dalla sintassi di questo comando; quindi la nuova macro complessiva sara':
Codice: Seleziona tutto
Sub MettImmZZ()
    Dim mPath As String, mFoto As String, myArea As String, Cella As Range
Dim myT As Long, myL As Long, myH As Long
'
'myArea = "A2:A150"      '<< Le celle dove potrai scrivere nomi immagini
On Error Resume Next
'Qui si seleziona l' area in cui sono presenti i nomi Foto:
Set mmArea = Application.InputBox("Seleziona l' Intervallo coi Nomi Foto", , , , , , , 8)
On Error GoTo 0
If IsEmpty(mmArea) Then Exit Sub    'Nessuna selezione, abort
myArea = mmArea.Address
'
For Each Cella In Range(myArea)
    On Error Resume Next
        ActiveSheet.Shapes("FOTO_DA_" & Cella.Address(0, 0)).Delete
    On Error GoTo 0
    If Cella.Value <> "" Then
            mPath = "F:\Backup disco D\Documenti Mauro\Immagini\Per vendita\004 Archivio foto inviate" ' <<===== QUI scrivi il percorso ove hai le tue foto
            mFoto = Cella.Value
            If Dir(mPath & "\" & mFoto & ".jpg") <> "" Then ' Si controlla se la foto esiste
                Application.ScreenUpdating = False
                '
                myT = Cella.Top + 5
                myL = Cella.Offset(0, 1).Left + 5
                myH = Cella.Height - 10
                '
                Set CPic = ActiveSheet.Shapes.AddPicture(mPath & "\" & mFoto & ".jpg", False, True, myL, myT, True, True)
                CPic.LockAspectRatio = msoTrue
                CPic.ScaleHeight (myH / CPic.Height), msoTrue
                CPic.Name = "FOTO_DA_" & Cella.Address(0, 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
L' immagne viene ridimensionata sull' altezza della cella, mentre la larghezza rimane in proporzione all' originale.
In XL2010 il "peso" (in KB) dell' immagine salvata e' automaticamente proporzionato alla dimensione, non c' e' bisogno di ulteriori interventi.
Prova e fai sapere.

non saprei come fare per allegare alla chat un file (Ignoranza mia)
Hai letto con poca attenzione, quindi lo ripeto: Per come [allegare un file dimostrativo] guarda qui: viewtopic.php?f=26&t=103893&p=605487#p605487

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

Re: [Excel 2013] Inserimento Immagini

Postdi rmauro1969 » 22/02/15 15:50

Grazie Anthony !

Funziona perfettamente,
i file vengono allegati e si vedono anche senza la cartella collegata.
Vengono anche cancellati quando cancellato il nome come già funzionava in precedenza.

Direi che così mi sembra ok ! :D

Non ho allegato il file in quanto comunque ho semplicemente usato esattamente la tua ultima sub riportata in questo post. (In ogni caso avrei usato Google drive che penso possa funzionare come gli altri servizi segnalati, sarà per la prossima necessità)

Grazie ancora !
Ciao
Mauro
rmauro1969
Utente Junior
 
Post: 19
Iscritto il: 14/02/15 15:36

Re: [Excel 2013] Inserimento Immagini

Postdi rmauro1969 » 23/02/15 23:59

Ciao Anthony,
purtroppo ho riscontrato un problema :( , quando si mette un filtro, e quindi viene cambiata la sequenza delle righe che si visualizzano, le foto si incasinano, togliendolo ritornano ad essere nella posizione corretta.
La foto sembra ancorata alla cella nelle proprietà, è spuntato "Sposta ma non ridimensionare con le celle", io di solito spuntavo "Sposta e ridimensiona con le celle", non penso che faccia molta differenza se si lasciano le dimensioni della cella invariate, non capisco però allora perchè usando il filtro accade quanto ti ho segnalato.
:undecided:

Grazie
Ciao
Mauro
rmauro1969
Utente Junior
 
Post: 19
Iscritto il: 14/02/15 15:36

Re: [Excel 2013] Inserimento Immagini

Postdi Anthony47 » 24/02/15 02:05

Modifica in
Codice: Seleziona tutto
For Each Cella In Range(myArea).SpecialCells(xlCellTypeVisible)

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

Re: [Excel 2013] Inserimento Immagini

Postdi rmauro1969 » 24/02/15 20:29

Ora le foto si allineano correttamente, c'è però altro problema che non avevo testato, cancellando il nome ed eseguendo la sub per una sola cella la foto non viene cancellata.
Funziona solamente se si mette un range di celle maggiore di 1.

Mauro
rmauro1969
Utente Junior
 
Post: 19
Iscritto il: 14/02/15 15:36

Re: [Excel 2013] Inserimento Immagini

Postdi rmauro1969 » 25/02/15 14:34

Mi correggo, il problema è rimasto, mettendo un filtro standard, quando per esempio si selezionano solo le ultime 10 righe che hanno un determinato parametro in altre colonne/celle e quindi nasconde le altre righe, sulla prima riga visibile, in corrispondenza della cella dove c'è la foto, vengono messe una sopra l'altra tutte le foto delle precedenti immagini già inserite e relative alle righe che non vengono visualizzate ! :-?
Mentre nelle 10 righe visibili sono posizionate correttamente.
Togliendo il filtro tornano nella corretta posizione.

Mauro
rmauro1969
Utente Junior
 
Post: 19
Iscritto il: 14/02/15 15:36

Re: [Excel 2013] Inserimento Immagini

Postdi ricky53 » 25/02/15 15:06

Ciao,
intervengo a discussione in fase avanzata ma vorrei dare il mio contributo:

Riepilogo quello che ho capito:
1. prima, con la macro di Anthony, carichi le immagini che vengono inserite nella celle a destra di quelle contenenti il nome
2. poi filtri per la colonna "A" e/o altre colonne per una o più condizioni

Il risultato è che:
A) per le righe visibili (quelle il cui contenuto rispecchi ai filtri) le immagini sono posizionate bene, ossia come prima
B) per le righe nascoste (filtro non rispecchiato) le immagini sono sovrapposte una all'altra ed essendo di dimensioni diverse si vedono alcune parti di ogni immagine


Questa situazione è diciamo "NORMALE" quando si filtrano delle righe contenenti immagini e non dipende dal codice che le ha caricate.

Probabilmente con una macro che si innesca quando imposti il filtro e nasconde le immagini delle righe "nascoste" e ... ci penso.

Vediamo se Anthony o altri utenti hanno delle idee che siano risolutive e più immediate di quanto ti ho suggerito io.
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: [Excel 2013] Inserimento Immagini

Postdi rmauro1969 » 25/02/15 18:53

Ciao Ricky,
si accade proprio quello che scrivi, questo però non accadeva quando inserivo le foto in modo manuale una per volta, quindi credo ci sia qualche piccola differenza tra i due modi di inserire le immagini. :-?
Inoltre non capisco come mai il file aumenta notevolmente di dimensioni, anche se ora le immagini che vado ad inserire le ho ridotte a circa 100k contro i 5000k di prima.

Grazie
Ciao
Mauro
rmauro1969
Utente Junior
 
Post: 19
Iscritto il: 14/02/15 15:36

Re: [Excel 2013] Inserimento Immagini

Postdi Anthony47 » 25/02/15 23:21

Humm... non so perche' con una sola cella selezionata la cosa va in crisi, comunque prova sostituendo questo pezzo
On Error Resume Next
'Qui si seleziona l' area in cui sono presenti i nomi Foto:
Set mmArea = Application.InputBox("Seleziona l' Intervallo coi Nomi Foto", , , , , , , 8)
On Error GoTo 0
If IsEmpty(mmArea) Then Exit Sub 'Nessuna selezione, abort
myArea = mmArea.Address

con questo
Codice: Seleziona tutto
On Error Resume Next
'Qui si seleziona l' area in cui sono presenti i nomi Foto:
Set mmArea = Application.InputBox("Seleziona l' Intervallo coi Nomi Foto", , , , , , , 8)
myArea = mmArea.Address
On Error GoTo 0
If myArea = "" Then Exit Sub

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

Re: [Excel 2013] Inserimento Immagini

Postdi rmauro1969 » 26/02/15 20:16

Con la modifica, per l'inserimento della foto per un'unica cella funziona, e funziona anche se deve cancellare la foto, però se lascio vuoto il msgbox quando chiede l'area e dò "ok" va in errore. (Per uscire basta fare "annulla")
Ho sosotituito come dicevi questo:
Codice: Seleziona tutto
If IsEmpty(mmArea) Then Exit Sub 'Nessuna selezione, abort

con
Codice: Seleziona tutto
If myArea = "" Then Exit Sub


Per l'altro problema delle immagini che vengono sovrapposte, può essere che sia legato al fatto che nel codice di inserimento viene posizionata la foto ad una certa distanza dal bordo ? Io prima con l'inserimento manuale non lo facevo e non avevo questo problema.
Con questa anomalia non si può usare excel fino a quando a finito di sovrapporre tutte le foto non visibili, e ci mette parecchio, inoltre non si vede la prima foto visibile in quanto ci sono sopra tutte le altre.
:undecided:

Ciao
Mauro
rmauro1969
Utente Junior
 
Post: 19
Iscritto il: 14/02/15 15:36

Re: [Excel 2013] Inserimento Immagini

Postdi Anthony47 » 26/02/15 23:47

Nelle mie prove, quando compare l' inputbox con la scritta "Seleziona l'intervallo coi Nomi Foto" e non eseguo la selezione ma premo Ok esce un messaggio di excel che dice (tradotto) "Mi vuoi imbrogliare? Scegli qualcosa o scegli annulla"; e' una prestazione di Excel, il mio codice non ha meriti particolari :D :D
O a tu parli di una cosa diversa?

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

Re: [Excel 2013] Inserimento Immagini

Postdi rmauro1969 » 01/03/15 22:00

No, parlo di quello.

Comunque è un non problema, il dilemma principale resta la sovrapposizione delle foto precedentemente descritto, per come inserite ora le foto è inutilizzabile il filtro. :undecided:

Ciao
Mauro
rmauro1969
Utente Junior
 
Post: 19
Iscritto il: 14/02/15 15:36

Prossimo

Torna a Applicazioni Office Windows


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


Chi c’è in linea

Visitano il forum: albval e 45 ospiti