maurogsc.eu
|
![]() |
home ==> Excel: come fare per ==> Worksheet: aggiungere fogli e dare nome più numero progressivo
Worksheet: aggiungere fogli e dare nome più
numero progressivo
- VBA
NOTA. La soluzione ed il codice sono forniti *così come sono* e l’autore declina ogni responsabilità per eventuali problemi causati dal codice o dalla soluzione proposta se usati impropriamente. Create e utilizzate una copia del file per le vostre prove, *prima* di utilizzare il codice o la soluzione in files importanti.
1 - Come creare nuovi fogli assegnado un nome più un numero progressivo. Esempio per 10 fogli che chiameremo Pag1, Pag2, ...., Pag10 :
Public Sub m()
'dichiaro le variabili
Dim lng As Long
'impedisco lo sfarfallio dello schermo
Application.ScreenUpdating = False
'in caso di errore(un foglio con lo stesso nome)
'ignoro l'errore e passo all'istruzione successiva
On Error Resume Next
'ciclo 10 volte
For lng = 1 To 10
'aggiungo un foglio
ThisWorkbook.Worksheets.Add
'gli do il nome
ActiveSheet.Name = "Pag" & lng
'impedisco vengano mostrati gli Alerts
'nel caso debba eliminare il foglio
Application.DisplayAlerts = False
'se il foglio non ha uno dei nomi
'prestabiliti(capiterebbe se faccio girare più
'volte la macro)
If ActiveSheet.Name <> "Pag" & lng Then
'elimino il foglio
ActiveSheet.Delete
End If
'ripristino gli Alerts
Application.DisplayAlerts = True
Next
'aggiorno lo schermo
Application.ScreenUpdating = True
End Sub
2 - Come creare nuovi fogli assegnado un nome più un numero progressivo. Questa volta non sappiamo quale numero assegnare, perchè la macro è eseguita più volte e ogni volta deve prendere il primo numero disponibile. i nomi assegnati in questo caso sono: Fornitura1, Fornitura2, ecc. :
Private Sub m()
On Error GoTo RigaErrore
'dichiaro le variabili
Dim lCont As Long
Dim sh As Worksheet
'creo il foglio e metto un riferimento allo stesso
With ThisWorkbook
Set sh = .Worksheets.Add
End With
lCont = 0
'in caso di errore(foglio con nome+numero già presenti)
'ignoro l'errore e passo all'istruzione successiva
On Error Resume Next
'fichè il nome del foglio non sarà uguale
'a Fornitura(lCont)
Do While Not sh.Name = "Fornitura" & lCont
'aumento di 1 il valore della variabile
lCont = lCont + 1
'cerco di dare al foglio il nome
'Fornitura(lCont)
sh.Name = "Fornitura" & lCont
Loop
On Error GoTo 0
'..........
'eventuale codice per gestire il foglio creato
'..........
'riga sempre eseguita
RigaChiusura:
'Set a Nothing della variabile oggetto
Set sh = Nothing
'uscita dalla routine
Exit Sub
'in caso di errore
RigaErrore:
'visualizzo una MsgBox con i dati dell'errore
MsgBox Err.Number & vbNewLine & Err.Description
'vado alla riga di chiusuara
Resume RigaChiusura
End Sub
Per ulteriori informazioni su Microsoft Excel ed il suo Visual Basic, utilizzate questo
forum:
http://social.answers.microsoft.com/Forums/it-IT/officeexcelit/threads
Ultimo aggiornamento di questa pagina: 18/11/2010 - mauro gamberini