Tengo una tabla en la cual dependiendo ciertos valores entonces arroje un valor con un mensaje

En las condicionales que tengo son las siguientes

Sub formato()

For i = 5 To 40
Valor = Cells(i, 40).Value

If Valor >= 15000 Then

Cells(i, 44).Value = "SPLIT GOA LEVEL 7"

ElseIf Valor <= 14999 Then

Cells(i, 44).Value = "SPLIT GOA LEVEL 8"

ElseIf Valor >= 25000 Then

Cells(i, 44).Value = "SPLIT GOA LEVEL 6"

ElseIf Valor >= 100000 Then

Cells(i, 44).Value = "SPLIT GOA LEVEL 5"
ElseIf Valor >= 250000 Then

Cells(i, 44).Value = "SPLIT GOA LEVEL 4"
ElseIf Valor <= 25000 Then

Cells(i, 44).Value = "NO SPLIT"
ElseIf Valor = "" Then

Cells(i, 44).Value = ""

End If

Next i

End Sub

Pero aun me faltan agregar más y no me la está corriendo bien por que probé con otro valor y no aplica, parece como si lo estuviera haciendo 1 por 1 ayuda, y los datos son muchísimos son prácticamente hasta ultima fila

1 respuesta

Respuesta
1

[Hola

Cuando se desea usar valores dentro de un rango, se hace necesario usar los operadores "Or" y/O "And", de lo contrario, no obtendremos los resultados deseados. Además, creo que te sería mucho más fácil usar "Select - Case". Sugiero enviar una tabla con los rangos y resultados esperados como para poder ayudarte mejor.

Abraham Valencia

Hola Abraham,

Esa es la tabla e inicialmente lo había hecho así que por la columna AM sacara cual es decual, pero adicional requiero que como lo amarillo que es result es la sumatoria de las otras también quiero que esa sumatoria le salga pues su resultado correspondiente y en caso que no halla nada pues quede vacío ...

Quedo atento

Hola Abraham, deacuerd a lo anterior me gustaría ser más claro, a continuación te paso la columna J filtrada por result, en la cual debendiendo la columna A que es la semana y la columna E que es el proveedor como puedes ver anterior mente la columna "i" tiene unas ordenes de compra que aveces pueden ser más o menos o varían. Con base en la coloumna "J" result, pero teniendo en cuenta a anterior de información que es dependiendo la semana el proveedor y la orden de compra salga el monto en libras y de acuerdo a la tabla de al lado siga si es split o no y de que level es, quedo atento. Gracias por tu ayuda

O también alguna sugerencia tuya de como lo puedo realizar, gracias

¿Cuándo es 4? ¿Cuándo es 3 ¿cuándo es...? Etc. Eso es lo más importante y por lo menos yo no lo noto. Si la referencia es la tabla pequeña de la derecha, no denota rango sino cantidades exactas ¿cuáles son los rangos?

Abraham Valencia

Los rangos son si los valores son <= a 15.000 entonces no split, pero si son > 15000 split grado 7, si son >= de 25000 y <100000 entonces split grado 6 y así .

Te dejo un ejemplo en donde he intuido (casi) los rangos ya que no los enviaste. OJO, es un ejemplo que supone que en la columna A (de la fila 1 a la 20) están los valores y coloca el texto en la B. Ya tú adáptalo a tus necesidades (y ajusta tus rangos de valores):

Sub formato()
Dim i As Long, valor As Double
For i = 1 To 20
    valor = Cells(i, 1).Value
    Select Case valor
        Case 0
            Cells(i, 1).Value = ""
        Case 1 To 14999
            Cells(i, 2).Value = "SPLIT GOA LEVEL 8"
        Case 15000 To 24999
            Cells(i, 2).Value = "SPLIT GOA LEVEL 7"
        Case 25000 To 99999
            Cells(i, 2).Value = "SPLIT GOA LEVEL 6"
        Case 100000 To 249999
            Cells(i, 2).Value = "SPLIT GOA LEVEL 5"
        Case Is >= 250000
            Cells(i, 2).Value = "SPLIT GOA LEVEL 4"
    End Select
Next i
End Sub

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas