Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

macro per rinominare il foglio di lavoro

858 views
Skip to first unread message

d_g_

unread,
Jul 20, 2009, 12:14:11 PM7/20/09
to
Sono un principiante
Le Macro ( Vba ) per ora mi sono limitato a compilarle usando il
registratore Macro.

Mi ritrovo con una cartella di lavoro composta da 50 fogli ( pressoche
identici nella forma ma diversi nel contenuto) e inizialmente
denominati x,x(1),x(2),x(3).......x(50)

In ciascun Foglio nella casella K3 ᅵ contenuta indicata una stringa
variabile ( tipo :F-milano-090711-71

Vorrei una macro che "leggesse" il contenuto variabile della stringa in
K3 e rinominasse il foglio ( attivo) con quel Valore.

non voglio copiarlo spostarlo o salvarlo separatamente, voglio solo
rinominarlo da "x(1)" a " stringa contenuta nella cella K3 "
Grazie a chi mi sarᅵ d'aiuto

se poi mi segnalate qualche buona lettura sul web per un principiante
grazie

d_g

Mauro Gamberini

unread,
Jul 20, 2009, 12:32:42 PM7/20/09
to
> In ciascun Foglio nella casella K3 � contenuta indicata una stringa
> variabile ( tipo :F-milano-090711-71
>
> Vorrei una macro che "leggesse" il contenuto variabile della stringa in
> K3 e rinominasse il foglio ( attivo) con quel Valore.
>

Copia/incolla questa in un modulo
standard(Inserisci-->Modulo)
e lanciala:

Public Sub m()

On Error GoTo RigaErrore

Dim sh As Worksheet

For Each sh In Worksheets
With sh
If .Range("K3").Value <> "" Then
.Name = .Range("K3").Value
End If
End With
Next

RigaChiusura:
Set sh = Nothing
Exit Sub

RigaErrore:
MsgBox Err.Number & vbNewLine & Err.Description
Resume RigaChiusura

End Sub


Riporta, per favore, eventuali errori.
Qui ho intercettato solo la possibilit�
che K3 sia vuota.


--
---------------------------
Mauro Gamberini
http://www.riolab.org/
http://blog.maurogsc.eu/

d_g_

unread,
Jul 20, 2009, 1:33:56 PM7/20/09
to
Grazie
ma .....

Mauro Gamberini ha scritto:
>> In ciascun Foglio nella casella K3 ᅵ contenuta indicata una stringa

>> variabile ( tipo :F-milano-090711-71
>>
>> Vorrei una macro che "leggesse" il contenuto variabile della stringa in
>> K3 e rinominasse il foglio ( attivo) con quel Valore.
>>

> Public Sub m()
>
> On Error GoTo RigaErrore
>
> Dim sh As Worksheet
>

se ho capito crei/assegni la variabile sh come ( worksheet = foglio )

> For Each sh In Worksheets
> With sh
> If .Range("K3").Value <> "" Then
> .Name = .Range("K3").Value
> End If
> End With
> Next

questo ᅵ un ciclo ? non capisco me lo spiegheresti ?

> RigaChiusura:
> Set sh = Nothing
> Exit Sub

????? ᅵ la chiusura del ciclo

> RigaErrore:
> MsgBox Err.Number & vbNewLine & Err.Description
> Resume RigaChiusura

questa ᅵ la gestione dell'errore

> End Sub
>
Allora, l'ho inserita nelle macro della mia cartella di lavoro
al termine del ciclo il nome foglio corrisponde al testo inserito in K3
(F-milano-090711-71)
pero' mi RINOMINA anche IL FOGLIO SUCCESSIVO COME
F-XXXXXX-090711-71 COSA CHE NON MI SERVE
( e poi si pianta ) e mi da : il seguente errore :

1004 impossibile rinominare un foglio con un nome di un altro foglio, di
un riferimento ad un oggetto libreria o di una cartella di lavoro
riferita da Visual Basic

UNA COSA PIᅵ SEMPLICE NON C'ᅵ ( TIPO LEGGI COPIA INCOLLA )
non devo rinominare tutti i fogli in sequenza ma solo uno, uno alla
volta .

cmq grazie

Mauro Gamberini

unread,
Jul 20, 2009, 2:17:46 PM7/20/09
to
> UNA COSA PI� SEMPLICE NON C'� ( TIPO LEGGI COPIA INCOLLA )

> non devo rinominare tutti i fogli in sequenza ma solo uno, uno alla
> volta .
>

Prova.
Vai nel foglio da rinominare e lancia
la macro qui sotto:

Public Sub m()

On Error GoTo RigaErrore

Dim lRisposta As Long
lRisposta = MsgBox(Prompt:="Vuoi rinominare il foglio?", _
Title:="Attenzione", _
Buttons:=vbYesNo + vbQuestion)


If lRisposta = vbYes Then
With ActiveSheet


If .Range("K3").Value <> "" Then
.Name = .Range("K3").Value
End If
End With

End If

RigaChiusura:
Exit Sub

RigaErrore:
MsgBox Err.Number & vbNewLine & Err.Description
Resume RigaChiusura

End Sub

Ricorda: max 31 caratteri per il nome del foglio.

0 new messages