Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Creare riepilogo fatturazione mensile per clienti

Ultimo Aggiornamento: 01/05/2017 23:06
Post: 2
Registrato il: 20/02/2009
Età: 57
Utente Junior
OFFLINE
26/02/2009 12:27

Ciao a tutti, avrei bisogno del vostro aiuto:D

Ho creato un file di fatturazione annuale di clienti del quale devo creare un riepilogo mensile per cliente, estraendo i dati delle celle B7:D7 da “Fatturazione09” ad un altro foglio.

In “Fatturazione09” ho inserito i seguenti campi:
Cliente  |DATA FATT |NUMERO FATT |IMPORTO FATT
cc-0001 |02-01-09   |0001              |1.000,00 €

Con la seguente formula: =SE(VAL.VUOTO(A2);"";CERCA.VERT(A2;Anagrafica!$1:$200;CONFRONTA("Ragione Sociale";Anagrafica!$1:$1;0);FALSO))

S’effettua una ricerca nella colonna "Ragione Sociale " di un altro foglio nominato "Anagrafica" in base al codice di cliente, fino qui tutto e ok, e mi compare la Ragione Sociale del cliente.

Adesso, tramite il codice di cliente, mi dovrebbe riempire la cella A7 (che sarebbe: Data Fatt)
con la seguente formula: =SE(VAL.VUOTO($A$2);"";CERCA.VERT($A$2;Fatt_Globale09;CONFRONTA("DATA_FATT";Fatturazione09!$1:$1;0);FALSO))

E cosi via con le celle B7 e C7, ma il fatto e che mi da errore “#N/D”… mi son bloccata e non vedo con chiarezza dove possa stare l’errore.

A questa formula si dovrebbe aggiungere anche la condizione di ricerca mensile (ad es. gennaio, e cosi per ogni mese individuale).

Ringrazierei tutto l’aiuto che mi potete apportare.

Una saluto, BXA
Post: 1.609
Registrato il: 01/05/2006
Utente Veteran
2010
OFFLINE
27/02/2009 22:33

Prova a vedere l'esempio dove ho aggiunto il Foglio "Prova2" dove al posto delle formule utilizzo la macro


Sub Filtra()
Application.ScreenUpdating = False
Range("A7:C36").Select
Selection.ClearContents
Sheets("Fatturazione09").Select
Range("A7").Select
Selection.AutoFilter
ActiveSheet.Range("$A$5:$N$2506").AutoFilter Field:=1, Criteria1:=Sheets("Prova2").Range("A2")
Range("B8:D2506").Select
Selection.Copy
Sheets("Prova2").Select
Range("A7").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Fatturazione09").Select
Selection.AutoFilter
Range("A4").Select
Application.CutCopyMode = False
Sheets("Prova2").Select
Range("A2").Select
End Sub


che filtra i dati in base al codice cliente inserito nella cella A2.

Ciao
Antonio
Ciao
Antonio
(Versione excel:2003/2010)
Post: 2
Registrato il: 20/02/2009
Età: 57
Utente Junior
OFFLINE
28/02/2009 01:14

Ciao Antonio... e grazie infinite, e giusto quello che avevo bisogno. [SM=x423028]

Avrei alcune domande in più...
- in questa macro che mi hai creato, si potrebbe aggiungere la condizione che mi estrai solo le fatture del mese di gennaio e cosi via per ogni mese in questione?

- Per ogni cliente vorrei creare un file con fogli dei corrispondenti mesi di fatturazione... questo sarebbe possibile?
  Se si, che riga e come dovrei modificare nella macro?

Un saluto, BXA
Post: 1.612
Registrato il: 01/05/2006
Utente Veteran
2010
OFFLINE
28/02/2009 10:38

E' un pò complicato per me districarmi con VB, ci capico poco.
Sono riuscito, aggiungendo una colonna di appoggio al Foglio "Fatturazione09" usando la funzione MESE() ad ottenere il mese da impostare poi come criterio al filtro
Quindi al foglio Prova2 in A2 scegli il codice cliente e in A3 inserisci il mese (a numero 1 per gennaio, 2 per Febbraio, ecc...) e poi esegui la macro


Sub Filtra()
Application.ScreenUpdating = False
Range("A7:C36").Select
Selection.ClearContents
Sheets("Fatturazione09").Select
Range("A7").Select
Selection.AutoFilter
ActiveSheet.Range("$A$5:$N$2506").AutoFilter Field:=1, Criteria1:=Sheets("Prova2").Range("A2")
ActiveSheet.Range("$A$5:$O$2506").AutoFilter Field:=15, Criteria1:=Sheets("Prova2").Range("A3")
Range("B8:D2506").Select
Selection.Copy
Sheets("Prova2").Select
Range("A7").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Fatturazione09").Select
Selection.AutoFilter
Range("A4").Select
Application.CutCopyMode = False
Sheets("Prova2").Select
Range("A2").Select
End Sub


A limite la colonna O (di appoggio) la nascondi.

Ciao
Antonio
Ciao
Antonio
(Versione excel:2003/2010)
Post: 3
Registrato il: 20/02/2009
Età: 57
Utente Junior
OFFLINE
28/02/2009 13:03

Buon Sabato e mille grazie Antonio, funziona alla perfezione.

Adesso vorrei creare il file per ogni cliente con la sua fatturazione mensile.
Mi spiego: file1= Cliente1, dentro di questo file ci saranno 12 fogli coi mesi - foglio1= Gennaio; foglio2=Febbraio; foglio3=Marzo; ... e cosi fino a dicembre.

Come si farebbe a linkare nella macro questi due file tra di loro?
([esempio_fatt_globale.xls]Fatturazione09 e [Cliente1.xls]Gennaio09)

Un saluto, BXA
Post: 1.618
Registrato il: 01/05/2006
Utente Veteran
2010
OFFLINE
03/03/2009 21:43

Più o meno prova qualcosa del genere

Windows("Cliente1.xls").Activate
Sheets("Gennaio09").Select

oppure

Workbooks("Cliente1.xls").Activate
Sheets("Gennaio09").Select


Attiva il file "Cliente1.xls" e seleziona il Foglio "Gennaio09"
Ovviamente i due file devono essere aperti, altrimenti occorre altra istruzione che fà aprire il file tipo:

Workbooks.Open "C:\Nome percorso\Nome File.xls"

Da cambiare il percorso

Ciao
Antonio
Ciao
Antonio
(Versione excel:2003/2010)
Post: 0
Registrato il: 05/05/2016
Utente Junior
OFFLINE
05/05/2016 22:21

molto utile
grazie a tutti era quello che cercavo da tempo
Post: 0
Registrato il: 10/05/2016
Città: MILANO
Età: 40
Utente Junior
OFFLINE
10/05/2016 14:55

Grazie
era l'esempio che stavo cercando da un pò di tempo. Grazie
Post: 0
Registrato il: 01/05/2017
Città: MILANO
Età: 76
Utente Junior
OFFLINE
01/05/2017 23:06

Ottimo grazie :)
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 07:07. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com