Visual Basic para Aplicaciones - Ayuda con bloque If

Life is soft - evento anual de software empresarial
 
Vista:

Ayuda con bloque If

Publicado por Armando de la Morena (1 intervención) el 04/01/2006 21:24:27
Hola amigos,
les expongo mi problema por si alguno me puede ayudar. Estuve haciendo un programa en el que tengo que comparar varias celdas de un fichero excel con unos textos definidos para que cuando coincidan devuelva un resultado concreto, y que cuando no coincida borre la fila en la que está. Bien, he conseguido sin problema comparar las celdas que tengo con los más de 30 textos que tengo definidos mediante un bucle Do que contiene varios If (uno por cada texto, se que no es la mejor manera pero..... estoy abierto a ideas :-)) con lo que queda algo como:
....
If ActiveCell.Value = x Then
me pones 1 en la hoja
....
if ActiveCell.Value = x1 Then
me pones 2 en la hoja
......
El problema es que al final necesito decirle que si es diferente a todas las x que tengo definidas me borre la fila, lo he intentado poniendo algo como....
if ActiveCell.Value <> x Or x1 Or x2 Or x3 Or x4..... (así hasta 37) Then
me borras la fila activa

Pero no funciona, da un casque.

¿¿¿¿Alguien me puede echar un cable, por favor???

Muchas Gracias.
Armando.
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

RE:Ayuda con bloque If

Publicado por Petter.pe (77 intervenciones) el 05/01/2006 00:21:36
Hola, pudes utilizar If ElseIf, puesto que si ActiveCell.Value = a uno de los textos ya no tendría por que verificar los demás. Al final si no cumple con ninguna de las condiciones utilizas else y borra la fila activa. En tu Ejemplo:

If ActiveCell.Value = x Then
me pones 1 en la hoja
....
ElseIf ActiveCell.Value = x1 Then
me pones 2 en la hoja
......
Else

me borras la fila activa
End If
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

RE:Ayuda con bloque If

Publicado por Carlos Fernandez (55 intervenciones) el 05/01/2006 16:06:04
por qué no pruebas con Select Case???
podria ser algo asi:
Select Case Valor
Case Valor "x"
hacer algo
Case Valor "Y"
hacer otra cosa
-----------------------
Case Else
borrar línea
End Select

Suerte!
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: 11
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

RE:Ayuda con bloque If

Publicado por audad (79 intervenciones) el 14/01/2006 08:37:14
Armando... un saludo...

una apreciacion...
con ... ActiveCell.... tienes que ubicarte en una celda ... y procesaria la macro... y tendras que ubicarte manualemente en todas... resolveria ?... si lo procesas en bloque en una sola MACRO ...por decir .... una columna.... o fila o ambas.... comparando.... con los 37 valores (o aun mas)...que estarian... en la hoja "Valores" en las celdas B2, B3,B4...... y las que necesitas verificar son de la hoja "Verifica"... con valores en las columna "D" ... haria lo siguiente

intVerifica=2
while worksheets("Verifica").cells(intVerifica,4)<>""
intValores=2
booExiste=false
while worksheets("Valores").cells(intValores,4)<>"" and booExiste=false
if worksheets("Verifica").cells(intFila,4)=worksheets("Valores") then _
booExiste=true
intvalores=intvalores + 1
wend
if booExiste=false then '..... eliminamos linea
intValores=intValores+1
wend

observaras ... que puedes manejar mas de 37 valores y verificar en la totalidad de la columna D de valores

.... me escribes
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