Problema con el bucle while en VBA
Resuelto
buffalo31
Mensajes publicados
29
Estado
Miembro
-
buffalo31 Mensajes publicados 29 Estado Miembro -
buffalo31 Mensajes publicados 29 Estado Miembro -
Bonjour,
Estoy haciendo un pequeño código en VBA para Excel, pero tengo un problema con el bucle while que no integra las dos condiciones que le asocié:
ac = Worksheets("Interface").Cells(3, 3).Value
eng = Worksheets("Interface").Cells(4, 3).Value
While Worksheets("DataSheet").Cells(i, 1).Value <> ac And Worksheets("DataSheet").Cells(i, 2).Value <> eng
i = i + 1
Wend
......
.......
Cuando ejecuto el código, tan pronto como se verifica la primera condición, sale del bucle sin tener en cuenta la segunda condición.
Entonces, ¿cómo hacer para que mi bucle while tenga en cuenta ambas condiciones? Intenté poner paréntesis para separar las dos condiciones, pero no cambia nada.
Gracias de antemano
Estoy haciendo un pequeño código en VBA para Excel, pero tengo un problema con el bucle while que no integra las dos condiciones que le asocié:
ac = Worksheets("Interface").Cells(3, 3).Value
eng = Worksheets("Interface").Cells(4, 3).Value
While Worksheets("DataSheet").Cells(i, 1).Value <> ac And Worksheets("DataSheet").Cells(i, 2).Value <> eng
i = i + 1
Wend
......
.......
Cuando ejecuto el código, tan pronto como se verifica la primera condición, sale del bucle sin tener en cuenta la segunda condición.
Entonces, ¿cómo hacer para que mi bucle while tenga en cuenta ambas condiciones? Intenté poner paréntesis para separar las dos condiciones, pero no cambia nada.
Gracias de antemano
Configuración: Windows XP Internet Explorer 6.0
3 respuestas
Hola
el while de VBA maneja perfectamente un "y" entre dos condiciones, creo que más bien eres tú quien tiene un pequeño problema para expresar lo que quieres ;)
¿Puedes dar algunos ejemplos (con valores) de casos en los que el bucle debe continuar y otros en los que debe detenerse? Probablemente te darás cuenta tú mismo de tu error.
el while de VBA maneja perfectamente un "y" entre dos condiciones, creo que más bien eres tú quien tiene un pequeño problema para expresar lo que quieres ;)
¿Puedes dar algunos ejemplos (con valores) de casos en los que el bucle debe continuar y otros en los que debe detenerse? Probablemente te darás cuenta tú mismo de tu error.
Mientras ((Hojas de cálculo("DataSheet").Celdas(i, 1).Valor <> ac) Y (Hojas de cálculo("DataSheet").Celdas(i, 2).Valor <> eng ))
pero, de lo contrario, tiene razón sobre los operadores lógicos en VBA, aquí está el curso
https://www.commentcamarche.net/contents/1188-vbscript-les-operateurs
--
Las personas que dicen que Windows es malo y que continúan usándolo me hacen reír...
El 95% de los errores provienen de lo que hay entre el teclado y la silla.
En Worksheets("DataSheet") .Cells(i, 1) tengo aviones y en Worksheets("DataSheet") .Cells(i, 2) tengo motores.
En una hoja llamada Worksheets("Interface") ingreso un avión (ac) y un motor (eng) respectivamente "B747" y "PW4000"
La idea es recuperar la línea i de Worksheets("DataSheet") donde Worksheets("DataSheet") .Cells(i, 1) = "B747" y Worksheets("DataSheet") .Cells(i, 2) = "PW4000" para hacer otros tratamientos.
Cuando ingreso el motor que corresponde al avión, no hay problema.
Pero cuando ingreso un motor que no corresponde al avión, espero que no encuentre nada, incluso podría poner una condición para salir del bucle. Pero para mi gran sorpresa, recupera la línea i de la primera condición que se verifica.
Así que en resumen, las dos condiciones parecen disociadas, lo que no entiendo.