Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Macro per archiviare dati

475 views
Skip to first unread message

Armando

unread,
Nov 2, 2007, 2:57:37 PM11/2/07
to
Ciao a tutti,
ho un foglio di calcolo col quale faccio delle fatture. Vorrei
inserire una macro che mi permettesse di memorizzare i dati della
fattura (Nome Azienda, numero fattura, data fattura, imponibile, iva
etc) in un altro foglio che ho chiamato "Archivio", per avere sempre a
portata di mano tutte le fatture.

In questo foglio Archivio, le intestazioni delle colonne sono:
A1 Numero Fattura
B1 Data Fattura
C1 Nome Azienda
D1 Indirizzo
E1 CAP
F1 Citta'
G1 P.I.
H1 Imponibile
I1 IVA
L1 Totale Fattura

I valori originali da archiviare li ho nel foglio che si chiama
"Fattura", nell'intervallo di celle AQ18:AQ27

La macro dovrebbe Importare i dati sulla prima riga libera disponibile
nel foglio Archivio

Chi mi aiuta?
Grazie
Armando

Ignazio

unread,
Nov 2, 2007, 3:55:59 PM11/2/07
to
"Armando" <arm...@digrado.com> ha scritto nel messaggio
news:1194029857.9...@o80g2000hse.googlegroups.com...

Ciao Armando,
non sarebbe preferibile fare il contrario?
Cioč, immettere i dati nel foglio "Archivio" e scegliere nel foglio
"Fattura" il numero di fattura da visualizzare/stampare?

--
Ciao,
Ignazio
RIO: www.riolab.org


Armando

unread,
Nov 2, 2007, 4:12:52 PM11/2/07
to
On 2 Nov, 20:55, "Ignazio" <i_putignanoNoS...@SeScriviAvirgilio.it>
wrote:
> "Armando" <arma...@digrado.com> ha scritto nel messaggionews:1194029857.9...@o80g2000hse.googlegroups.com...

>
>
>
>
>
> > Ciao a tutti,
> > ho un foglio di calcolo col quale faccio delle fatture. Vorrei
> > inserire una macro che mi permettesse di memorizzare i dati della
> > fattura (Nome Azienda, numero fattura, data fattura, imponibile, iva
> > etc) in un altro foglio che ho chiamato "Archivio", per avere sempre a
> > portata di mano tutte le fatture.
>
> > In questo foglio Archivio, le intestazioni delle colonne sono:
> > A1 Numero Fattura
> > B1 Data Fattura
> > C1 Nome Azienda
> > D1 Indirizzo
> > E1 CAP
> > F1 Citta'
> > G1 P.I.
> > H1 Imponibile
> > I1 IVA
> > L1 Totale Fattura
>
> > I valori originali da archiviare li ho nel foglio che si chiama
> > "Fattura", nell'intervallo di celle AQ18:AQ27
>
> > La macro dovrebbe Importare i dati sulla prima riga libera disponibile
> > nel foglio Archivio
>
> Ciao Armando,
> non sarebbe preferibile fare il contrario?
> Cioè, immettere i dati nel foglio "Archivio" e scegliere nel foglio

> "Fattura" il numero di fattura da visualizzare/stampare?
>
> --
> Ciao,
> Ignazio
> RIO:www.riolab.org- Nascondi testo tra virgolette -
>
> - Mostra testo tra virgolette -

Per le mie esigenze credo di no
lo troverei molto piu' scomodo
nell'archivio veglio solo mettere i dati riepilogativi, non le
specifiche dei prodotti (nel caso mie lunghissime e tantissime) ne' i
rispettivi prezzi, ne' le quantita', ne' i parziali.

Ignazio

unread,
Nov 2, 2007, 5:04:45 PM11/2/07
to
"Armando" <arm...@digrado.com> ha scritto nel messaggio
news:1194034372....@o3g2000hsb.googlegroups.com...

On 2 Nov, 20:55, "Ignazio" <i_putignanoNoS...@SeScriviAvirgilio.it>

> > ho un foglio di calcolo col quale faccio delle fatture. Vorrei


> > inserire una macro che mi permettesse di memorizzare i dati della
> > fattura (Nome Azienda, numero fattura, data fattura, imponibile, iva
> > etc) in un altro foglio che ho chiamato "Archivio", per avere sempre a
> > portata di mano tutte le fatture.
>
> > In questo foglio Archivio, le intestazioni delle colonne sono:
> > A1 Numero Fattura
> > B1 Data Fattura
> > C1 Nome Azienda
> > D1 Indirizzo
> > E1 CAP
> > F1 Citta'
> > G1 P.I.
> > H1 Imponibile
> > I1 IVA
> > L1 Totale Fattura

Ciao Armando,
visto che le celle sono tutte in sequenza, non è che l'ultima cella è la J1?

> > I valori originali da archiviare li ho nel foglio che si chiama
> > "Fattura", nell'intervallo di celle AQ18:AQ27

Supponendo che l'intervallo del foglio "Archivio" vada da A a J, prova
questa macro (ti suggerisco di provarla su di una copia del tuo file):

Sub ArchiviaFattura()
Dim i As Long
Dim N As Long
Dim Archivio As Worksheet
Dim Fattura As Worksheet
'
Set Archivio = Worksheets("Archivio")
Set Fattura = Worksheets("Fattura")
N = Archivio.Range("A" & Rows.Count).End(xlUp).Row
For i = 1 To 10
Archivio.Range("A1").Offset(N, i - 1).Value = _
Fattura.Range("AQ18").Offset(i - 1, 0).Value
Next
End Sub

elby

unread,
Nov 2, 2007, 5:07:54 PM11/2/07
to
> > RIO:www.riolab.org-Nascondi testo tra virgolette -

>
> > - Mostra testo tra virgolette -
>
> Per le mie esigenze credo di no
> lo troverei molto piu' scomodo
> nell'archivio veglio solo mettere i dati riepilogativi, non le
> specifiche dei prodotti (nel caso mie lunghissime e tantissime) ne' i
> rispettivi prezzi, ne' le quantita', ne' i parziali.

Ciao Armando
È un codice minimo che non controlla l'eventualità che la fattura è
già stata accodata. In una base dati meglio strutturata sarebbe meglio
archiviare i dati inseriti nel foglio fattura in 2 tabelle di
archivio; la prima contenente i dati fattura con il solo riferimento
univoco al cliente; la seconda contenente l'anagrafica dei clienti.
La macro controllerebbe se il cliente della fattura è già in archivio
e se la fattura è già stata archiviata. Avendo alla fine 2 tabelle
correlate tramite l'identificativo univoco cliente, sarebbe possibile
interrogare il tuo database con delle vere query lanciate dall'esterno
( altri file ) dell'origine dati. Comunque tornando a quanto chiedi:
Dove vuoi:

Sub AccodaDatiInArchivio()
Dim DestWS As Worksheet
Dim SourceWS As Worksheet
Dim lngLastRow As Long
Dim SourceRange As Range
Set SourceWS = ThisWorkbook.Sheets("Fattura")
Set DestWS = ThisWorkbook.Sheets("Archivio")
Set SourceRange = SourceWS.Range("AQ18:AQ27")
lngLastRow = LastRow(DestWS)
SourceRange.Copy
DestWS.Range("A" & lngLastRow + 1).PasteSpecial Paste:=xlPasteAll,
Transpose:=True
Application.CutCopyMode = False
End Sub
Function LastRow(sh As Worksheet)
On Error Resume Next
LastRow = sh.Cells.Find(What:="*", _
After:=sh.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
On Error GoTo 0
End Function


Ciao Elio

Armando

unread,
Nov 2, 2007, 6:21:05 PM11/2/07
to
> > > RIO:www.riolab.org-Nasconditesto tra virgolette -

Ho provato le due soluzioni proposte da Ignazio ed Elio.
Funzionano entrambe, e vi ringrazio per la disponibilita'.

Ciao
Armando

0 new messages