Páginas

Estamos Para Ayudarle

Si desea que le resolvamos cualquier duda, con respecto a Excel, deje un comentario en el Post de Bienvenida o envie un correo a hector.eduardo.pm@hotmail.com ;)

[MACRO] Ayuda con macro (gestion de error)


Usuario:
Buenas tardes serian tan amable de ayudarme con una inquietud que tengo como puedo colocar un msg box que logre salir cuando en input box no coloque el nombre del libro correcto en vez del error "se ha producido el error '9' en tiempo de ejecución: subdice fuera del intervalo

Sub cmbCopiar()
Dim a As String
Dim d As String
a = InputBox("Nombre del Archivo: ", "MiArchivo")
d = a
If d = "" Then
Else
Workbooks(a).Sheets("Mana_Infantil").Activate
Selection.Copy
Workbooks("libro1.xlsm").Sheets("Mana_Infantil").Activate
ActiveSheet.Range("a2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Application.Dialogs(xlDialogSaveAs).Show
End If
End Sub


Gracias

Respuesta:
La manera más fácil de hacer esto es untilizando On Error, te quedaría algo como esto:

Sub cmbCopiar()
Dim a As String
Dim d As String
    a = InputBox("Nombre del Archivo: ", "MiArchivo")
    d = a
    If d = "" Then
    Else
        On Error GoTo ControlError  ' Activa la rutina de control de errores.
        Workbooks(a).Sheets("Mana_Infantil").Activate
        Selection.Copy
        Workbooks("libro1.xlsm").Sheets("Mana_Infantil").Activate
        ActiveSheet.Range("a2").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                :=False, Transpose:=False
        Application.Dialogs(xlDialogSaveAs).Show
        On Error GoTo 0 ' Desactiva la detección de errores.
    End If
  
    Exit Sub    ' Salir para evitar el controlador.
ControlError:   ' Rutina de control de errores.
    MsgBox "Error en la lectura de datos"
End Sub


Saludos

Usuario:
Muchas garcías funciona ecxelente