Uso de ENUM en Excel

Hola que tal, quisiera realizarte una consulta:
Tengo la siguiente declaración en una macro de excel:
Enum motobombas
        Bomba1 = "33005:224"
        Bomba2 = "33005:225"
        Bomba3 = "63001:307"
        Bomba4 = "63001:308"
        Bomba5 = "63001:309"
        Bomba6 = "63001:401"
        Bomba7 = "63001:402"
        Bomba8 = "63001:403"
        Bomba9 = "63001:404"
        Bomba10 = "63001:405"
        Bomba11 = "63001:406"
        Bomba12 = "63001:407"
        Bomba13 = "63001:408"
        Bomba14 = "63001:409"
    End Enum
    Dim Maquina As String
Cuando le asigno un valor a la variable Maquina, quisiera saber si el valor ingresado es de motobombas. Por ejemplo si Maquina vale 63001:402 hacer algo ya que es motobomba, por el contrario si Maquina vale 63001:999 no hacer nada pues no es motobomba.
Gracias de antemano, espero haberme expresado bien.

1 respuesta

Respuesta
1
Según mi experiencia cuando usas valores numerados ENUM estos deben ser enteros
ejemplo
Enum motobombas 
       Bomba1 = 1
       Bomba2 = 2
       Bomba3 = 3
       .....
       Bomba14 = 14
End Enum
o bien así
Enum motobombas 
       Bomba1
       Bomba2
       Bomba3
       .....
       Bomba14
End Enum
Para tu caso porque mejor no usas un SELECT CASE dentro de una función y así sabes si es o no miembro de la colección
Ejemplo:
Function EsDelGrupo(ByVal sBomba As String) As Boolean
    Select Case sBomba
        Case Is = "33005:224", "33005:225", "63001:307", "63001:308", "63001:309", "63001:401", "63001:402", "63001:403", "63001:404", "63001:405", "63001:406", "63001:407", "63001:408", "63001:409"
            EsDelGrupo = True
        Case Else
            EsDelGrupo = False
    End Select
End Function
Tu sugerencia es excelente...
Ahora mientras esperaba tu respuesta estaba intentando esta posible solución:
Declaré la variable string motobombas asi:
motobombas = "33005:224-33005:225-63001:307-63001:308-63001:309-" & _
                 "63001:401-63001:402-63001:403-63001:404-63001:405-" & _
                 "63001:406-63001:407-63001:408-63001:409"
Luego en la variable codMaquina supuestamente se ingresaría un código, y usbaba la función INSTR así:
if (InStr(codMaquina, motobombas) <> 0)
No me funcionaba, nunca era falso, borre espacios en codMaquina, agregué espacios a motobombas, puse apostrofe, al día siguiente mucho más fresco me di cuenta que el error estaba en que había colocado al revés las cadenas, lo correcto seria así:
if (InStr(motobombas,codMaquinas) <> 0),
jajaja, es un consejo para todos aquellos que programan, primero busquemos en lo mas basico para luego ahondar en lo mas complejo.
Gracias por tu respuesta
Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas