Sto lavorando su un componente aggiuntivo per automatizzare alcuni rapporti.
- È disponibile un file PowerPoint modello di report che include collegamenti a file immagine di vari grafici e tabelle. (vedi allegato)
- Quando l'utente fa clic sul pulsante "aggiungi al rapporto attivo", il file immagine appropriato verrà sovrascritto in modo che il nuovo grafico o tabella venga visualizzato nel rapporto.
Il problema che sto riscontrando è che devo aggiornare i collegamenti nel documento PowerPoint.Vorrei poter dire "crea nuovo report", copiare il modello e le immagini predefinite in una nuova cartella e aggiornare i collegamenti nel nuovo file PowerPoint in modo che puntino ai file immagine nella nuova cartella anziché file di immagine nella cartella dei modelli.Qualche idea su come potrei farlo?
Grazie molto,
John
Ciao @johnmoore , ho affrontato qualcosa di simile, conosco la difficoltà di continuare ad aggiornare i pacchetti utilizzando i modelli aziendali in power point e ho bisogno di aggiornare circa 300 immagini da Anova, grafici di variabilità, report Cpk, ecc. creati in JMP dove ogni pacchetto power point contiene "praticamente lo stesso grafici", sempre nello stesso posto, l'unica differenza sono i dati grezzi necessari per il report specifico.
Non sono davvero esperto di VBA, ma quando hai bisogno di qualcosa, continui a cercare ovunque e fai tentativi ed errori finché non riesci a trovare/trovare una soluzione.
Questo è l'approccio che seguo, forse finora hai qualcosa di simile:
- In JMP invia tramite JSL la tua analisi (immagini) a una cartella nel tuo PC e assegna un nome specifico a ciascuna immagine (non nominarle mai allo stesso modo perché solo in questo caso sovrascriverai). Dopo aver personalizzato in power point la posizione di ogni immagine specifica e creato il collegamento per ciascuna di esse, salvalo come file macro (questo sarà il tuo modello).
- Apri il tuo modello ed esegui la macro ogni volta che hai bisogno di un nuovo rapporto.
- Infine salva il file senza macro e con un nome diverso per mantenere il modello con le immagini pronto per la prossima volta.
Spero che questo possa aiutarti, ti consiglio vivamente di inserire la password nella macro per evitare modifiche allo script.
Saluti.
Sub LinkedGraphsToPictures()
'Creato da Andres Gonzalez, marzo 2019
'Scopo: trasformare i grafici collegati in immagini normali
Dim shp come forma
Dim come diapositiva
Immagine debole come forma
Dim shp_left Come doppio
Dim shp_top come doppio
Dim sld_count per tutto il tempo
'Scorri ogni diapositiva in ActivePresentation
Per ogni sld in ActivePresentation.Slides
Per sld_count = ActivePresentation.Slides.Count a 1 passaggio -1
' Conta fino a -1 per il conto alla rovescia per evitare di saltare i grafici a causa dell'eliminazione del grafico
Imposta sld = ActivePresentation.Slides(sld_count)
Per ogni negozio in sld.Shapes
Se shp.Type = msoLinkedPicture Allora
'Recupera la posizione attuale
shp_sinistra = shp.Sinistra
shp_top = shp.Top
'Copia/Incolla come immagine
shp.Copia
sld.Shapes.PasteSpecial DataType:=ppPastePNG
Imposta pic = sld.Shapes(sld.Shapes.Count)
'Elimina forma collegata
shp.Elimina
'Riposizionare l'immagine appena incollata
pic.Sinistra = shp_sinistra
pic.Top = shp_top
Finisci se
Prossimo negozio
Conteggio_sld successivo
Prossimo sld
Fine Sub