Hola Boris, esperaba que me logres solucionar esta duda que tengo, veras tengo un botón en un userform que me crea hojas nuevas, pero por seguridad quisiera que cuando se intente crear una hoja con un nombre que ya existe aparezca un mensaje que diga que "esta hoja ya existe" en vez de mandarme a depurar al VBA Te agradecería mucho
1 respuesta
Respuesta de borisbarrera
1
1
borisbarrera, Contador. Conocimientos avanzados de excel y access.
Acá está la solución. Sub Nuevahoja() 'si hay errores, que continúe On Error Resume Next 'preguntamos cual es el expediente hoja_de_calculo = Range("a1").Value 'este valor puede venir de un textbox, listbox, combobox, inputbox o una celda 'eliminamos los caracteres raros hoja_de_calculo = Replace(hoja_de_calculo, ":", "") hoja_de_calculo = Replace(hoja_de_calculo, "/", "") hoja_de_calculo = Replace(hoja_de_calculo, "\", "") hoja_de_calculo = Replace(hoja_de_calculo, "?", "") hoja_de_calculo = Replace(hoja_de_calculo, "*", "") hoja_de_calculo = Replace(hoja_de_calculo, "[", "") hoja_de_calculo = Replace(hoja_de_calculo, "]", "") 'guardamos el valor de la hoja actual hoja_actual = ActiveSheet.Name 'seleccionamos la hoja Sheets(hoja_de_calculo).Select 'si no existe esa hoja, la creamos If ActiveSheet.Name <> hoja_de_calculo And hoja_de_calculo <> "" Then Sheets.Add ActiveSheet.Name = hoja_de_calculo Else 'si existe mandamos el mensaje de error MsgBox "La hoja '" & hoja_de_calculo & "' ya existe", 0 + 48 + 0, "Libro de pruebas" 'Y volvemos a la hoja donde estabamos Sheets(hoja_actual).Select End If End Sub