Optimización IF

Elsa muy buenos días, una pregunta:
En una macro tengo una línea de código que evalúa el valor de una celda y lo compara con diferentes valores, si es diferente se lo salta pero si es igual lo copia a otra hoja. La macro funciona pero me gustaría saber de que manera puedo optimizar la línea de la instrucción If, ¿imagino qué debe haber alguna manera de ahorrase tantos?Or ActiveCell. Value=?
?.
While ActiveCell.Value <> ""
If ActiveCell.Value = 1233 Or ActiveCell.Value = 1275 Or ActiveCell.Value = 1289 Or ActiveCell.Value = 1333 Or ActiveCell.Value = 1433 Or ActiveCell.Value = 1522 Or ActiveCell.Value = 1552 Or ActiveCell.Value = 1999 Or ActiveCell.Value = 2999 Or ActiveCell.Value = 3043 Or ActiveCell.Value = 3339 Or ActiveCell.Value = 5555 Or ActiveCell.Value = 5934 Or ActiveCell.Value = 7037 Or ActiveCell.Value = 7341 Then
With Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(0, 6))
.Select
.Cut
End With
?..
Agradeciendo la atención prestada,
Luis F.

1 Respuesta

Respuesta
1
Podrías utilizar un select case, algo como lo siguiente:
While ActiveCell.Value <> ""
Dim valor1
valor1 = ActiveCell.Value
Select Case valor1
'reemplázá por tus valores
Case Is = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
'MsgBox "encontrado" opcional
With Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(0, 6))
.Select
.Cut
End With
End Select
'siguen tus instrucciones
???..
Saludos y no dejes de comentarme si esto responde a tu consulta.
Elsa
** Más sobre el tema 'SelectCase' en manual 400Macros en español, desde:
http://es.geocities.com/lacibelesdepunilla/manuales_aplicaciones

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas