Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

macro modifica campo e stampa

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 modifica campo e stampa

Postdi gianc » 21/12/11 17:07

Buonasera a tutti
è un pò che non entravo su questo forum ma sono tornato ad aver bisogno della vostra esperienza.

mi trovo nella seguente situazione :
dispongo di un file composto da 3 colonne (data, nome, comune).
sono i comuni in cui lavora una persona in una determinata data, quindi ad ogni data corrispondono più nomi e ad ogni nome corrispondono più comuni.

ho la necessità di fare una stampa che riporti la data, il nome della persona e l'elenco dei comuni in cui si è recato.

avevo intenzione di creare un foglio che riportasse la data, l'operatore ed in automatico estraesse l'elenco dei comuni.........fino a qui non ho problemi.

creato il foglio avrei bisogno di una macro che in automatico cambiasse la data (dal 1/1/2011 al 31/12/2011) ed ogni volta lanciasse una stampa.
una volta completato l'anno mantenendo fisso il nome, dovrebbe ripartire dal 1/1/2011 con il nome successivo (chiaramente prendendolo da una lista creata in precedenza da me)

per darvi modo di capire ancora megli vi spiego a cosa serve.
i comuni sono le aree in cui sono andati in trasferta ogni giorno gli operatori che lavorano per me.
ho bisogno di fare una stampa dei comuni in cui è andato in trasferta ogni singolo operatore per ogni singolo giorno per poi allegarla ad altri documenti.

purtroppo non posso farlo a mano perchè si tratta di un centinaio di operatori e 365 giorni.
mettermi a fare 36500 modifiche e lanciare altrettante stampe mi sembra improponibile.

vi ringrazio anticipatamente per l'aiuto e mi scuso se sono stato un po prolisso.

saluti
Giancarlo
gianc
Utente Junior
 
Post: 59
Iscritto il: 19/03/11 00:51
Località: Pistoia

Sponsor
 

Re: macro modifica campo e stampa

Postdi Anthony47 » 22/12/11 00:02

Mi confermi che se un operatore in un giorno e' stato in 3 comuni ci saranno 3 righe compilate? Es
21 giu 2011 Mario Rossi Milano
21 giu 2011 Mario Rossi Cinisello Balsamo
21 giu 2011 Mario Rossi Lainate

E sei sicuro di aver bisogno di circa 36500 pagine di stampa? (cioe' una pagina per ogni girono, per ogni lavoratore).

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

Re: macro modifica campo e stampa

Postdi gianc » 22/12/11 09:44

ciao Anthony,
grazie per il tuo interessamento

ti confermo la struttura e purtroppo si, a malincuore dovro fare un numero pauroso di stampe, ma mi è necessario in azienda per recuperare tante, tante, tante detrazioni fiscali (è allucinante)
chiaramente imposterò poi che in un foglio, stampi 4 o addirittura 8 ezport.

per il numero di stampe non è un gran problema perchè tra le altre cose ci occupiamo di bollettazione e facciamo un numero di stampe già allucinante

grazie ancora
gianc
Utente Junior
 
Post: 59
Iscritto il: 19/03/11 00:51
Località: Pistoia

Re: macro modifica campo e stampa

Postdi Anthony47 » 22/12/11 15:55

Ma allora tu vuoi un file con quei 36000 report pronti per essere successivamente stampati con un solo comando, altrimenti N report nella stessa pagina excel non te lo fara'... mi confermi anche questo?

E (se SI), che versione di excel usi?

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

Re: macro modifica campo e stampa

Postdi gianc » 23/12/11 08:46

uso il 2010.
i report non devono essere creati tutti contemporaneamente.
quello di cui ho bisogno è una macro che cambi il valore di 2 campi e lanci il comando di stampa.

i due campi riporteranno rispettivamente nome e data.
modificando questi, una tabella sotto si autocompilerà con i dati che mi servono (per questa parte non ho problemi)

la macro deve essere ciclica. Ad ogni comando di stampa incrementa di uno la data e lancia nuovamente il comando di stampa.
una volta arrivata al 31/12, riparte dal 1/1 e cambia il nome. Così via fino a quando non arriva al 31/12 dell'ultimo nome
gianc
Utente Junior
 
Post: 59
Iscritto il: 19/03/11 00:51
Località: Pistoia

Re: macro modifica campo e stampa

Postdi Flash30005 » 23/12/11 11:19

Ti invio una macro che dovrebbe fare quanto richiedi, anche se penso che non avendo fornito i tuoi dati di destinazione dovrai adattarla, proprio per questo ho inserito le indicazioni di ogni riga-codice
Codice: Seleziona tutto
Sub CreaStampaReport()
Set Ws1 = Worksheets("Foglio1") '<<<<<<Setta il foglio1 dati
Set Ws2 = Worksheets("Foglio2") '<<<<<<Setta il foglio2 Destinazione Report
URF = Ws1.Range("F" & Rows.Count).End(xlUp).Row  '<<<<<<<< Conta righe in F (Elenco Dei nomi)
URA = Ws1.Range("A" & Rows.Count).End(xlUp).Row '<<<<<<<< Conta righe in A (Date)
DataI = DateSerial(Ws1.Range("G2"), "1", "1")  '<<<<< prende l'anno in G2 e determina il 1 giorno dell'anno (1/1/AnnoG2)
DataF = DateSerial(Ws1.Range("G2"), "12", "31") '<<<<< prende l'anno in G2 e determina l'ultimo giorno dell'anno (31/12/AnnoG2)
For RRF = 2 To URF             '<<<<Ciclo for next Riga per riga Dei Nomi in elenco colonna F
    Ws2.Columns("A:C").ClearContents  '<<<< Pulisce il foglio 2 (colonne da A a C)
    Nome = UCase(Ws1.Range("F" & RRF).Value)  '<<<< setta il nome da confrontare
    For DD = DataI To DataF     '<<<<< ciclo for next dal 1 gennaio al 31 dicembre
        For DA = 2 To URA       '<<<<< ciclo for next della colonna A date
            Data1 = Ws1.Range("A" & DA).Value  '<<<<< Variabile data da confrontare
            If Data1 = DD And Nome = UCase(Ws1.Range("B" & DA).Value) Then  '<<<<<<<<<<<< controlla che la data e il nome siano uguali
                Ws1.Range(Ws1.Cells(DA, 1), Ws1.Cells(DA, 3)).Copy Destination:=Ws2.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) '<<< soddisfatta la condizione scrive una riga nel foglio2
            End If
        Next DA
    Next DD
    MsgBox " Report Pronto"  '<<<<< Report nome completato
    '<<<<< Tuo codice
    Ws2.PrintOut Copies:=1, Collate:=True  '<<<<<< stampa foglio2 con stampante predefinita
Next RRF
End Sub


Come vedi ho inserito in F l'elenco dei nomi (singoli) che dici di avere (dove?)
In G2 l'anno del quale devi fare il report

In caso di problemi posta ancora

ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-


Torna a Applicazioni Office Windows


Topic correlati a "macro modifica campo e stampa":


Chi c’è in linea

Visitano il forum: PcBase e 10 ospiti