Ormai č da qualche giorno che sbatto la testa su migliaia di pagine trovate grazie a google, ma purtroppo mai pescato nulla di completo e la mia completa ignoranza in materia non mi permette di comprendere le varie macro trovate per poterle integrare tra di loro.
Sostanzialmente avrei bisogno di questo:
Alla pressione di un tasto una numerazione progressiva nella casella "S2" del tipo "AA0000001", di salvare in una directory precisa il file con il nome "nome_file_AA0000001.xls" e stampare il documento senza perņ alterare il file iniziale eccetto che per il numero progressivo.
Se ho ben capito il tutto dovrebbe collegarsi ad un pulsante al quale assegno la macro e fin qui credo di cavarmela....purtroppo il problema rimane la macro!
Qualche anima pia che vuole aiutarmi?
Michell
Tesinevb
26-03-2011, 11:53
...Alla pressione di un tasto una numerazione progressiva nella casella "S2" del tipo "AA0000001", di salvare in una directory precisa il file con il nome "nome_file_AA0000001.xls" ...Michell
non comprendo bene quello che vuoi fare ma... se intendi questo:
puoi fare a$="nome_file_" + "AA0000001" + ".xls"
bye bye...
Grazie mille per il tuo contributo.
Cerco di spiegarmi meglio.
Su un foglio excel (mi serve per lavoro e vista la crisi sto cercando di arrangiarmi) ho fatto un modulo per le spedizioni (ma stesso procedimento vale per le fatture).
Su questo foglio ho un tasto al quale vorrei assegnare una macro che in sequenza faccia le seguenti cose:
- Numerazione progressiva nella cella "S2"
- Salvataggio in un percorso preciso (senza perņ modificare il file iniziale) con nome file che contenga la numerazione progressiva.
- Avvio processo di stampa.
Appena sono d'avanti al pc faccio un copia/incolla delle varie macro che ho trovato ma che non riesco a combinare....mi da sempre qualche errore!
Michell
Sono riuscito, finalmente, ad assemblare quello che serve a me.
La Macro qui riportata esegue i seguenti comandi (li inserisco nel caso dovessero servire a qualcun'altro e per i motori di ricerca):
+1 alla numerazione progressiva, stampa, salva con con nome in una directory specifica prelevando dati dalle celle e cancella i dati inseriti nel foglio che si usa come template.
Ecco la Macro:
Sub Macro1()
a = Cells(2, "s")
a = a + 1
Cells(2, "s") = a
ActiveWindow.SelectedSheets.PrintOut Copies:=1
Cartella = "C:\.........\" 'percorso completo su cui salvare, ricordarsi la barra inversa alla fine!
NomeFile = Range("S6").Value & Range("AJ1").Value & Range("S2").Value 'cella da cui prendere il nome file
NomeFoglio = "foglio1" 'nome esatto del foglio da copiare
If NomeFile = "" Then Exit Sub
If Right(NomeFile, 4) <> ".xls" Then NomeFile = NomeFile & ".xls"
Sheets(NomeFoglio).Copy
ActiveWorkbook.SaveAs Filename:=Cartella & NomeFile, FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
Windows("nome_file.xlsm").Activate
Sheets("foglio1").Select
Range( _
"S6:AH6,S7:AH7,S8:AH8,E11:G12,M11:M12,O11:O12,Q11:Q12,U18:AG18,T19:AG19,T20:AG20" _
).Select
Range("T20").Activate
Selection.ClearContents
Range("S6:AH6").Select
ActiveWorkbook.Save
End Sub
Nota bene per i quanti avessero intenzione di usare questa macro:
Macro per numerazione progressiva dove (2, "s") indica, nel mio caso, la cella "S2"
Sub Macro1()
a = Cells(2, "s")
a = a + 1
Cells(2, "s") = a
Macro per la stampa
ActiveWindow.SelectedSheets.PrintOut Copies:=1
Macro per il salvataggio.
Personalizzare il percorso C:\...in base alle vostre esigenze e nel caso personalizzare "foglio1" in base alle vostre esigenze.
Cartella = "C:\.........\" 'percorso completo su cui salvare, ricordarsi la barra inversa alla fine!
NomeFile = Range("S6").Value & Range("AJ1").Value & Range("S2").Value 'cella da cui prendere il nome file
NomeFoglio = "foglio1" 'nome esatto del foglio da copiare
If NomeFile = "" Then Exit Sub
If Right(NomeFile, 4) <> ".xls" Then NomeFile = NomeFile & ".xls"
Sheets(NomeFoglio).Copy
ActiveWorkbook.SaveAs Filename:=Cartella & NomeFile, FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
Macro Che cancella i dati dal foglio che si usa come template.
Questa macro l'ho ricavata semplicemente usando la funzione registra macro e le celle riportate qui dentro sono quelle relative al mio foglio e che sicuramente non andranno bene per voi.
Windows("nome_file.xlsm").Activate
Sheets("foglio1").Select
Range( _
"S6:AH6,S7:AH7,S8:AH8,E11:G12,M11:M12,O11:O12,Q11:Q12,U18:AG18,T19:AG19,T20:AG20" _
).Select
Range("T20").Activate
Selection.ClearContents
Range("S6:AH6").Select
ActiveWorkbook.Save
Ora...per completare la macro e renderla perfetta mi manca solo una cosa.
Non riesco in nessun modo a trovare un comando che chiudi il file generato con il nome ricavato dalle celle che resta aperto e devo chiudere a mano!!
Ormai č una settimana che lavoro a questa macro e posso tranquillamente affermare che tramite google non c'č nulla che possa servirmi.
Nessuno che mi aiuti a rendere perfetta questa macro?
Michell
Grazie mille, ma dove lo devo mettere?
Come detto nel VBA sono davvero e totalmente ignorante e le macro sopra riportate sono quasi interamente copiate da internet.
Michell
Edit....come non detto...l'ho messo alla fine della macro che salva con il nome e funziona tutto....nel copia incolla mi era saltata una lettera!
Grazie mille ancora!!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.