PDA

Visualizza la versione completa : [vb6 - vba] creare un foglio di excel senza fogli predefiniti


 
luisa227
18-07-2008, 12:24
Ho una curiosit da levarmi...

uso principalmente vba, con il quale creo un nuovo file di excel in cui copio altri fogli di lavoro da un altro file.

Quindi alla fine mi ritrovo con i fogli di lavoro copiati + i 3 fogli predefiniti (Foglio1,Foglio2, Foglio3).
Volendo rimanere SOLO con i fogli copiati senza quindi i 3 fogli predefiniti, semplicemente sempre tramite vba cancello i tre fogli utilizzando il metodo delete (sheet("Foglio1").delete).

Mi chiedevo per se esiste un altro metodo che mi permetta di creare gi alla partenza un file di excel senza fogli....

Esiste?
P.s ho trovato il comando Application.SheetsInNewWorkbook=1
per lo zero non lo accetta...

Grazie
luisa

andreaciao_22
18-07-2008, 14:49
era proprio il metodo che ti volevo consigliare....

basta che dopo aver creato la cartella nuova e prima di copiare tu rinomini il foglio all'interno di essa tipo: "!!!|||!!!" e dopo la copia lo cancelli e salvi la cartella... cos l'utente non si accorge di nulla....

se vuoi io ho gi fatto un'add-in funzionante per excel che f questo e altro... se ti va di darci un'occhiata, contattami...

luisa227
18-07-2008, 15:30
Originariamente inviato da andreaciao_22
era proprio il metodo che ti volevo consigliare....

basta che dopo aver creato la cartella nuova e prima di copiare tu rinomini il foglio all'interno di essa tipo: "!!!|||!!!" e dopo la copia lo cancelli e salvi la cartella... cos l'utente non si accorge di nulla....

se vuoi io ho gi fatto un'add-in funzionante per excel che f questo e altro... se ti va di darci un'occhiata, contattami...

Per cosi farei un'operazione in pi inutile perch io copio dei fogli in un nuovo file. E fino a qui ok. Il problema dopo: nel nuovo file avr i fogli copiati ... e per ho sempre un foglio (il foglio1) che non centra nulla. Rinominarlo e ricancellarlo non avrebbe senso!

andreaciao_22
18-07-2008, 15:47
ciao Luisa,

Prova questo codice da vba di excel



Sub ProvaCopia()
Dim NewBook As Workbook, ActWkb As Workbook, CopySheet As Worksheet, shNewBook As Worksheet
Dim intShNew As Integer, scUpdate As Boolean, dpAlert As Boolean
With Application
scUpdate = .ScreenUpdating
dpAlert = .DisplayAlerts
intShNew = .SheetsInNewWorkbook
.ScreenUpdating = False
.SheetsInNewWorkbook = 1
.DisplayAlerts = False
Set ActWkb = .ActiveWorkbook 'o il workbook da cui devi copiare
Set CopySheet = ActWkb.Sheets(1)
Set NewBook = .Workbooks.Add
Set shNewBook = NewBook.Sheets(1)
shNewBook.Name = "!!!|||!!!"
CopySheet.Copy shNewBook
shNewBook.Delete
NewBook.Activate
Set shNewBook = Nothing
Set NewBook = Nothing
Set CopySheet = Nothing
Set ActWkb = Nothing
.SheetsInNewWorkbook = intShNew
.ScreenUpdating = scUpdate
.DisplayAlerts = dpAlert
End With
End Sub


dimmi cosa ti esce

luisa227
18-07-2008, 16:33
Originariamente inviato da andreaciao_22
ciao Luisa,

Prova questo codice da vba di excel
...

s, effettivamente funziona, ma... che differenza c tra la tua funzione ed il cancellarmi dopo il Foglio1???

Non ce neanche il caso di rinominare il foglio in !!!!!! infatti se levo il codice uguale! Il delete o prima o dopo lo devo usare.



Sub ProvaCopia()
Dim NewBook As Workbook, ActWkb As Workbook, CopySheet As Worksheet, shNewBook As Worksheet
Dim intShNew As Integer, scUpdate As Boolean, dpAlert As Boolean
With Application
scUpdate = .ScreenUpdating
dpAlert = .DisplayAlerts
intShNew = .SheetsInNewWorkbook
.ScreenUpdating = False
.SheetsInNewWorkbook = 1
.DisplayAlerts = False
Set ActWkb = .ActiveWorkbook 'o il workbook da cui devi copiare
Set CopySheet = ActWkb.Sheets(1)
Set NewBook = .Workbooks.Add
Set shNewBook = NewBook.Sheets(1)
'shNewBook.Name = "!!!|||!!!"
CopySheet.Copy shNewBook
shNewBook.Delete
NewBook.Activate
Set shNewBook = Nothing
Set NewBook = Nothing
Set CopySheet = Nothing
Set ActWkb = Nothing
.SheetsInNewWorkbook = intShNew
.ScreenUpdating = scUpdate
.DisplayAlerts = dpAlert
End With
End Sub

andreaciao_22
18-07-2008, 16:39
il problema che se un utente ti copia un foglio col nome "Foglio1" tu sei fregata, tesoro.... e poi sempre in quel caso excel ti rinomina il foglio copiato come "Foglio1(2)" meglio correggere ora che incazzarsi di brutto poi...

o sbaglio?

comunque se vuoi scrivermi ecco la mia mail (andrea.m@tiennecommerciale.it) se vuoi chiedere qualcosa a riguardo...

luisa227
18-07-2008, 17:19
Originariamente inviato da andreaciao_22
il problema che se un utente ti copia un foglio col nome "Foglio1" tu sei fregata, tesoro.... e poi sempre in quel caso excel ti rinomina il foglio copiato come "Foglio1(2)" meglio correggere ora che incazzarsi di brutto poi...

o sbaglio?

comunque se vuoi scrivermi ecco la mia mail (andrea.m@tiennecommerciale.it) se vuoi chiedere qualcosa a riguardo...

ok, ho capito quello che intendi (anche se impossibile che succeda perch sono io a copiarmi automaticamente fogli gi rinominati...) .

ps. ti ho mandato un pvt per l'add-inn (se a pagamento non mi interessa :D )
Grazie ancora :smack:

Loading