Rinomina fogli

Anonimo
2013-10-05T16:25:57+00:00

Buonasera,

In una cartella di lavoro vorrei con una macro rinominare tutti i fogli ("Nome01", "Nome02"....."Nome10", ecc,  sia visibili che nascosti ad eccezione dei fogli "Pippo" e "Pluto".

Può qualcuno aiutarmi per favore?

Grazie.

Giuseppe

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2013-10-06T09:47:59+00:00

Grazie Andrea.

L'ho provata e mi da esattamente quello che volevo. Grazie davvero.

Solo un'ultima domanda: come posso fare eseguire questa tua macro in sequenza con un'altra macro (diciamo "Macro1) richiamando solo "Macro1"?

Giuseppe

Ad esempio così:

Call renameSheets

o più semplicemente:

renameSheets

Andrea.

La risposta è stata utile?

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2013-10-06T08:52:37+00:00

Ciao Andrea,

Grazie del tuo aiuto.

Hai ragione: forse ho posto la domanda in maniera poco chiara.....

Io vorrei rinominare tutti i fogli indipendentemente dal nome che hanno allo stato in un Nome numerato progressivamente. Esempio: Giovanni1, Giovanni2, Giovanni3,....Giovanni(n). Ad eccezione dei Fogli che attualmente hanno i Nomi Pippo, Pluto che invece non devono essere rinominati.

In modo da potere richiamare la macro e rinominare tutti i Fogli con l'eccezione detta.

Grazie ancora e buona domenica.

Giuseppe

Ciao Giuseppe,

con la macro che ti ho postato lo puoi fare ... certo può risultare scomodo se nella cartella ci sono moltissimi fogli, ma ha il vantaggio di attribuire la progressività desiderata senza spostare preventivamente o a posteriori i fogli.

Quest'altra, invece, fa più o meno quello che chiedi.

Andrea.


Sub renameSheets()

Dim ws As Worksheet

Dim i As Integer

On Error Resume Next

Const sCommonPart       As String = "Sheet"

Const sFogliInalterati  As String = "Foglio1,Foglio2,Foglio3"

For Each ws In ThisWorkbook.Worksheets

If InStr(sFogliInalterati, ws.Name) = 0 Then

i = i + 1

ws.Name = sCommonPart & i

End If

Next

Set ws = Nothing

End Sub


La risposta è stata utile?

0 commenti Nessun commento

5 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2013-10-06T09:23:14+00:00

    Grazie Andrea.

    L'ho provata e mi da esattamente quello che volevo. Grazie davvero.

    Solo un'ultima domanda: come posso fare eseguire questa tua macro in sequenza con un'altra macro (diciamo "Macro1) richiamando solo "Macro1"?

    Giuseppe

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2013-10-06T07:22:19+00:00

    Ciao Andrea,

    Grazie del tuo aiuto.

    Hai ragione: forse ho posto la domanda in maniera poco chiara.....

    Io vorrei rinominare tutti i fogli indipendentemente dal nome che hanno allo stato in un Nome numerato progressivamente. Esempio: Giovanni1, Giovanni2, Giovanni3,....Giovanni(n). Ad eccezione dei Fogli che attualmente hanno i Nomi Pippo, Pluto che invece non devono essere rinominati.

    In modo da potere richiamare la macro e rinominare tutti i Fogli con l'eccezione detta.

    Grazie ancora e buona domenica.

    Giuseppe

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2013-10-05T17:42:44+00:00

    Buonasera,

    In una cartella di lavoro vorrei con una macro rinominare tutti i fogli ("Nome01", "Nome02"....."Nome10", ecc,  sia visibili che nascosti ad eccezione dei fogli "Pippo" e "Pluto".

    Può qualcuno aiutarmi per favore?

    Grazie.

    Giuseppe 

    Ciao Giuseppe,

    senza sapere come rinominare ...

    Modifica nelle righe evidenziate il vecchio ed il corrispondente nuovo nome da assegnare. Inserisci la macro in un modulo generale.

    Andrea.


    Sub renameSheets()

    Dim vbNameOLD As Variant, vbNameNEW As Variant

    Dim i As Integer

    On Error Resume Next

    '---------- modifica qui i nomi dei fogli

    vbNameOLD = Array("Foglio1", "Foglio2", "Foglio3")

    vbNameNEW = Array("Sheet1", "Sheet2", "Sheet3")

    If UBound(vbNameOLD) <> UBound(vbNameNEW) Then Exit Sub

    For i = 0 To UBound(vbNameOLD)

    ThisWorkbook.Worksheets(vbNameOLD(i)).Name = vbNameNEW(i)

    Next

    End Sub


    La risposta è stata utile?

    0 commenti Nessun commento