Post by FlavioOk, fino a qui mi torna. Come faccio ora a salvare automaticamente un file
per ogni azienda? Ho più di 700 aziende e non volevo farle una per uno.
Quindi un file per ciscuna azienda?
Cambiamo...
Crea un file e chiamalo Modulo.xls.
Deve avere un unico foglio, chiamato Modulo.
Nel Foglio con i dati (qui Dati.xls)
con il foglio con i dati chiamato: Dati.
Inserisci questo codice
in un modulo standard:
Public Sub m()
Dim wk1 As Workbook
Dim wk2 As Workbook
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim lUltRiga As Long
Dim lng As Long
Set wk1 = ThisWorkbook
Set wk2 = Workbooks("Modulo.xls")
With wk1
Set sh1 = Worksheets("Dati")
End With
With wk2
Set sh2 = .Worksheets("Modulo")
End With
With sh1
lUltRiga = .Range("A" & _
.Rows.Count).End(xlUp).Row
For lng = 2 To lUltRiga
sh2.Range("A1").Value = _
.Range("A" & lng).Value
sh2.Range("B3").Value = _
.Range("B" & lng).Value
sh2.Range("C5").Value = _
.Range("C" & lng).Value
wk2.SaveAs Filename:="C:\tuaCartella\" & _
.Range("A" & lng).Value
Set wk2 = Workbooks(wk2.Name)
Set sh2 = wk2.Worksheets("Modulo")
Next
End With
wk2.Close
Set sh2 = Nothing
Set sh1 = Nothing
Set wk2 = Nothing
Set wk1 = Nothing
End Sub
La parte importante è questa:
sh2.Range("A1").Value = _
.Range("A" & lng).Value
sh2.Range("B3").Value = _
.Range("B" & lng).Value
sh2.Range("C5").Value = _
.Range("C" & lng).Value
wk2.SaveAs Filename:="C:\tuaCartella\" & _
.Range("A" & lng).Value
dove la parte a sx dell'uguale è la cella del foglio
Modulo in cui andrò ad incollare il dato, la parte a dx
dell'uguale e la cella da cui andrò a copiare il dato.
Qui figuro di prelevare dalle colonne A,B,C di ciascuna
riga del foglio Dati e incollare in celle diverse nel
foglio Modulo. Sarà tua cura completare e modificare
i riferimenti.
Ogni file verrà salvato nella cartella: C:\tuaCartella
con il nome di ciò che troverò nella colonna Ragione Sociale.
Prova e poi, per favore, riferisci eventuali problemi.
Grazie.
--
---------------------------
Mauro Gamberini
http://www.riolab.org/
http://blog.maurogsc.eu/