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
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/
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
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.