Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

excel-macro inserire file pdf

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-macro inserire file pdf

Postdi freewolf » 11/10/07 13:19

Buongiorno a tutti,

probabilmente per molti di voi sarà una banale ma io stò cercando di creare una macro per risolvere questa situazione e non ci riesco.

Problema:
permettere il caricamento automatico di un file .pdf in un foglio excel

- far inserire all'utente il nome del file in una cella del foglio di lavoro "inserimento dati", selezionare la cella di destinazione ("layout di stampa") dell'azione inserimento oggetto esterno ed usare come nome file il testo contenuto nella cella di inserimento (questa macro si attiverebbe al momento della pressione del tasto "stampa" che creerò nel foglio inserimento dati"

- mettere sul foglio inserimento dati un tasto "inserisci pdf" e alla pressione del tasto far selezionare la cella di destinazione sul foglio "layout di stampa" e far aprire la finestra di inserimento oggetto esterno/selezione file.

Nota: i file pdf sono tutti nella stessa directory per cui se necessario il percorso completo del file si può inserire in una cella la parte di percorso comune e poi concatenare con la cella del nome file che invece varia ogni volta (numero di file "infinito").
freewolf
Newbie
 
Post: 3
Iscritto il: 11/10/07 13:04

Sponsor
 

Re: excel-macro inserire file pdf

Postdi freewolf » 11/10/07 13:24

freewolf ha scritto:Buongiorno a tutti,

probabilmente per molti di voi sarà una banale ma io stò cercando di creare una macro per risolvere questa situazione e non ci riesco.

Problema:
permettere il caricamento automatico di un file .pdf in un foglio excel

- far inserire all'utente il nome del file in una cella del foglio di lavoro "inserimento dati", selezionare la cella di destinazione ("layout di stampa") dell'azione inserimento oggetto esterno ed usare come nome file il testo contenuto nella cella di inserimento (questa macro si attiverebbe al momento della pressione del tasto "stampa" che creerò nel foglio inserimento dati".

- mettere sul foglio inserimento dati un tasto "inserisci pdf" e alla pressione del tasto far selezionare la cella di destinazione sul foglio "layout di stampa" e far aprire la finestra di inserimento oggetto esterno/selezione file, riposizionarsi sul foglio "inserimento dati".

Nota: i file pdf sono tutti nella stessa directory per cui se necessario il percorso completo del file si può inserire in una cella la parte di percorso comune e poi concatenare con la cella del nome file che invece varia ogni volta (numero di file "infinito").

la macro di stampa deve selezionare una stampante di destinazione specifica


scusate ho dimenticato due cose che ho aggiunto in corsivo al testo originale
freewolf
Newbie
 
Post: 3
Iscritto il: 11/10/07 13:04

Postdi Anthony47 » 12/10/07 16:51

Ciao freewolf e benvenuto nel forum.

Fai un elenco alquanto vario di cose che devi fare, ma non e’ chiaro su quali di quelle cose stai chiedendo aiuto.
In generale hai la possibilita’ di registrare una macro mentre esegui una sequenza di comandi, in modo da avere una macro che ripete la sequenza, e che eventualmente puoi modificare per farle fare qualche cosa in piu’.
Selezionare un foglio, andare su una cella, scrivere un valore, cambiare foglio, selezionare un’ altra cella, inserire un oggetto esterno, attivare una stampa, etc sono tutte cose che puoi fare in modalita’ “registra macro”.
Poi potrai fare le dovute modifiche, ad esempio puoi leggere cosa c’ e’ scritto in una cella con l’ istruzione Sheets("Foglio1").Range("A1").value e usare questo valore al posto della stringa con il nome file che ti compare sul codice registrato, tipo:
Codice: Seleziona tutto
    ActiveSheet.OLEObjects.Add(Filename:= Sheets("Foglio1").Range("A1").value , Link:=False, etc etc


Per quanto riguarda la selezione del file, invece di farlo scrivere a mano in una cella potresti farlo selezionare con una finestra di dialogo tipo quella che excel ti presenta quando dai File /Apri; il codice per fare cio’ e’ il seguente:

Codice: Seleziona tutto
With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = False
        .Filters.Clear
        .Filters.Add "All files", "*.*"
        .Filters.Add "Output", "*.pdf", 1
        .Show

     If .SelectedItems.Count = 0 Then
     MsgBox ("Nessuna voce selezionata, procedura annullata")
     Exit Sub
     End If
     FullNome = .SelectedItems(1)     'Directory e Nome del file selezionato
    End With


Questo codice ti restituisce il nome pieno del file selezionato, pronto per essere usato in altre parti della macro, ad esempio nel codice che importa l’ oggetto:

Codice: Seleziona tutto
    ActiveSheet.OLEObjects.Add(Filename:= FullNome, Link:=False, etc etc


Pero’ a questo punto mi chiedo che senso ha sia scrivere il nome file in una cella e sia farlo catturare con il codice With Application.FileDialog che ti ho dato sopra, giacche’ anche l’ inserimento dell’ oggetto in excel viene guidato da una finestra di dialogo.
Insomma, e’ evidente che non ho ancora afferrato il bisogno complessivo.

Per quanto riguarda i pulsanti, trovi il simbolo nella barra di strumenti Moduli (Visualizza /Barra degli strumenti; spunta “Moduli”); mentre lo crei ti viene chiesto a quale macro lo vuoi associare, oppure puoi assegnare una macro successivamente (selezioni; tasto dx sulla cornice; scegli Assegna macro).

Se in tutto questo non trovi lo spunto giusto, posta ancora ma spiegando cosa hai gia' fatto e su quali argomenti tra quelli citati chiedi aiuto.

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

Postdi freewolf » 15/10/07 12:35

grazie mille Anthony,

dopo vari tentativi ero riuscito a far funzionare qualcosa comunque il tuo aiuto mi è utile perchè probabilmente userò il sistema di far selezionare il file dall'utente piuttosto che di fargli scrivere il nome, ora il mio codice ha quest'aspetto:

Sub Stampa()
' caricamento foto

Sheets("Investimento").Select
Range("H73").Select
tipo = ActiveCell.FormulaR1C1
Sheets("Layout di stampa").Select
Range("B32").Select
ActiveSheet.OLEObjects.Add(Filename:="... foto\" & tipo & ".bmp", _
Link:=False, DisplayAsIcon:=False).Select

' inserimento pdf

Sheets("Inserimento dati").Select
Range("I3").Select
nome = ActiveCell.FormulaR1C1
Sheets("Layout di stampa").Select

Range("A123").Select
ActiveSheet.OLEObjects.Add(Filename:= _
"\...\" & nome _
, Link:=False, DisplayAsIcon:=False).Select

' stampa
'

'
Sheets("Layout di stampa").Select

Range("A1").Select
ActiveWindow.SelectedSheets.PrintPreview
Application.ActivePrinter = "PDFCreator"
ExecuteExcel4Macro _
"PRINT(1,,,1,,FALSE,,,,,,2,""PDFCreator "",,TRUE,,FALSE)"

' cancellapdf Macro




' riposizionamento

Sheets("Inserimento dati").Select
Range("A1").Select

End Sub

La domanda è ... come faccio a far cancellare l'immagine e il file pdf dal foglio excel una volta eseguita la stampa?
freewolf
Newbie
 
Post: 3
Iscritto il: 11/10/07 13:04

Postdi Anthony47 » 16/10/07 00:25

Domanda:
come faccio a far cancellare l'immagine e il file pdf dal foglio excel una volta eseguita la stampa?

Risposta:
dopo
Codice: Seleziona tutto
ActiveSheet.OLEObjects.Add(Filename:="... foto\" & tipo & ".bmp", _
Link:=False, DisplayAsIcon:=False).Select

Aggiungi
Codice: Seleziona tutto
Range("B32").value = Selection.Name


Dopo
Codice: Seleziona tutto
[code]ActiveSheet.OLEObjects.Add(Filename:= _
"\...\" & nome _
, Link:=False, DisplayAsIcon:=False).Select[/code]

aggiungi
Codice: Seleziona tutto
Range("A123").Value = Selection.Name


E poi
Codice: Seleziona tutto
Dopo ExecuteExcel4Macro _
"PRINT(1,,,1,,FALSE,,,,,,2,""PDFCreator "",,TRUE,,FALSE)"


inserisci
Codice: Seleziona tutto
ActiveSheet.Shapes(Range("B32").Value).Delete
ActiveSheet.Shapes(Range("A123").Value).Delete



Spero funzioni tutto…
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: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "excel-macro inserire file pdf":


Chi c’è in linea

Visitano il forum: Nessuno e 14 ospiti