Modificar las palabras reservadas "verdadero" y "falso" en excel vb

Ejecuto una macro, conseguida mediante la grabadora, utilizando una función y que me arroja en una columna los valores "verdadero" y "falso". Esta columna la copio y pego en otra hoja como "solo valores" para realizar un autofiltro sencillo. Para ser solo dos valores los que tiene que contemplar el autofiltro tarda un montón así que he decidido cambiar los valores pero... Usando el Select case, el if, el reemplazar ect no consigo que me los cambie; es más, ejecuto las macros con f8 y lo salta todo a la torera. Quizás deberían de ir, además de con comillas con algún otro identificador. He probado las llaves, los paréntesis, etc de verdad, que ya me parecen un quiste. ¿Podrías ayudarme por favor y decirme como las puedo modificar?

Os pongo como ejemplo la macro con el select case por si es que lo estoy haciendo todo mal.

Application.ScreenUpdating = False
Dim MiCelda As Range
Worksheets("Hoja2").Range("D2", Range("D2").End(xlDown)).Select
For Each MiCelda In Selection
Select Case MiCelda
Case "VERDADERO"
MiCelda.Value = "GUARDAR"
Case "FALSO"
MiCelda.Value = "ELIMINAR"
Case ""
Exit For
End Select
Next MiCelda
Application.ScreenUpdating = True

1 respuesta

Respuesta
1

No indicas tu versión Excel, en la mía la consulta del Select debe ser:

Case True y Case False

De todos modos, si el filtrado de datos con 2 condiciones te tarda tanto, cambiarle los valores quizás no te resuelva el problema.

Revisá si no tenés alguna macro 'de Hoja' que se esté ejecutando al realizar el autofiltro.

Hola y muchas gracias por tu ayuda,

Iba a finalizar la pregunta pq después de leer tu mensaje he puesto un "exit sub" en todas las macros anteriores a la del autofiltro y aunque sólo he podido hacer una prueba me ha parecido que ha estado muy bien,aún así, si no te molesta, me gustaría;antes de finalizar la pregunta, comprobar que efectivamente lo ha hecho todo bien (tengo que verla con más detenimiento. No lo he podido hacer hasta ahora)

De todas formas, me he limitado a poner un "exit sub" ¿es lo que tenía que hacer? ¿como puedo saber que hay una macro ejecutándose? Entiendo que cuando se está ejecutando una, las anteriores se han detenido. ¿no es así?

¡Ah! y respecto al Excel utilizo el 2010. Voy a probar a poner el Case True como dices.

Gracias de nuevo y perdón por la demora,

Karmele,

Te explico lo que estás haciendo con el Select:

Por cada celda que encuentra en el rango: si es True coloca un valor, si es False coloca otro... sino ahí se termina el bucle, es decir el recorrido por la selección.

Podríamos decir que está bien siempre y cuando no haya valores 'entremedio' distintos a los 2 criterios, porque sino está mal que termine el bucle, ¿se comprende?

Si no hay más que 2 condiciones, no coloques ningún case más.

El For terminará cuando haya terminado de recorrer el rango seleccionado.

Bueno, cuando lo pruebes me comentas.

Mis más sincera gratitud. Aunque aún tengo que depurar y mejorar algo más las macros, funcionan a la perfección.

Respecto al Case, también tienes razón. He cambiado desde la misma hoja con el botón de "buscar y reemplazar" las palabras "verdadero" y "falso" a "true-false". He cambiado también estos valores en el Case y la ha ejecutado perfectamente. No comprendo, en absoluto, esta peculiaridad del excel (como tantas otras) pero lo importante es que ya sabré, de ahora en adelante, a que atenerme

Gracias infinitas,

Karmele,

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas