Visual Basic para Aplicaciones - Error 13 en vba

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 6
Ha aumentado 1 puesto en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Error 13 en vba

Publicado por Jose Luis (3 intervenciones) el 02/06/2019 09:36:56
Buenas a todos.

A partir de una pequeña tabla estoy haciendo busquedas en vba usando la función indice y la función coincidir.
He creado un combobox y otra celda mediante validación de datos pero al colocar el código en un botón command me da error 13. A ver si alguien me puede echar una mano.

El código es este.

1
2
3
4
5
6
7
Private Sub cmd1_Click()
Dim resultado As Integer
resultado = Application.WorksheetFunction.Index(Range("D16:H21"), _
Application.Match(Val(Me.cbo1.Value), Range("D17:D21"), 0), _
Application.Match(Val(Range("D26").Value), Range("D16:H16"), 0))
MsgBox "Los kilos son" & resultado
End Sub

Gracias y saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de FernandoML
Val: 40
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Error 13 en vba

Publicado por FernandoML (11 intervenciones) el 02/06/2019 12:41:45
Hola Jose Luis

Si subes una copia de tu archivo es mas facil detectar el problema.

Pero aun asi prueba de esta manera

1
2
3
4
5
6
7
Private Sub cmd1_Click()
Dim resultado As Integer
resultado = Application.WorksheetFunction.Index(Range("D16:H21"), _
Application.WorksheetFunction.Match(Val(Me.cBo1.Value), Range("D17:D21"), 0), _
Application.WorksheetFunction.Match(Val(Range("D26").Value), Range("D16:H16"), 0))
MsgBox "Los kilos son" & resultado
End Sub

Un Saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 6
Ha aumentado 1 puesto en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Error 13 en vba

Publicado por Jose Luis (3 intervenciones) el 02/06/2019 13:47:20
Subo el fichero. El problema lo tengo en la hoja de nombre indice y en la tabla de abajo.

Saludos y gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de FernandoML
Val: 40
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Error 13 en vba

Publicado por FernandoML (11 intervenciones) el 03/06/2019 09:09:23
Hola de nuevo Jose luis

te reenvio el archivo ya modificado y funcionando.
Revisa y compara los dos y veras las diferencias, era solamente una tonteria.

Pruebalo y nos comentas

Un Saludo
FernandoML
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Error 13 en vba

Publicado por Antoni Masana (428 intervenciones) el 03/06/2019 09:57:26
Es es tu procedimiento:

1
2
3
4
5
6
7
Private Sub cmd1_Click()
    Dim resultado As Integer
    resultado = Application.WorksheetFunction.Index(Range("D16:H21"), _
                Application.Match(Val(Me.cBo1.Value), Range("D17:D21"), 0), _
                Application.Match(Val(Range("D26").Value), Range("D16:H16"), 0))
    MsgBox "Los kilos son" & resultado
End Sub

Esta es el procedimiento corregido:

1
2
3
4
5
6
7
Private Sub cmd1_Click()
    Dim resultado As Long
    resultado = Application.WorksheetFunction.Index(Range("D17:H21"), _
                Application.Match(Me.cbo1.Value, Range("D17:D21"), 0), _
                Application.Match(Val(Range("D26").Value), Range("D16:H16"), 0))
    MsgBox "Los kilos son: " & resultado
End Sub

y cuando funciona se puede simplificar

1
2
3
4
5
Private Sub cmd1_Click()
    MsgBox  "Los kilos son: " &  Application.WorksheetFunction.Index(Range("D17:H21"), _
                                 Application.Match(Me.cbo1.Value, Range("D17:D21"), 0), _
                                 Application.Match(Val(Range("D26").Value), Range("D16:H16"), 0))
End Sub


Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 6
Ha aumentado 1 puesto en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Error 13 en vba

Publicado por Jose Luis (3 intervenciones) el 09/06/2019 13:02:07
Muchisimas gracias. Di con el problema y es correcto era problema de la variable. Al cambiarla como Long se solucionó.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar