Error 13 en tiempo de ejecución no coinciden los tipos excel

Tengo un UF que me saca un error que realmente no he podido descifrar. No me deja cargar la userform y cuando ejecuto el botón1 me genera un error al poner los datos en la base de datos .

Código

Ption Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Const WS_MINIMIZEBOX As Long = &H20000
Private Const WS_MAXIMIZEBOX As Long = &H10000
Private Const GWL_STYLE As Long = (-16)
Private Sub ComboBox23_Change()
Hoja16.Activate
Range("C15").Select
ActiveCell.FormulaR1C1 = ComboBox23
End Sub
Private Sub ComboBox24_Change()
Hoja16.Activate
Range("D15").Select
ActiveCell.FormulaR1C1 = ComboBox24
End Sub
Private Sub ComboBox25_Change()
Hoja16.Activate
Range("E15").Select
ActiveCell.FormulaR1C1 = ComboBox25
End Sub
Private Sub ComboBox28_Change()
Hoja16.Activate
Range("F15").Select
ActiveCell.FormulaR1C1 = ComboBox28
End Sub
Private Sub ComboBox29_Change()
Hoja16.Activate
Range("I15").Select
ActiveCell.FormulaR1C1 = ComboBox29
End Sub
Private Sub ComboBox30_Change()
Hoja16.Activate
Range("L15").Select
ActiveCell.FormulaR1C1 = ComboBox30
End Sub
Private Sub ComboBox31_Change()
Hoja16.Activate
Range("O15").Select
ActiveCell.FormulaR1C1 = ComboBox31
End Sub
Private Sub ComboBox32_Change()
Hoja16.Activate
Range("F15").Select
ActiveCell.FormulaR1C1 = ComboBox32
End Sub
Private Sub CommandButton1_Click()
Range("A15: AZ15 ").Select
Selection.Copy
Rows("16:16").Select
Selection.Insert Shift:=xlDown
Range("A14").Select
Application.CutCopyMode = False
Range("A15,B15,C15,D15,E15,F15,H15,I15,K15,L15,N15,O15,Q15,AM15").Select
Selection.ClearContents
Hoja8.Activate
Unload SEGINFORMATICA
Load SAGAD
SAGAD.Show
End Sub
Private Sub CommandButton2_Click()
Hoja16.Activate
TextBox7 = Range("AS15") * 100
TextBox8 = Range("AT15")
End Sub
Private Sub OptionButton143_Click()
Hoja16.Activate
Range("H15").Select
ActiveCell.FormulaR1C1 = "Nulo"
End Sub
Private Sub OptionButton144_Click()
Hoja16.Activate
Range("H15").Select
ActiveCell.FormulaR1C1 = "Bajo"
End Sub
Private Sub OptionButton145_Click()
Hoja16.Activate
Range("H15").Select
ActiveCell.FormulaR1C1 = "Medio"
End Sub
Private Sub OptionButton146_Click()
Hoja16.Activate
Range("H15").Select
ActiveCell.FormulaR1C1 = "Alto"
End Sub
Private Sub OptionButton148_Click()
Hoja16.Activate
Range("K15").Select
ActiveCell.FormulaR1C1 = "Nulo"
End Sub
Private Sub OptionButton149_Click()
Hoja16.Activate
Range("K15").Select
ActiveCell.FormulaR1C1 = "Bajo"
End Sub
Private Sub OptionButton150_Click()
Hoja16.Activate
Range("K15").Select
ActiveCell.FormulaR1C1 = "Medio"
End Sub
Private Sub OptionButton151_Click()
Hoja16.Activate
Range("k15").Select
ActiveCell.FormulaR1C1 = "Alto"
End Sub
Private Sub OptionButton153_Click()
Hoja16.Activate
Range("N15").Select
ActiveCell.FormulaR1C1 = "Nulo"
End Sub
Private Sub OptionButton154_Click()
Hoja16.Activate
Range("N15").Select
ActiveCell.FormulaR1C1 = "Bajo"
End Sub
Private Sub OptionButton155_Click()
Hoja16.Activate
Range("N15").Select
ActiveCell.FormulaR1C1 = "Medio"
End Sub
Private Sub OptionButton156_Click()
Hoja16.Activate
Range("N15").Select
ActiveCell.FormulaR1C1 = "Alto"
End Sub
Private Sub OptionButton158_Click()
Hoja16.Activate
Range("Q15").Select
ActiveCell.FormulaR1C1 = "Alto"
End Sub
Private Sub OptionButton159_Click()
Hoja16.Activate
Range("Q15").Select
ActiveCell.FormulaR1C1 = "Nulo"
End Sub
Private Sub TextBox2_Change()
Hoja16.Activate
Range("B15").Select
ActiveCell.FormulaR1C1 = TextBox2
End Sub
Private Sub TextBox5_Change()
Hoja16.Activate
Range("AM15").Select
ActiveCell.FormulaR1C1 = TextBox5
End Sub
Private Sub TextBox9_Change()
Hoja16.Activate
Range("A15").Select
ActiveCell.FormulaR1C1 = TextBox9
End Sub
Private Sub UserForm_Activate()
Hoja16.Activate
Range("A16").Select
TextBox9 = Range("A16") + 1 "esta linea me genera el error"
End Sub
Private Sub UserForm_Initialize()
Dim lngMyHandle As Long, lngCurrentStyle As Long, lngNewStyle As Long
If Application.Version < 9 Then
lngMyHandle = FindWindow("THUNDERXFRAME", Me.Caption)
Else
lngMyHandle = FindWindow("THUNDERDFRAME", Me.Caption)
End If
lngCurrentStyle = GetWindowLong(lngMyHandle, GWL_STYLE)
lngNewStyle = lngCurrentStyle Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX
SetWindowLong lngMyHandle, GWL_STYLE, lngNewStyle
Application.ActiveWindow.WindowState = xlMaximized
Me.Width = Application.Width
Me.Height = Application.Height
End Sub

1 Respuesta

Respuesta
1

Probando solo las 2 rutinas iniciales, Initialize y Activate, no dá ningún error.

Me inclino a pensar que la celda A16 no tiene un valor que pueda ser sumado, quizás tenga un valor de error o de texto, que es cuando envía ese nro de mensaje.

PD) Para aligerar un poco tu código te sugiero utilices este tipo de instrucciones, sin seleccionar previamente:

Private Sub OptionButton153_Click()
Range("N15")= "Nulo"
End Sub

Si la hoja activa no es la 16, tampoco es necesario activarla para enviarle un valor. Utiliza esto:

Private Sub OptionButton153_Click()
Hoja16.Range("N15")= "Nulo"
End Sub

Con esto verás cuántas líneas y tiempo de proceso te evitas.

Más material explicado podrás encontrar en mis manuales de macros

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas