Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado
1 2 150x150, Error 13 en VBA

Error 13 en VBA

| 4 comentarios

El error 13  en Visual Basic Advance (VBA) se presenta cuando no hay coincidencia entre la variable que se declara y la variable que se ejecuta.  Puesto que cada variable en Excel posee determinadas características y propiedades, al no coincidir  los tipos , Excel lo asume como un error en tiempo de ejecución al cual denomina error número 13 “No coinciden los tipos”

Error 13 en VBA, Error 13 en VBA

Este tipo de error en VBA puede llegar a ser muy frecuente cuando se declara una variable específica y el valor de la misma se relaciona con las características de otras.

Ejemplo de Error 13 en vba

Un ejemplo sencillo de este tipo de error es el siguiente:

Nos interesa ejecutar una macro que muestre el contenido de la celda c2 en un Message Box.  La celda c2 debe estar situada en la hoja número 2 y la variable denominada como” variable1” deberá ser declarada como entera.

De acuerdo al ejemplo,  procedemos a crear la subrutina

ejemplo Error 13 en VBA, Error 13 en VBA

Como hemos declarado variable1 como entera , vba espera que el valor de esta variable sea un número .El error surge cuando habiendo declarado la variable como entera el contenido de la celda c2 que le da valor a la variable1 no es una del tipo integer  sino del tipo string (texto) . Al no haber haber coincidencia de tipos excel vba nos muestra el error 13.

A continuación vemos que en la celda c2 figura la palabra hola claramente no numérica sino de texto, al ejecutar la macro se produce el error mencionado.

corregir Error 13 en VBA, Error 13 en VBA solucionar Error 13 en VBA, Error 13 en VBA

La manera de solucionar el error es cambiar el valor de la celda c2 por un número, declarar la variable como una tipo variant o simplemente no declarar la variable .  Sin embargo, La no declaración de variables puede provocar que se utilicen variables erróneas y que consuman más recursos de memoria a diferencia de las declararlas correctamente.

Descargar ejemplo de error 13: error 13 vba

Por: Andersson Schmid

4 comentarios

  1. gracias estoy aprendiendo mucho

  2. me sale el error 13

    alguien me podria ayudar

    Private Sub Modificar_Click()

    ActiveSheet.Unprotect

    Cells(ComboBox1.ListIndex + 3, 2).Select

    ActiveCell.Offset(0, 0) = CDbl(TextBox1) me marca aqui qen amarillo

    ActiveCell.Offset(0, 1) = CDbl(TextBox2)

    ActiveCell.Offset(0, 2) = CDbl(TextBox3)

    ActiveCell.Offset(0, 3) = CDbl(TextBox4)

    ActiveCell.Offset(0, 4) = CDbl(TextBox5)

    ActiveCell.Offset(0, 5) = CDbl(TextBox6)

    ActiveCell.Offset(0, 6) = CDbl(TextBox7)

    ActiveCell.Offset(0, 7) = CDbl(TextBox8)

    ActiveCell.Offset(0, 8) = CDbl(TextBox9)

    ActiveCell.Offset(0, 9) = CDbl(TextBox10)

    ActiveCell.Offset(0, 12) = CDbl(TextBox11)

    ActiveCell.Offset(0, 13) = CDbl(TextBox12)

    ActiveCell.Offset(0, 14) = CDbl(TextBox13)

    ActiveCell.Offset(0, 15) = CDbl(TextBox14)

    ActiveCell.Offset(0, 16) = CDbl(TextBox15)

    ActiveCell.Offset(0, 10) = CDbl(TextBox16)

    'limpiamos los datos
    ComboBox1.Clear
    TextBox1 = ""
    TextBox2 = ""
    TextBox3 = ""
    TextBox4 = ""
    TextBox5 = ""
    TextBox6 = ""
    TextBox7 = ""
    TextBox8 = ""
    TextBox9 = ""
    TextBox10 = ""
    TextBox11 = ""
    TextBox12 = ""
    TextBox13 = ""
    TextBox14 = ""
    TextBox15 = ""
    TextBox16 = ""

    ComboBox1.SetFocus
    'protegemos la hoja
    ActiveSheet.Protect
    End Sub

    Private Sub TextBox1_Change()

    End Sub

    Private Sub TextBox13_Change()

    End Sub

    Private Sub TextBox16_Change()

    End Sub

  3. tengo este error actualmente en una macro alguien que pueda ayudarme error13

  4. Hola buenas noches, Queria que me ayudaran con este problema o error13
    Sub calcular()
    Cod_Cli = Range("H6")
    Importe = Range("H10")
    Modalidad = Range("I12")
    Interes = Range("H14")
    N_Cuotas = Range("I16")
    Importe = Range("I18")
    Total = Range("H20")
    fecha = Range("H22")

    For i = 1 To N_Cuotas
    Sheets("Estados").Select
    Rows("5:5").Select
    Selection.Insert shift:=xlDown
    Pintura
    If i = 1 Then
    Rayados
    End If

    If Modalidad = "Mensual" Then
    Range("F5") = DateAdd("m", i, fecha)
    End If

    Range("B5") = Cod_Cli
    Range("G5") = Importe
    Range("D5") = Modalidad
    Range("E5") = "Cuota -" & i

    Next i

    End Sub

    No se donde puede estar el error

Deja un comentario

Los campos requeridos estan marcados con *.