Condividi:        

Macro creazione riepilogo da fogli diversi

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 creazione riepilogo da fogli diversi

Postdi alebus » 01/04/15 14:51

Ciao a tutti,
premetto che ho letto vari post ma non sono riuscita a mettere insieme tutte le informazioni per il mio problema.

Sto creando un db per il controllo di costi di commesse varie, ho quindi un file composto da vari fogli riepilogativi (uno per ogni commessa) e un foglio di report (che voglio escludere dalla macro).
Nei fogli delle singole commesse, una parte è dedicata a informazioni amministrative (sempre colonne dalla F alla L in cui sono inseriti i riferimenti delle fatture fornitore), ma il numero di righe è differente (diciamo sempre inferiore a 80) e non tutte sono compilate.

Es.

R\C F G H I J K
6 CODICE FORNITORE COD. FORN. DATA FATTURA N° FATTURA COSTO DI ACQUISTO
7
8
9 -
10
11 -
12
13 150.000.001 Fornitore A F000001 01/01/2015 01/2015 € 100,00
14 150.000.001 Fornitore B F000002 02/01/2015 02/2015 € 200,00
15 150.000.001 Fornitore C F000003 03/01/2015 03/2015 € 300,00




Ora io vorrei creare una sorta di "Riepilogo Fatture" che faccia copia-incolla solo delle celle compilate in ciascun foglio riepilogativo di commessa (nell'esempio F13:K15).

E' possibile??
Spero di essermi spiegata,
grazie a tutti
alebus
Newbie
 
Post: 7
Iscritto il: 01/04/15 14:16

Sponsor
 

Re: Macro creazione riepilogo da fogli diversi

Postdi alfrimpa » 01/04/15 14:56

Ciao Alebus e benvenuta.

Per facilitare il compito a chi intendesse risponderti proponendo soluzioni ti consiglierei di allegare un file di esempio che sia strutturalmente uguale al tuo (ma con dati fittizi) in modo da consentire l'effettuazione di test e per capire come fare ad estrapolare dai singoli fogli la sola parte riguardante le fatture.

Proprio ieri ho fatto un qualcosa del genere per l'utente di un altro forum ma non conoscendo la struttura dei tuoi dati non posso dire se quella soluzione può andare bene per te.

I file si possono allegare con filedropper o dropbox

Alfredo
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: Macro creazione riepilogo da fogli diversi

Postdi alebus » 01/04/15 15:33

Grazie mille Alfredo,
ecco qua un file con la struttura semplificata:
http://www.filedropper.com/esempio_1

Spero che si veda!
alebus
Newbie
 
Post: 7
Iscritto il: 01/04/15 14:16

Re: Macro creazione riepilogo da fogli diversi

Postdi alfrimpa » 02/04/15 11:20

Ciao Ale

Ti allego il tuo file con una macro che (spero) faccia quello che hai chiesto http://www.filedropper.com/alebus

questa è la macro

Codice: Seleziona tutto
Sub Ricopia()
Dim i As Integer
Dim lr As Long
Dim dblr As Long
Application.ScreenUpdating = False
For i = 2 To ThisWorkbook.Sheets.Count
    Sheets(i).Select
    lr = Range("k" & Rows.Count).End(xlUp).Row
    Range("F13:k" & lr).Select
    dblr = Worksheets("DBFATTURE").Range("a" & Rows.Count).End(xlUp).Row
    Selection.Copy 'Destination:=Worksheets("DBFATTURE").Range("a" & dblr + 1)
    Worksheets("DBFATTURE").Select
    Range("A" & dblr + 1).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Next i
Application.ScreenUpdating = True
Worksheets("DBFATTURE").Activate
Range("a1").Select
End Sub


Sul foglio DBFATTURE ti ho messo un pulsante in alto a destra "Copia in Archivio; cliccaci su e la macro viene eseguita.

Fai dei test e fammi sapere se ci sono cose da correggere o altro.

Sei capace, poi, di trasferire il tutto sul tuo file (in teoria potrebbe anche non funzionare correttamente perché avendo fatto le prove su un file ridotto quello completo potrebbe avere "situazioni" diverse da quelle da me considerate).

Spero di essere stato chiaro e resto in attesa.

Alfredo

P.S. Tu hai conoscenze di macro e VBA? Che versione di Excel utilizzi?
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: Macro creazione riepilogo da fogli diversi

Postdi alebus » 03/04/15 10:47

Mille grazie per la risposta Alfredo, allora io non so niente di VBA (inizio ora, anzi se qualcuno ha un manuale/info basiche da consigliarmi...), la mia vers. di Excel è 2010.
Ho provato la query che hai mandato nel mio file e ci sono delle cose che non mi tornano:
1- incolla anche le celle vuote (questo lo faceva anche nel file di esempio), questa funzione ActiveSheet.UsedRange.Select può funzionare su un range di celle? nel mio caso, se la colonna "Codice" è compilata (colonna F) lo sono anche le celle attigue della stessa riga;
2- il copia incolla nel file di esempio prende il range di righe corretto che ti avevo segnalato, mentre se lo riporto nel mio file prende un altro intervallo di celle (in particolare righe superiori) che non so a cosa facciano riferimento;
3- è possibile attivare la macro in modo che sostituisca le righe nel "DB FATTURE" invece che le aggiunga sotto?
4- Infine, purtroppo il nome dei fogli non è progressivo (cioè i codici delle commesse) quindi mi fa il copia incolla solo del primo foglio, mentre salta gli altri; devo indicare il nome dei fogli nella macro oppure posso fare in modo che gli peschi da un elenco?

Grazie mille ancora, scusami per la valanga di domande, mi piacerebbe imparare ad arrangiarmi, ma al momento è un tema un po' oscuro per me...
alebus
Newbie
 
Post: 7
Iscritto il: 01/04/15 14:16

Re: Macro creazione riepilogo da fogli diversi

Postdi Flash30005 » 03/04/15 13:17

Ciao Alebus e benvenuta nel Forum

Inserisci questa macro in un modulo (con ALT + F11 entri nell'editor VBA e sul frame di destra incolli l'intera macro)

Codice: Seleziona tutto
Sub CreaReport()
Dim NF As Integer
Dim URF As Long
Dim URDB As Long
Dim FF As Worksheet
Dim FDB As Worksheet
Set FDB = Worksheets("DBFATTURE")
FDB.Range("A2:Z65000").ClearContents
Application.ScreenUpdating = False
For NF = 2 To ThisWorkbook.Sheets.Count
If Sheets(NF).Name <> "DBFATTURE" Then
   Set FF = Worksheets(Worksheets(NF).Name)
    URF = FF.Range("K" & Rows.Count).End(xlUp).Row
    URDB = Worksheets("DBFATTURE").Range("A" & Rows.Count).End(xlUp).Row
    FF.Range("F13:K" & URF).Copy
    Worksheets("DBFATTURE").Range("A" & URDB + 1).PasteSpecial Paste:=xlPasteValues
End If
Next NF
Application.ScreenUpdating = True
FDB.Select
Range("A1").Select
End Sub


Rinomina il Tuo Foglio "DB FATTURE" in "DBFATTURE" (senza spazi)

Avvia la macro

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 creazione riepilogo da fogli diversi

Postdi alebus » 03/04/15 15:12

Grazie mille a entrambi, ho messo assieme i due codici e mi funziona così:

Codice: Seleziona tutto
Sub CreaDBFatture()
Dim i As Integer
Dim lr As Long
Dim dblr As Long

Application.ScreenUpdating = False
Sheets("DBFATTURE").Select
Range("A2:Z65000").ClearContents
For i = 2 To ThisWorkbook.Sheets.Count
    If Sheets(i).Name <> "DBFATTURE" Then
        Sheets(i).Select
        lr = Range("F" & Rows.Count).End(xlUp).Row
        Range("F7:K" & lr).Select
        dblr = Worksheets("DBFATTURE").Range("A" & Rows.Count).End(xlUp).Row
        Selection.Copy 'Destination:=Worksheets("DBFATTURE").Range("A" & dblr + 1)
        Worksheets("DBFATTURE").Select
        Range("A" & dblr + 1).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    End If
Next i

Application.ScreenUpdating = True
Worksheets("DBFATTURE").Activate
Range("a1").Select
End Sub





Ma è possibile inserire una macro per eliminare le righe vuote alla fine del copia-incolla?

Ancora grazie
alebus
Newbie
 
Post: 7
Iscritto il: 01/04/15 14:16

Re: Macro creazione riepilogo da fogli diversi

Postdi alfrimpa » 04/04/15 08:10

Ciao Ale

Ma la mia macro e quella di Flash (che saluto) non creano righe vuote e funzionano correttamente.

Certo quella di Flash (data la sua esperienza) è più "professionale" ma entrambe pervengono allo stesso risultato.

Tu dici che hai fatto un "merge" delle due; perchè? Anche le altre sul tuo file creano righe vuote?

Se una macro non funziona correttamente si cerca di capire dove è sbagliata e di conseguenza la si corregge; non si crea un'altra macro per riparare ai difetti della precedente.

Sul tuo file reale la macro di Flash come ti funziona?

Saluti e Buona Pasqua

Alfredo
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: Macro creazione riepilogo da fogli diversi

Postdi alebus » 07/04/15 09:37

Buongiorno e bentornati dalle vacanze pasquali, grazie per le risposte...scusate ma non conoscendo proprio niente di VBA cercavo di far girare le macro sul mio file reale, mettendo delle "toppe".
Sul mio file reale le due macro creano delle righe vuote e riportano anche delle intestazioni di colonna che sono sulla riga superiore...se cambio il range di celle da selezionare e copiare, questa problematica si corregge, ma rimangono le righe vuote!

Codice: Seleziona tutto
Sub CreaReport()
Dim NF As Integer
Dim URF As Long
Dim URDB As Long
Dim FF As Worksheet
Dim FDB As Worksheet
Set FDB = Worksheets("DBFATTURE")
FDB.Range("A2:Z65000").ClearContents
Application.ScreenUpdating = False
For NF = 2 To ThisWorkbook.Sheets.Count
If Sheets(NF).Name <> "DBFATTURE" Then
   Set FF = Worksheets(Worksheets(NF).Name)
    URF = FF.Range("F" & Rows.Count).End(xlUp).Row
    URDB = Worksheets("DBFATTURE").Range("A" & Rows.Count).End(xlUp).Row
    FF.Range("F7:K" & URF).Copy
    Worksheets("DBFATTURE").Range("A" & URDB + 1).PasteSpecial Paste:=xlPasteValues
End If
Next NF
Application.ScreenUpdating = True
FDB.Select
Range("A1").Select
End Sub


Grazie ancora!
Alessia

N.B Utilizza il Tag Code quando inserisci codici di macro o formule - Flash
alebus
Newbie
 
Post: 7
Iscritto il: 01/04/15 14:16

Re: Macro creazione riepilogo da fogli diversi

Postdi Flash30005 » 07/04/15 10:32

Se hai delle righe vuote significa che non hai postato un file identico a quello che hai realmente
Non sapendo, quindi, lo schema effettivo non possiamo aiutarti anche se la soluzione sicuramente si trova.

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 creazione riepilogo da fogli diversi

Postdi alfrimpa » 07/04/15 13:17

Stavo per scrivere la stessa cosa anch'io :)

Se Alessia lo ritenesse opportuno e la cosa non fosse contraria allo spirito ed al regolamento del Forum mi dichiaro disponibile a ricevere "in privato" il file reale.

Qualora si dovesse pervenire ad una soluzione definitiva sarà mia cura (o di Alessia) pubblicarla sul Forum ad eventuale beneficio di anche altri utenti.

Alfredo
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: Macro creazione riepilogo da fogli diversi

Postdi alebus » 07/04/15 15:48

Dite che ho fatto un casino quando ho tolto i dati reali? :D

Beh se fosse possibile ti mando una copia più strutturata del file!
alebus
Newbie
 
Post: 7
Iscritto il: 01/04/15 14:16

Re: Macro creazione riepilogo da fogli diversi

Postdi alfrimpa » 07/04/15 16:43

alebus ha scritto:Dite che ho fatto un casino quando ho tolto i dati reali? :D


Beh direi che la cosa è altamente probabile :lol:

Fai un confronto tra la struttura del tuo file reale e quello che hai allegato e vedrai che quasi sicuramente ci saranno delle diversità (altrimenti non si spiegherebbe la difformità di comportamento del codice mio e di Flash tra il file che hai allegato e quello reale.)

Riprova ad allegare quello "vero" con dati fittizi.

Alfredo
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: Macro creazione riepilogo da fogli diversi

Postdi Flash30005 » 07/04/15 20:49

Faccio un tentativo alla "cieca"
prova questa in sostituzione della precedente
Codice: Seleziona tutto
Sub CreaReport2()
Dim NF As Integer
Dim URF As Long
Dim URDB As Long
Dim FF As Worksheet
Dim FDB As Worksheet
Set FDB = Worksheets("DBFATTURE")
FDB.Range("A2:Z65000").ClearContents
Application.ScreenUpdating = False
For NF = 2 To ThisWorkbook.Sheets.Count
If Sheets(NF).Name <> "DBFATTURE" Then
   Set FF = Worksheets(Worksheets(NF).Name)
    URF = FF.Range("K" & Rows.Count).End(xlUp).Row
    For RRF = 13 To URF
        If FF.Range("K" & RRF).Value <> "" Then
            URDB = Worksheets("DBFATTURE").Range("A" & Rows.Count).End(xlUp).Row + 1
            FF.Range("F" & RRF & ":K" & RRF).Copy
            Worksheets("DBFATTURE").Range("A" & URDB).PasteSpecial Paste:=xlPasteValues
        End If
    Next RRF
End If
Next NF
Application.ScreenUpdating = True
FDB.Select
Range("A1").Select
End Sub


Se non va pubblica un foglio più coerente con l'originale

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 creazione riepilogo da fogli diversi

Postdi alebus » 09/04/15 15:26

Scusate per il ritardo della risposta: l'ultima macro di Flash funziona alla perfezione!!

Perciò non vi rompo più le scatole :D ...avete da consigliarmi qualche manuale/formulario per capire almeno i comandi di base?

Grazie mille ancora a tutti
alebus
Newbie
 
Post: 7
Iscritto il: 01/04/15 14:16

Re: Macro creazione riepilogo da fogli diversi

Postdi alfrimpa » 09/04/15 16:22

Ciao Alessia

Quanto alla tua domanda su come e dove imparare a programmare in VBA direi che (sempre considerando un impegno da autodidatta) esistono due strade a mio avviso complementari (cioè che l'una non esclude l'altra): lo studio di testi su Excel e VBA ed Internet.

Per quel che concerne la bibliografia basta se fai una banale ricerca con Google e troverai di tutto dal manualetto pocket al volumone da diverse centinaia di pagine; io ti consiglierei uno di questi ultimi in quanto così avresti un testo completo ed in più fai la spesa una sola volta e non ci pensi più.

Per l'uso generale di Excel ti consiglierei relativamente al 2007 questo

h t t p ://www.amazon.it/Excel-2007-Bible-John-Walkenbach/dp/0470044039/ref=sr_1_3?ie=UTF8&qid=1428416202&sr=8-3&keywords=excel+2007

Per il VBA invece quest'altro

h t t p ://www.amazon.it/Excel-2007-Power-Programming-With/dp/0470044012/ref=pd_sim_eb_1?ie=UTF8&refRID=1HVRH6Y2V7VZKNBFRR7P è in inglese ma molto facile da seguire

in italiano su Amazon ho trovato questo relativo al 2013

h t t p://www.amazon.it/Microsoft-Excel-2013- ... +salvaggio

Su Internet ti segnalo questi siti sul VBA:

h t t p://mikevba.altervista.org/cerca/cerca_full.php
h t t p://forum.wintricks.it/showthread.php?t=155252
h t t p://www.ozgrid.com/VBA/ (in inglese)

ed infine seguire con costanza i forum che si occupano di Excel.

Direi che ce n'è abbastanza :)

Alfredo
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli


Torna a Applicazioni Office Windows


Topic correlati a "Macro creazione riepilogo da fogli diversi":


Chi c’è in linea

Visitano il forum: Nessuno e 76 ospiti