Cambiar de nombre a una hoja

02/02/2006 - 00:21 por Jonathan Milla | Informe spam
Hola algo tan sencillo que no he podido hacer
les pondre el codigo:

Sub AdicionHoja()
Dim wBk As Workbook
Dim ws As Worksheet
Dim BkName As String
Dim newSheetName As String
Dim ruta As String
Dim rutaynombre As String

ruta = "\\servidor\admin\mec\"
BkName = Sheets(1).Range("B2")
newSheetName = Sheets(1).Range("B3")
rutaynombre = ruta + BkName
For Each ws In Worksheets
If ws.Name = newSheetName Or newSheetName = "" Or
IsNumeric(newSheetName) Then
MsgBox "La Hoja existe o esta utilizando un nombre invalido",
vbInformation
Exit Sub
End If
Next
Workbooks.Open Filename:=rutaynombre
Windows("panelmec.xls").Activate
Sheets("Captura").Select
Sheets("Captura").Copy After:=Workbooks(BkName).Sheets(1)
Sheets("Captura").Select


Sheets("Captura").Name = newSheetName ' ESTA LINEA NO ME DEJA CAMBIARLE
' EL NOMBRE A LA HOJA QUE ACABO DE CREAR

End Sub

Que estoy haciendo mal???????
Gracias
 

Leer las respuestas

#1 KL
02/02/2006 - 12:36 | Informe spam
Hola Jonathan,

Yo intentaria hacer algo como el macro que te pongo a continuacion.

Saludos,
KL

Sub AdicionHoja()
Dim sLibro As String, sHoja As String, sRuta As String
Dim Caract As Variant, i As Long
Dim oLibro As Workbook, oHoja As Worksheet

sRuta = "\\servidor\admin\mec\"
sLibro = Sheets(1).Range("B2")
sHoja = Sheets(1).Range("B3")
Caract = Array(":", "\", "/", "?", "*", "[", "]")

'comprobamos si existe el libro y la ruta
If Dir(sRuta & sLibro) = "" Then
MsgBox "El libro """ & sLibro & _
""" no existe en el directorio " & sRuta
Exit Sub
End If

'comprobamos si existe la hoja en el libro
'de origen (no se por que es necesario :-))
On Error Resume Next
Set oHoja = Worksheets(sHoja)
On Error GoTo 0
If Not oHoja Is Nothing Then
MsgBox "La hoja con el nombre " & _
sHoja & " ya existe.", vbCritical
Exit Sub
End If

'comprobamos si el nombre de la hoja es valido
'(no se por que lo de IsNumeric - Excel lo permite)
If sHoja = "" Or IsNumeric(sHoja) Then
MsgBox "El nombre """ & sHoja & """ no es un nombre valido.", _
vbCritical
Exit Sub
End If
For i = 0 To UBound(Caract)
If InStr(sHoja, Caract(i)) Then
MsgBox "El nombre " & sHoja & " contiene " & _
"caracteres invalidos (" & Caract(i) & ").", _
vbCritical
Exit Sub
End If
Next i

Application.ScreenUpdating = False
'Comprobamos si el libro de destino ya
'esta abierto y si no, abrimos el libro.
On Error Resume Next
Set oLibro = Workbooks(sLibro)
On Error GoTo 0
If oLibro Is Nothing Then
Set oLibro = Workbooks.Open(sRuta & sLibro)
End If

With oLibro
'comprobamos si existe la hoja en
'el libro de destino (habria que decidir
'que se hace con el libro de destino recien
'abierto si hay duplicidad)
On Error Resume Next
Set oHoja = .Worksheets(sHoja)
On Error GoTo 0
If Not oHoja Is Nothing Then
MsgBox "La hoja con el nombre " & _
sHoja & " ya existe.", vbCritical
GoTo Salida
End If
'creamos la hoja
Workbooks("Panelmec.xls").Sheets("Captura").Copy _
After:=.Sheets(1)
ActiveSheet.Name = sHoja
'guardamos los cambios y cerramos
'el libro de destino
.Close True
End With
Salida:
Application.ScreenUpdating = True
End Sub

Preguntas similares