Condividi:        

Macro che funzioni su più fogli excel

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 che funzioni su più fogli excel

Postdi Mauritius.1960 » 03/09/18 16:00

Ciao a tutti,

ho un file Excel che contiene 30 fogli a cui, mensilmente, viene cambiato nome. Ognuno di questi
fogli deve contenere la medesima macro che, quando attivata, copia data e saldo del foglio attivo
su un altro foglio riepilogativo.
Al momento la macro mi funziona solo sul primo singolo foglio. Come devo fare per farla funzionare
su tutti i fogli presenti?
Mille grazie, ciao.
M.

Di seguito la macro attuale:

Codice: Seleziona tutto
Sub Macro3()

' Macro3 Macro
' Copia il saldo definitivo di cassa nel foglio Saldi Progressivi
'

'
Range("F3").Select
Selection.Copy
Sheets("Saldi Progressivi").Select
ActiveWindow.SmallScroll Down:=-45
Range("D1").Select
ActiveSheet.Paste
Sheets("1 Set").Select
Range("F3").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWindow.SmallScroll Down:=21
Range("C39").Select
Selection.Copy
Range("C41").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.Save
Range("D41").Select
Sheets("1 Set").Select
Range("C41").Select
Selection.Copy
Sheets("Saldi Progressivi").Select
Range("E1").Select
ActiveSheet.Paste
Range("E1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Sheets("1 Set").Select
ActiveWindow.SmallScroll Down:=-60
Range("B7").Select

End Sub
Mauritius.1960
Newbie
 
Post: 7
Iscritto il: 03/09/18 14:42

Sponsor
 

Re: Macro che funzioni su più fogli excel

Postdi Marius44 » 03/09/18 16:21

Ciao
Non mi riferisco al codice (ragionaci su perchè è migliorabile e di moooolto) ma a quello che hai scritto.

Tu dici: "ho un file Excel che contiene 30 fogli a cui, mensilmente, viene cambiato nome."
Domanda: come viene cambiato il nome, manualmente o tramite codice?

Dici ancora: "Ognuno di questi fogli deve contenere la medesima macro che, quando attivata, copia data e saldo del foglio attivo su un altro foglio riepilogativo."
Domanda 1 - come viene attivata la macro?
Domanda 2 - dove è residente la macro?

Immagino questo scenario:
la macro è su un Modulo standard ed è attivata tramite un pulsante (Modulo, non ActiveX) a cui è associata la macro.

Se ho azzeccato una soluzione potrebbe essere quella di inserire in ogni Foglio un pulsante (ripeto, Modulo e non ActiveX) ed associargli la macro (che rimane una sul Modulo standard).

Ciao,
Mario
Marius44
Utente Senior
 
Post: 655
Iscritto il: 07/09/15 22:00

Re: Macro che funzioni su più fogli excel

Postdi Anthony47 » 03/09/18 23:53

In aggiunta a quanto suggerito da Mario, nel caso che sia difficilmente applicabile.
Quanto chiedi puo' essere facilmente realizzato, ma bisogna sapere quale e' la struttura dei dati dei 30 fogli, quali dati vanno copiati, e quale la struttura del foglio SaldiProgressivi.
La macro infatti fa una serie di selezione, copia e incolla che talvolta sembrano casuali.

Infine servira' un file di esempio con un tot di fogli prova su cui collaudare quanto proporre.
Per le istruzioni su come allegare un file:
viewtopic.php?f=26&t=103893&p=605487#p605487

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

Re: Macro che funzioni su più fogli excel

Postdi Mauritius.1960 » 04/09/18 09:08

Ciao ragazzi,

non sono espertissimo di Macro, scusatemi. In ogni caso allego il link per il foglio di lavoro.
La macro è la numero 3 (le numero 1 e 2 funzionano perfettamente), ed ho inserito alcuni
fogli per poter testare la cosa.

Vi sono davvero grato per l'aiuto.
m.
http://www.filedropper.com/fogliocassaa ... -vers20181
Mauritius.1960
Newbie
 
Post: 7
Iscritto il: 03/09/18 14:42

Re: Macro che funzioni su più fogli excel

Postdi Mauritius.1960 » 04/09/18 11:25

Completo la risposta per Mario,

i fogli vengono rinominati manualmente, la macro 3 viene attivata con il
pulsante "riporta saldo". Ho invece il dubbio di dove risieda la Macro.
I fogli potrebbero chiamarsi semplicemente con un numero, piuttosto che
con una data ("1 Gennaio", oppure "10 Gen"). Non viene fatto alcun test
sul nome del foglio.
Mille grazie di nuovo, ciao.
Mauritius.1960
Newbie
 
Post: 7
Iscritto il: 03/09/18 14:42

Re: Macro che funzioni su più fogli excel

Postdi Marius44 » 04/09/18 16:22

Ciao
Ti invito a "studiare" il codice VBA in modo da renderti autonomo.

Le macro (create col registratore di macro, quindi con passaggi inutili) erano residenti in Moduli diversi. Le ho portate tutte nel Modulo 1 (ed associate ai rispettivi pulsanti). Se apri l'Editor di VBA puoi lasciare SOLO il Modulo1 ed eliminare tutti gli altri.

Ho "rifatto" le macro 1 e 3 (se ho capito bene cosa vuoi fare).

Ti allego il file. http://www.filedropper.com/fogliocassamarius

Fai delle prove con questo file e vedi se va bene. Se ci dovessero essere problemi, siamo qui.
Fai sapere. Ciao,
Mario
Marius44
Utente Senior
 
Post: 655
Iscritto il: 07/09/15 22:00

Re: Macro che funzioni su più fogli excel

Postdi Mauritius.1960 » 05/09/18 08:27

Per ora grazie Mario, in serata provo il tutto e ti aggiorno. Concordo con te
che dovrei studiare il codice VBA, mi ci sto appassionando, quindi se riesco
a trovare un po' di tempo libero la sera.....
Di nuovo grazie, ciao.
Mauritius.1960
Newbie
 
Post: 7
Iscritto il: 03/09/18 14:42

Re: Macro che funzioni su più fogli excel

Postdi Mauritius.1960 » 06/09/18 07:36

Mario ciao,
non è ancora del tutto a posto. Ti allego il tuo file dove ho inserito
4 fogli con quattro date diverse. Cliccando su "Riporta Saldi" del
1 Ottobre, deve riportare il saldo finale del foglio (€ 118,00) sul
foglio "Saldi Progressivi" in corrispondenza della stessa data (1 Ott.)
A questo punto il foglio "2 Ottobre" nella cella F6 conterrà lo stesso
importo, vale a dire € 118,00).
Cliccando su "Riporta Saldi" del 2 Ottobre aggiornerà il saldo finale
in corrispondenza della riga con la stessa data, che diventerà quindi
anche il saldo di partenza (F6) del foglio "3 Ottobre" e così via.
Grazie per la collaborazione Mario, e buona giornata.

http://www.filedropper.com/fogliocassamariustest_1
Mauritius.1960
Newbie
 
Post: 7
Iscritto il: 03/09/18 14:42

Re: Macro che funzioni su più fogli excel

Postdi Marius44 » 06/09/18 18:32

Ciao
La macro riporta solo il saldo in corrispondenza della data. Stop

Il saldo iniziale del Foglio successivo è riportato tramite la formula in F3 (che non ho fatto io, ma è - immagino - in ogni foglio)

Ciao,
Mario
Marius44
Utente Senior
 
Post: 655
Iscritto il: 07/09/15 22:00

Re: Macro che funzioni su più fogli excel

Postdi Anthony47 » 07/09/18 00:42

Sono rimasto alla finestra perche' non avevo capito, e non ho ancora capito bene.
Avevo scritto "[Si puo' fare] ma bisogna sapere quale e' la struttura dei dati dei 30 fogli, quali dati vanno copiati, e quale la struttura del foglio SaldiProgressivi"
In risposta e' stato pubblicato un file con il foglio SaldoProgressivi e un tot dei 30 fogli da consolidare; nessuna spiegazione, per foglio SaldoProgressivi, sul significato della colonna A e sulle formule di colonna B; nessuna spiegazione sulla struttura dei fogli dati da consolidare, ma qui forse e' intuibile; nessuna indicazione su quali dati vanno copiati dai fogli dati al foglio SaldoProgressivi, soprattutto alla luce delle formule contenute in colonna B.

Mi era sembrato un miracolo che Mario avesse capito tutto e avesse pubblicato una proposta.

Ora tu (Mauritius) scrivi "non è ancora del tutto a posto"; ma non spieghi che cosa non e' a posto. Quanto sia criptica la tua affermazione si rileva anche dalla risposta di Mario.

FORSE ("forse", perche' la lettura della mente non e' il mio forte) se tu avessi detto "Mario, c'e' pero' il problema che i dati del 1/ott vengono scritti sulla data del 2/ott, che ovviamente non va bene" allora certamente Mario avrebbe scritto "cazzarola, e' vero... Togli il "+ 1" alla fine di questa riga:
Codice: Seleziona tutto
  rg = Application.WorksheetFunction.Match(Sp.Range("D1"), Sp.Range("A:A"), 0) + 1
(magari avrebbe usato termini piu' aulici)

Se e' questo che intendi, allora prova con la correzione che ti ho detto poco fa, e per la prossima volta ricorda che tu sai tutto dei tuoi fogli e di come sono stati pensati; noi "purtoppo" non ne sappiamo niente, e quindi devi essere paziente e scrivere qualcosa di piu'.

Ancora non ho capito se la macro deve essere eseguita a catena su tutti i fogli, ne' ho capito come faresti a ricostruire (in caso di audit) come nasceva il saldo di un certo gg.

Io avrei impostato il file con un foglio "Analitico", dove giorno dopo giorno aggiungo Data, Entrata, Uscita (una riga per voce).
Poi in un foglio Riepilogo si ricostruisce il saldo per ogni data, con una formula che somma al saldo del giorno precedente tutte le entrate che hanno quella data e vi sottrae tutte le uscite che hanno quella data.

Se ti serve crei una tabella pivot che somma le entrate e le uscite aggregando i dati per giorno, per Settimana, per Mese, per Trimestre, per Anno
Volendo non sarebbe difficile creare un prospetto come il tuo "giornaliero", impostando la data ed estraendo i dati dal foglio Analitico.
Vedi tu se questi ultimi suggerimenti si possano applicare al tu processo.

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

Re: Macro che funzioni su più fogli excel

Postdi Marius44 » 07/09/18 07:32

Ciao Anthony
"cazzarola, e' vero... Togli il "+ 1" alla fine di questa riga


Tu "leggi" nella mente! E' proprio quello che avrei detto.
Concordo con te circa la struttura dei Fogli del file trasmesso. Anch'io avrei usato un'altra tecnica.
Ciao,
Mario
Marius44
Utente Senior
 
Post: 655
Iscritto il: 07/09/15 22:00

Re: Macro che funzioni su più fogli excel

Postdi Mauritius.1960 » 07/09/18 13:10

Ciao ragazzi, ancora grazie per l'aiuto, e in fin dei conti mi merito
anche la lavata di testa di Anthony.
A mia (parziale) scusante, ricordo però che nel mio primo post, io
avevo allegato una macro perfettamente funzionante, (faceva
esattamente ciò di cui io avevo bisogno), e chiedevo solo come fare
ad abilitarla anche sui fogli successivi, dato che funzionava solo sul
primo foglio.
Le opportune modifiche, ed i miglioramenti fatti da Mario hanno
lasciato le piccole imprecisioni a cui ora sto cercando di far fronte.
Ancora grazie di tutto, e buona giornata. :-)
Maurizio
Mauritius.1960
Newbie
 
Post: 7
Iscritto il: 03/09/18 14:42

Re: Macro che funzioni su più fogli excel

Postdi Anthony47 » 07/09/18 18:58

Ma la mia piu' che una lavata di capo era un invito a mettere tutte le informazioni che servono a chi legge, per evitare che si perda tempo a capire la domanda sottraendolo all'individuare una risposta.
La macro che avevi postato, l'avevo scritto, sembrava che a volte facesse delle operazioni casuali, non mi sembrava opportuno decodificarla piu' di tanto.

Le opportune modifiche, ed i miglioramenti fatti da Mario hanno
lasciato le piccole imprecisioni a cui ora sto cercando di far fronte
Warning: se pero' non dici quali sono queste piccole imprecisioni il nostro aiuto sara' latitante.

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


Torna a Applicazioni Office Windows


Topic correlati a "Macro che funzioni su più fogli excel":


Chi c’è in linea

Visitano il forum: Nessuno e 39 ospiti