Prueba esto:
Código:
Sub comprobar_la_existencia_de_la_hoja()
hoja_de_calculo = "vof"
On Error Resume Next
Sheets(hoja_de_calculo).Select
'comprobamos si existe o no la hoja
If ActiveSheet.Name <> hoja_de_calculo Then
contador = 0
respuesta = MsgBox("La hoja de cálculo no existe." + Chr(13) + "¿Deseas crear una hoja de cálculo que se llame """ & hoja_de_calculo & """?", vbOKCancel, "Pregunta")
If respuesta = 1 Then
'Añadimos la hoja
Sheets.Add
ActiveSheet.Select
ActiveSheet.Name = hoja_de_calculo
mensaje = MsgBox("La hoja de cálculo """ & hoja_de_calculo & """ ha sido creada.", vbOKOnly, "Conclusión")
End If
Else
contador = 1
End If
End Sub
Si no encuentra la hoja de cálculo, la primera vez que ejecutes el macro, la variable "contador" tomará valor 0, y se creará de forma automática la hoja, siempre que se responda afirmativamente a la pregunta de si deseas crearla. Si vuelves a ejecutar el macro, y hemos contestado que sí deseábamos crear la hoja, "contador" valdrá 1, pero si contestamos que no queríamos crearla, "contador" seguirá valiendo 0.
Espero que te sirva.
PD: Acabo de editar el macro, para incorporar la pregunta de si se desea o no crear la hoja, cuando no existe.
Salu2