Condividi:        

macro per stampare in ordine?

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

macro per stampare in ordine?

Postdi femon » 10/04/14 09:48

Buongiorno, avrei un quesito:
ho un documento di word di circa 300 pagine ed ogni pagina è una scheda a sè.
Dovrei stamparle con un ordine diverso da quello che mi presentail file, ma secondo un codice numerico presente in ogni pagina e a parità di codice secondo un ordine alfabetico di nome sempre presente in ogni pagina.
Avrei anche un foglio excel che mi riepiloga i codici e i nomi ordinati come vorrei io se potesse essere di aiuto per la stampa.
(sto pensando ad una macro che mi cerca il primo nome della tabella di excel, lo trova in word e stampa quella pagina, poi passa al successivo nome di excel, e così via fino alla fine dell'elenco excel).
Secondo voi è possibile una macro del genere?

Grazie per l'attenzione.
Federico.
femon
Utente Senior
 
Post: 101
Iscritto il: 12/03/14 18:51

Sponsor
 

Re: macro per stampare in ordine?

Postdi Anthony47 » 10/04/14 13:59

Non abbiamo una grande esperienza sul vba di word, pero' qualcosa si puo' provare a fare; purche' il documento word sia strutturato e sia possibile con una certa sicurezza identificare sia il "codice numerico" che quel "nome" da leggere in caso di codice numerico duplicato.

Per questo e' pero' necessario disporre di un esempio di file contenente almeno una decina di schede con qualche codice duplicato.
Per come allegae un file quada qui: viewtopic.php?f=26&t=80395

Ciao, ti aspettiamo.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: macro per stampare in ordine?

Postdi femon » 10/04/14 18:13

Ecco il link dei due files
http://rapidshare.com/share/9CE11EA7186 ... 07934B1C6C

in Excel c'è l'ordine di come vorrei uscissero le stampe dal documento di word che invece ha le pagine ordinate diversamente.

La mia idea era quella con una macro da Excel di cercare il campo numero scheda della prima colonna in Excel e di trovarlo nelle pagine di word ed una volta trovata stampare la pagina stessa, poi passare alla seconda riga di Excel trovare, trovare il numero scheda in word e stampare la pagina, tornare in Excel ... e così via fino alla fine della tabella di Excel che corrisponde alle pagine di word.
Logicamente questa è la mia idea ma poi realizzarla non saprei neanche come cominciare.
Grazie se puoi aiutarmi.
femon
Utente Senior
 
Post: 101
Iscritto il: 12/03/14 18:51

Re: macro per stampare in ordine?

Postdi Anthony47 » 11/04/14 00:23

Purtroppo il link pubblicato non porta a nulla... Se non riesci con Rapidshare puoi provare con filedropper.com, dovrebbe avere una operativita' piu' elementare.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: macro per stampare in ordine?

Postdi femon » 11/04/14 16:27

con filedropper ho avuto problemi, sono riuscito con dropcanvas che mi ha dato questi link:

http://dropcanvas.com/70wx0

http://cnv.as/70wx0

<a href="http://dropcanvas.com/70wx0">My dropcanvas files</a>

Grazie.
femon
Utente Senior
 
Post: 101
Iscritto il: 12/03/14 18:51

Re: macro per stampare in ordine?

Postdi Anthony47 » 11/04/14 23:07

Con riferimento alla tabella excel allegata e alla descrizione fatta nel messaggio iniziale, puoi per favore indicare la corrispondenza con il "codice numerico presente in ogni pagina" e il "nome" da gestire in ordine alfabetico.
Oppure, invece dei due campi succitati, non si puo' prendere il Numero di scheda?

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: macro per stampare in ordine?

Postdi Flash30005 » 12/04/14 03:25

Evidentemente hai l'esigenza di avere tutte quelle schede in un stesso file di word
ma la domanda la faccio lo stesso:
non è possibile avere ogni scheda in un file di word separato avente come nome file il codice e/o nome?

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: macro per stampare in ordine?

Postdi femon » 12/04/14 12:08

Ciao Anthony,
effettivamente la macro Excel potrebbe cercare il numero scheda preso da Excel (già ordinato da me come voglio io) e stampare la scheda corrispondente in word tralasciando dunque il campo codice e il campo nome fino alla fine della colonna.
Dunque il file Excel mi farebbe da appoggio per capire l'ordine di stampa delle schede di word.
Sarebbe proprio così se possibile...
Grazie.
femon
Utente Senior
 
Post: 101
Iscritto il: 12/03/14 18:51

Re: macro per stampare in ordine?

Postdi Anthony47 » 15/04/14 01:19

Sono in dirittura di arrivo, viene anche piu' semplice di quello che mi aspettavo; credo che domani potro' proporre qualcosa.
Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: macro per stampare in ordine?

Postdi femon » 15/04/14 09:56

Grazie infinite, attendo con ansia.

Ma tu lavori anche di notte?
femon
Utente Senior
 
Post: 101
Iscritto il: 12/03/14 18:51

Re: macro per stampare in ordine?

Postdi Anthony47 » 16/04/14 00:49

Prova la segunte macro, da inserire nel file excel:
Codice: Seleziona tutto
Sub ffemon()
'vedi http://www.pc-facile.com/forum/viewtopic.php?f=26&t=101751
'
Dim ObjWord As Object, objDoc As Object, dDummy
Dim mySk As String, I As Long, Schede As String, FName As String
'
Schede = "schede da stampare.rtf"                    '<<< Il nome del file da aprire
FName = ThisWorkbook.Path & "\" & Schede
'
Set ObjWord = CreateObject("Word.Application")
ObjWord.Visible = True
Set objDoc = ObjWord.Documents.Open(FName)
'
On Error GoTo 0
If ObjWord Is Nothing Then
    MsgBox "Applicazione non disponibile", vbExclamation
End If
'
With ObjWord
    SelPrint = .Application.Dialogs(97).Show   '97=wdDialogFilePrintSetup
    If SelPrint = False Then
        MsgBox "Stampa Cancellata"
        GoTo ESci
    End If
'
    For I = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        mySk = Cells(I, 1).Value
    .Selection.Find.ClearFormatting
    With .Selection.Find
        .Text = mySk
        .Replacement.Text = ""
        .Forward = True
        .Wrap = 1   '1=wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        .Execute
    End With
    If .Selection.Find.Found Then
    'se stringa trovata, stampa
        pagnr = .Selection.Information(3) '3=wdActiveEndPageNumber
'        .Application.PrintOut Filename:="", Range:=wdPrintRangeOfPages, Item:= _
'            wdPrintDocumentWithMarkup, Copies:=1, Pages:="5", PageType:= _
'            wdPrintAllPages, Collate:=True, Background:=False, PrintToFile:=False, _
'            PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
'            PrintZoomPaperHeight:=0
       
       dDummy = .Application.PrintOut(False, False, 4, "", , , 7, 1, pagnr & "", 0, False, True, "", , , 0, 0, 0, 0)
       Cells(I, 8).ClearContents
    Else
    'se stringa non trovata, marca in colonna H
        Cells(I, 8).Value = mySk & " - Missing"
        Beep
    End If
    Next I
End With
ESci:
dDummy = objDoc.Close(0, 1)
ObjWord.Quit
Set objDoc = Nothing
Set ObjWord = Nothing
'
End Sub
Va lanciata avendo attivo il foglio contenente la lista delle schede da stampare.
Il file contenente tutte le schede deve essere posizionato nella stessa directory in cui e' posizionato il file Excel; il nome file puo' essere impostato tramite l' istruzione marcata <<<.
All' avvio il file Schede viene aperto in una nuova sessione di word; viene chiesto di impostare la stampante da utilizzare per le stampe; infine vengono cercate le schede in sequenza e inviate in stampa. Finito il processo il file Schede viene chiuso e idem l' applicazione Word.

Tieni presente che la colonna H del foglio Ecel viene usata per marcare eventuali schede non trovate.

Prova e fai sapere.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: macro per stampare in ordine?

Postdi femon » 16/04/14 09:08

Grazie Anthony, funziona tutto benissimo,
avrei solo un quesito (se non abuso troppo della tua pazienza):

E' possibile modificare la macro in modo da poterla salvare in PERSONAL.XLS in quanto il file excel che mi dà l'ordine di stampa proviene ogni volta da fonti diverse e sarei dunque costretto a copiare i dati sempre nel file che ha associato la macro ed anche il file .rtf ogni volta copiarlo in quella stessa directory.
Se invece potessi avviare la macro da un qualunque file excel (LOGICAMENTE STRUTTURATO IN COLONNE SEMPRE ALLO STESSO MODO) e poi ricercare il file .rtf dalla finestra di ricerca sarebbe comodissimo.

Se la cosa è troppo complicata va bene anche così, mi sei già stato di grandissimo aiuto.
Grazie mille!!!
Federico.
femon
Utente Senior
 
Post: 101
Iscritto il: 12/03/14 18:51


Torna a Applicazioni Office Windows


Topic correlati a "macro per stampare in ordine?":


Chi c’è in linea

Visitano il forum: Ricky0185 e 43 ospiti