› Sviluppare funzionalita su Microsoft Office con VBA › immagini dinamiche
-
AutoreArticoli
-
buongiorno,
ho creato una scheda di visualizzazione "Scheda", dove i dati inseriti cambiano in funzione della cella D7.
Ho inserito 3 spazi immagini nelle celle K11, K15 e K19. Nella scheda "DataBase" si trova l'elenco dei nominativi con associati nella colonna accanto le immagini.
Le immagini dovrebbero cambiare nelle celle K11, K15 e K19 in funzione del nominativo scritto nelle celle d11, d15 e d19.
Esempio: Francesco magoga, deve apparire la foto di francesco magoga secondo la lista "DataBase".
Si può fare? c'è un codice che posso applicare affinché si leghino quelle immagini dinamiche. Purtroppo non riesco a realizzare questo processo. Vi ringrazio per un vostro prezioso aiuto, allegandovi il file.
saluti e a presto
Marco
Allegati:
You must be logged in to view attached files.Ciao Marco!
Premesso che non si riesce nemmeno ad aprire il tuo file in quando pare danneggiato, si quello che chiedi è fattibile!
Devi eseguire una semplice istruzione al variare del dato che "comanda" l'immagine!
Tipo --> SH.Pictures.Insert(sPath & sPic)
Ciao
Paolo
ciao PMC77,
ti ringrazio. Ti allego un altro file. che dovrebbe funzionare (spero 🙂 )
Ti ringrazio per il tuo consiglio. Ti posso chiedere come lo utilizzeresti? le immagini sono già nel file. Non utilizzo una tendina, ma il nome appare in automatico direttamente d11, d15 e d19. In base a questo appare direttamente l'immagine.
potresti gentilmente aiutarmi?
ti ringrazio
Marco
Allegati:
You must be logged in to view attached files.Personalmente il primo allegato funziona e vedo pure la macro (OpenPDFFile delle foto). Il secondo è senza codice?
Io non inserirei "MAI" foto nel files (diventerà troppo pesante nel futuro)
Opterei ad inserire le foto in una sottocartella del files.xlsm e richiamarle tramite codice...
Nel Tuo codice, vedo (che esiste una cartella "\File\") = OK
Però gli manca l'estenzione delle foto(Ex xxx.jpeg, jpg, gif, png ecc ecc)
Inoltre manca che deve "cercare-il-nome" in D11 per inserirlo in K11, in D15 ed inserirlo in K15, ecc ecc
Adattare ad una cella si può (con una regolarità nelle foto).
Però stavo pensando da quello che vedo che il "Perito medico abbia tre righe ed altri "Periti" solo due? Non saprei???
Ps. Ex: Vedo che la cella K11 è stata "unita" tramite le celle K11:M13. Non una bella cosa per il VBA (se fossero solo tre, si può fare)Ciao Raffaele! Grazie mille per la tua risposta esaustiva.
infatti grazie ai tuoi consigli ho creato una cartella esterna con dei link a “immagini di controllo” che cambiano dinamicamente.
ti lascio il link del post: https://www.excelvba.it/forumexcel/forums/discussione/aggiornare-spazio-immagine/
Vi ringrazio tutti, come sempre sapete dare spunti e consigli davvero utili.
saluti e a presto
marco
Nell'ultimo post...
>Purtroppo può capitare che non ci sia L immagine per uno di questi spazi
Io metterei all'inizio --->ActiveSheet.Pictures.DeleteEro impegnato e ho avuto problemi con foto scattate verticalmente. Ti allego il codice se "può" andarti bene per ?
`Option Explicit Sub OpenPDFFile2() Dim NomeFile As String, fpath As String, Rng As Range Dim x As Long, mTop As Long, mLeft As Long, mHeight As Double, mWidth As Double fpath = ThisWorkbook.Path ActiveSheet.Pictures.Delete fpath = ThisWorkbook.Path & "\File\" Application.ScreenUpdating = False 'CODICE per foto scattate in orizzontale For x = 11 To 19 Step 4 NomeFile = Cells(x, 4).Value & ".jpg" 'cambiand ".jpg" puoi provare anche con altre estenzioni If Dir(fpath & NomeFile) <> "" Then Set Rng = Cells(x, 11) With ActiveSheet.Pictures.Insert(fpath & NomeFile) .ShapeRange.LockAspectRatio = msoFalse mTop = Rng.Top mLeft = Rng.Left mHeight = 75 'cambia il valore finchè si adatta alle celle mWidth = 160 'cambia il valore finchè si adatta alle celle .Top = mTop .Left = mLeft .Width = mWidth 'altezza .Height = mHeight 'larghezza End With Else MsgBox "Foto inesistente di... " & NomeFile End If Next Application.ScreenUpdating = True Set Rng = Nothing MsgBox "fatto" End Sub` -
AutoreArticoli
