› Excel e gli applicativi Microsoft Office › Rinominare Foglio con contenuto di due celle differenti
-
AutoreArticoli
-
Buongiorno a tutti, come faccio a rinominare il foglio corrente con il contenuto di due celle differenti. io riesco a rinominarlo con il solo contenuto di una cella in questo modo:
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("b1").Value <> “” Then .Name = .Range("b1").Value End If End With End If RigaChiusura: Exit Sub RigaErrore: MsgBox Err.Number & vbNewLine & Err.Description Resume RigaChiusura End Sub
grazie a tutti
Ciao Paolo
purtroppo il codice che hai scritto si legge male.
Comunque, credo che in questa riga:
If .Range(“b1”).Value <> “” Then .Name = .Range(“b1”).Value
gli stai dicendo "se B1 non è vuota allora assegna il testo di B1 come nome"
A mio avviso dovresti creare una variabile a cui assegnare il testo delle due celle che vuoi e quindi se B1 non è vuota allo assegna la VARIABILE come nome.
Ciao,
Mario
Se vuoi rinominare il foglio con i valori di due celle come B1 e C1, puoi modificare il tuo codice così:
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("B1").Value <> "" And Range("C1").Value <> "" Then .Name = .Range("B1").Value & "-" & Range("C1").Value ElseIf Range("B1").Value <> "" Or Range("C1").Value <> "" Then .Name = Range("B1").Value & Range("C1").Value End If End With End If RigaChiusura: Exit Sub RigaErrore: MsgBox Err.Number & vbNewLine & Err.Description Resume RigaChiusura End Sub
Ciao
per puliza e coerenza aggiungerei un po di "." prima dei range
If .Range("B1").Value <> "" And .Range("C1").Value <> "" Then .Name = .Range("B1").Value & "-" & Range("C1").Value ElseIf .Range("B1").Value <> "" Or .Range("C1").Value <> "" Then .Name = .Range("B1").Value & .Range("C1").Value End If
-
AutoreArticoli