Lista desplegable + VBA, problemas con las mayúsculas

Resuelto
Anthelm Mensajes publicados 202 Estado Miembro -  
Yoyo01000 Mensajes publicados 1720 Fecha de registro   Estado Miembro Última intervención   -
Hola,

Tengo una lista desplegable con "Sí" y "No" como opciones
Tengo el siguiente código:
If Worksheets("Opciones").Range("B2") = ("Sí") Then
opcion1 = "sí"

Cuando el usuario hace clic en "Sí" en la lista, no hay problema porque tiene mayúscula.
Pero si escribe "sí" en el teclado, la celda lo acepta, pero la macro (que considera que "sí" no es igual a "Sí") no.

He pensado en If Worksheets("Opciones").Range("B2") = ("Sí") OR (lo mismo) = ("sí") Then (etc., etc.)
funcionaría si el usuario ingresa "sí" con o sin mayúscula.

Pero es un poco tonto, porque siempre se puede cometer un error tipográfico y escribir "si" o "Si"... Estoy exagerando un poco, pero en sí no es óptimo. Especialmente porque el usuario no se dará cuenta de que el resultado en VBA no devolverá lo correcto.

¿Qué opinas, cuál es la pista a revisar?
1) ¿La lista desplegable es una mala elección (tal vez un botón de opción, por ejemplo)?
2) ¿La macro es demasiado simple y hay otra forma de evitar esta "sensibilidad a mayúsculas"?

Gracias por darme una pista si has tenido un caso como este...

¡Buen día a todos!

3 respuestas

  1. Yoyo01000 Mensajes publicados 1720 Fecha de registro   Estado Miembro Última intervención   168
     
    Hola, ¿por qué pasar por VBA para esto?

    ¡Bastaría con crear un menú desplegable sin VBA!
    0
  2. Yoyo01000 Mensajes publicados 1720 Fecha de registro   Estado Miembro Última intervención   168
     
    Pestaña "Datos" y luego "Validación de datos", en "Opciones" seleccionar "Lista" y poner "Sí;No".
    0
    1. Anthelm Mensajes publicados 202 Estado Miembro 1
       
      Creo que no has leído el tema completo :) ¡Pero gracias de todos modos!
      0
    2. Yoyo01000 Mensajes publicados 1720 Fecha de registro   Estado Miembro Última intervención   168
       
      Sí, lo he leído por completo. Un menú desplegable sin VBA con un bloqueo, si no se respeta la capitalización, es factible.
      0
    3. Anthelm Mensajes publicados 202 Estado Miembro 1
       
      Mi lista desplegable está hecha desde la validación de datos y no tengo ninguna manera de forzar el respeto por las mayúsculas, de hecho, tal vez debería hacerlo en VBA en su lugar...
      0
    4. Yoyo01000 Mensajes publicados 1720 Fecha de registro   Estado Miembro Última intervención   168
       
      En "Validación de datos" tienes una pestaña "Alerta de error" que permite solucionar eso.
      0
  3. Anthelm Mensajes publicados 202 Estado Miembro 1
     
    Ok, la solución es con UCASE a mi parecer.
    Esto convierte el resultado a mayúsculas.

    Si Worksheets("Options").Range("B2") = ("Sí")
    la prueba es si = "Sí"
    Entonces, si "sí", el resultado es falso debido a que falta la mayúscula.

    Pero si hacemos:

    If UCase(Worksheets("Options").Range("B2")) = ("SÍ")
    En otras palabras, si el resultado en mayúsculas = SÍ

    No importa lo que ingrese el usuario: "sÍ" se convierte en "SÍ" y es igual a "SÍ", el resultado es verdadero.
    0