|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Jun 2012
Messaggi: 2
|
[Visual Basic]Macro numerazione progressiva documento excel
Ciao a tutti,
premetto che di visual basic conosco poco niente ed è per questo che chiedo il vostro aiuto, dato che non riesco a trovare nulla a riguardo in google. Io vorrei fare in modo che, dopo aver creato un template in excel ad esempio di una fattura da compilare, al momento del salvataggio (da bottone o salva con nome..) il nome del file salvato sia ad esempio: Fattura "numero " , dove numero sarà 5 se (nella cartella in cui salvo) è presente 'Fattura 4' e così via... in modo da avere una serie di documenti ordinati per numero. Volevo sapere se esite qualche Macro o operazione in grado di fare questa operazione. grazie dell'aiuto |
|
|
|
|
|
#2 | |
|
Member
Iscritto dal: Aug 2011
Città: Nel cassetto D:
Messaggi: 262
|
Quote:
Se è questo lo scenario, potresti salvare in un file, o magari in un altro modo, la numerazione delle tue fatture, ovvero: Oggi 25/06 creo la fattura N°1, la salvo con la dicitura "Fattura_1"; Domani 26/06 creo la fattura N°2, al momento del salvataggio fai due operazioni basiliari: Leggo il numero dell'ultima fattura fatta salvato nel file "numero_fatture.txt" e gli aggiungo +1. Piccolo codice: Codice:
Dim n_attuale as string = System.Io.File.ReadFile("continua il codice")
Dim n_nuovo as string = n_attuale + 1
Nota, siccome non ho Visual Studio sottomano e non lo utilizzo da mesi ho scritto codice a vento, forse necessità di qualche modifica ma il concetto è quello!
Naturalmente ci sono modi più "puliti" ed "eleganti", come per esempio scrivere nel registro di sistema, ma credo che se si è alle basi, meglio usare metodi di base per poi passare a quelli più complicati! Non so se ti ho aiutato, ma c'ho provato, buona fortuna!
__________________
Non ho una firma, allora? |
|
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Jun 2012
Messaggi: 2
|
Grazie della risposta
Comunque mi sono spiegato male io, il problema non è il template, perchè lo farei proprio base con excel che andrei ad aprire e modificare ogni qualvolta me ne serve uno nuovo. Il problema era automatizzare il nome del salvataggio.. mi spiego meglio: quando vado a compilare il template in excel (con excel) al momento del salvataggio automaticamente il file deve rinominarsi 'Fattura 2' (se è presente 'Fattura 1'), oppure Fattura 500 (se sono presenti 499 fatture prima di lei)... Un pò come quando salvi un documento word e non gli dai un nome.. automaticamete si salva 'Senza Titolo 1' ..'Senza titolo 2' ecc... |
|
|
|
|
|
#4 | |||||
|
Member
Iscritto dal: Aug 2011
Città: Nel cassetto D:
Messaggi: 262
|
Quote:
Dalle mie conoscenze, non sono un esperto, direi che non sia possibile con il solo Excel, ma il vecchio Google per questo esiste Ho trovato delle cose interessanti, mi scuso io per aver fatto confusione con la risposta precedente Ecco a te, spero che riuscirai a risolvere: Link esterno 1:
Link esterno 2:
Ciao e buona serata
__________________
Non ho una firma, allora? |
|||||
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Feb 2001
Messaggi: 290
|
Ciao,
mi sembra di aver capito che il tuo problema è che quando salvi il file xls non riesci a imporgli il nome che desideri, se è cosi, di seguito ti riporto 1 po di codice semplice e che ti risolve il problema. 'presuppongo che tu ti sia calcolato il progressivo, con una qualche routine precedente (tipo quella suggerita sopra), e per es. tu voglia salvare la Fattura 500 in C: 'presuppongo anche l'esistenza di un template in C:, che io per es. chiamo Template_Fattura.xls 'di seguito il codice VB6 Codice:
Dim Wb As Excel.Workbook 'Cartella di lavoro Excel
Dim Ws As Excel.Worksheet 'Foglio Excel
Set Wb = Workbooks.Open("C:\Template_Fattura.xls") 'apro il template
Set WS = Wb.Worksheets(1) 'assegno a WS la pagina 1
' faccio
' quello
' che devo fare
Wb.SaveAs ("C:\Fattura_500.xls") 'qui salvo il file xls con il nuovo nome (senza modificare il template)
Wb.Close 'chiudo il file xls aperto
Set WS = Nothing 'Libero Risorse Excell memoria
Set Wb = Nothing 'Libero Risorse Excell memoria
Spero di aver capito bene, e di esserti stato di aiuto. Ciao.
__________________
S.M. Asus P5KC - Q6600 - 2 Gb Ram - Geforce 8800GT. Ultima modifica di sal_rob : 26-06-2012 alle 20:07. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:45.




















