If.......Else Rangos

02/02/2009 - 10:05 por gongi | Informe spam
Hola Grupo!
Por favor, una ayuda con esto:
Estoy intentando llevar a una celda, de una factura, una tarifa,(un
precio) , que depende de :
[un rango de meses] y dentro de ese rango de [el día de la semana].
Lo que no consigo es expresar esos rangos de meses dentro de un
condicional (if).


Sub Tarifas()

Dim MiFecha, MiDiaSemana,

' Conseguir el dia de la semana de la fecha de la factura '

MiFecha = ([b3])
MiDiaSemana = Weekday(MiFecha) - 1 'porque usa 0 como primer
dia'
Cells(1, 8) = MiDiaSemana ' celda de control - informativa'


'rango de meses para la tarifa1 '

If MiFecha <= #3/31/2009# Or _ 'primer tramo de la tarifa1'
MiFecha >= #4/11/2009# Or MiFecha <= #7/26/2009# Or _ '2º tramo de
la tarifa1'
MiFecha >= #1/11/2009# Or MiFecha >= #2/12/2009# Or _ 'tercer tramo
de la tarifa1'
MiFecha >= #12/12/2009# Or MiFecha >= #12/19/2009# Then '4º tramo de
la tarifa1'

'Tarifa1 a aplicar según el dia de la semana'


Select Case MiDiaSemana


Case 0, 1
Cells(27, 2) = 389
Case 2, 3
Cells(27, 2) = 309
Case 4, 5, 6, 7
Cells(27, 2) = 359
Case Else
Cells(27, 2) = 0
End Select

'tarifa2 '


ElseIf _

MiFecha >= #1/4/2009# Or MiFecha <= #10/4/2009# Or _
'Tramos en meses para la tarifa2'
MiFecha >= #3/12/2009# Or MiFecha >= #11/12/2009# Or _
MiFecha >= #12/20/2009# Or MiFecha >= #12/31/2009# Then


Select Case MiDiaSemana 'Tarifa2 a aplicar según el dia de la
semana'

Case 0, 1
Cells(27, 2) = 499
Case 2, 3
Cells(27, 2) = 389
Case 4, 5, 6, 7
Cells(27, 2) = 459
Case Else
Cells(27, 2) = 0
End Select

'tarifa3'

Else 'Tarifa para el resto de meses'


Select Case MiDiaSemana

Case 0, 1, 2, 3, 4, 5, 6, 7 ' es la misma tarifa toda la
semana'
Cells(27, 2) = 599

Case Else

Cells(27, 2) = 0

End Select



End If


End Sub

Agradezco cualquier ayuda
Un saludo !

Preguntas similare

Leer las respuestas

#1 pepe
02/02/2009 - 15:58 | Informe spam
Select Case Mes

Case 1
Select Case DiaSemana
Case 1
Case 2
end select case diasemana
Case 2
Select Case DiaSEmana
Case 1
Case 2
end select case diasemana




End Select case mes



"gongi" escribió en el mensaje de noticias
news:
Hola Grupo!
Por favor, una ayuda con esto:
Estoy intentando llevar a una celda, de una factura, una tarifa,(un
precio) , que depende de :
[un rango de meses] y dentro de ese rango de [el día de la semana].
Lo que no consigo es expresar esos rangos de meses dentro de un
condicional (if).


Sub Tarifas()

Dim MiFecha, MiDiaSemana,

' Conseguir el dia de la semana de la fecha de la factura '

MiFecha = ([b3])
MiDiaSemana = Weekday(MiFecha) - 1 'porque usa 0 como primer
dia'
Cells(1, 8) = MiDiaSemana ' celda de control - informativa'


'rango de meses para la tarifa1 '

If MiFecha <= #3/31/2009# Or _ 'primer tramo de la tarifa1'
MiFecha >= #4/11/2009# Or MiFecha <= #7/26/2009# Or _ '2º tramo de
la tarifa1'
MiFecha >= #1/11/2009# Or MiFecha >= #2/12/2009# Or _ 'tercer tramo
de la tarifa1'
MiFecha >= #12/12/2009# Or MiFecha >= #12/19/2009# Then '4º tramo de
la tarifa1'

'Tarifa1 a aplicar según el dia de la semana'


Select Case MiDiaSemana


Case 0, 1
Cells(27, 2) = 389
Case 2, 3
Cells(27, 2) = 309
Case 4, 5, 6, 7
Cells(27, 2) = 359
Case Else
Cells(27, 2) = 0
End Select

'tarifa2 '


ElseIf _

MiFecha >= #1/4/2009# Or MiFecha <= #10/4/2009# Or _
'Tramos en meses para la tarifa2'
MiFecha >= #3/12/2009# Or MiFecha >= #11/12/2009# Or _
MiFecha >= #12/20/2009# Or MiFecha >= #12/31/2009# Then


Select Case MiDiaSemana 'Tarifa2 a aplicar según el dia de la
semana'

Case 0, 1
Cells(27, 2) = 499
Case 2, 3
Cells(27, 2) = 389
Case 4, 5, 6, 7
Cells(27, 2) = 459
Case Else
Cells(27, 2) = 0
End Select

'tarifa3'

Else 'Tarifa para el resto de meses'


Select Case MiDiaSemana

Case 0, 1, 2, 3, 4, 5, 6, 7 ' es la misma tarifa toda la
semana'
Cells(27, 2) = 599

Case Else

Cells(27, 2) = 0

End Select



End If


End Sub

Agradezco cualquier ayuda
Un saludo !
Respuesta Responder a este mensaje
#2 gongi
02/02/2009 - 18:09 | Informe spam
On 2 feb, 15:58, "pepe" wrote:
Select Case Mes

     Case 1
           Select Case DiaSemana
                  Case 1
                  Case 2
            end select case diasemana
     Case 2
           Select Case DiaSEmana
                  Case 1
                  Case 2
            end select case diasemana



End Select case mes

"gongi" escribió en el mensaje de noticiasnews:
Hola Grupo!
 Por favor, una ayuda con esto:
Estoy intentando llevar a una celda, de una factura, una tarifa,(un
precio) , que depende de :
[un rango de meses] y dentro de ese rango de [el día de la semana].
Lo que no consigo es expresar esos rangos de meses dentro de un
condicional (if).

Sub Tarifas()

Dim MiFecha, MiDiaSemana,

' Conseguir el dia de la semana de la fecha de la factura '

    MiFecha = ([b3])
    MiDiaSemana = Weekday(MiFecha) - 1   'porque usa 0 como primer
dia'
    Cells(1, 8) = MiDiaSemana   ' celda de control - informativa'

 'rango de meses para la tarifa1 '

 If MiFecha <= #3/31/2009# Or _ 'primer tramo de la tarifa1'
 MiFecha >= #4/11/2009# Or MiFecha <= #7/26/2009# Or _ '2º tramo de
la tarifa1'
 MiFecha >= #1/11/2009# Or MiFecha >= #2/12/2009# Or _ 'tercer tramo
de la tarifa1'
 MiFecha >= #12/12/2009# Or MiFecha >= #12/19/2009# Then '4º tramo de
la tarifa1'

'Tarifa1 a aplicar según el dia de la semana'

    Select Case MiDiaSemana

            Case 0, 1
                 Cells(27, 2) = 389
            Case 2, 3
                 Cells(27, 2) = 309
            Case 4, 5, 6, 7
                 Cells(27, 2) = 359
            Case Else
                 Cells(27, 2) = 0
            End Select

 'tarifa2 '

  ElseIf _

 MiFecha >= #1/4/2009# Or MiFecha <= #10/4/2009# Or _
'Tramos en meses para la tarifa2'
 MiFecha >= #3/12/2009# Or MiFecha >= #11/12/2009# Or _
 MiFecha >= #12/20/2009# Or MiFecha >= #12/31/2009# Then

    Select Case MiDiaSemana 'Tarifa2 a aplicar según el dia de la
semana'

            Case 0, 1
                 Cells(27, 2) = 499
            Case 2, 3
                 Cells(27, 2) = 389
            Case 4, 5, 6, 7
                 Cells(27, 2) = 459
            Case Else
                 Cells(27, 2) = 0
            End Select

'tarifa3'

       Else               'Tarifa para el resto de meses'

     Select Case MiDiaSemana

            Case 0, 1, 2, 3, 4, 5, 6, 7   ' es la misma tarifa toda la
semana'
                 Cells(27, 2) = 599

            Case Else

                 Cells(27, 2) = 0

            End Select

  End If

End Sub

Agradezco cualquier ayuda
Un saludo !



Ya , pero que le envío a la variable mes? , porque no es que sea mes
1 . 2 3 ..12 sino son periodos entre una fecha y otra en los que
tengo que aplicar una tarifa determinada :

MiFecha <= #3/31/2009# Or _ 'primer tramo de la tarifa1'
MiFecha >= #4/11/2009# Or MiFecha <= #7/26/2009# Or _ '2º tramo de
la tarifa1'
MiFecha >= #1/11/2009# Or MiFecha >= #2/12/2009# Or _ 'tercer tramo
de la tarifa1'
MiFecha >= #12/12/2009# Or MiFecha >= #12/19/2009# Then '4º tramo de
la tarifa1'




Saludos !
Respuesta Responder a este mensaje
#3 pepe
02/02/2009 - 18:45 | Informe spam
Select Case Fecha
Case Fecha > xx/xx/xxxx and Fecha < xx/xx/xxxx <== lee la ayuda
de Select Case

Select Case DiaSemana
Case 1
Case 2
end select case diasemana

Case Fecha > xx/xx/xxxx and Fecha < xx/xx/xxxx
Select Case DiaSemana
Case 1
Case 2
end select case diasemana




End Select case Tramo




"gongi" escribió en el mensaje de noticias
news:
On 2 feb, 15:58, "pepe" wrote:
Select Case Mes

Case 1
Select Case DiaSemana
Case 1
Case 2
end select case diasemana
Case 2
Select Case DiaSEmana
Case 1
Case 2
end select case diasemana



End Select case mes

"gongi" escribió en el mensaje de
noticiasnews:
Hola Grupo!
Por favor, una ayuda con esto:
Estoy intentando llevar a una celda, de una factura, una tarifa,(un
precio) , que depende de :
[un rango de meses] y dentro de ese rango de [el día de la semana].
Lo que no consigo es expresar esos rangos de meses dentro de un
condicional (if).

Sub Tarifas()

Dim MiFecha, MiDiaSemana,

' Conseguir el dia de la semana de la fecha de la factura '

MiFecha = ([b3])
MiDiaSemana = Weekday(MiFecha) - 1 'porque usa 0 como primer
dia'
Cells(1, 8) = MiDiaSemana ' celda de control - informativa'

'rango de meses para la tarifa1 '

If MiFecha <= #3/31/2009# Or _ 'primer tramo de la tarifa1'
MiFecha >= #4/11/2009# Or MiFecha <= #7/26/2009# Or _ '2º tramo de
la tarifa1'
MiFecha >= #1/11/2009# Or MiFecha >= #2/12/2009# Or _ 'tercer tramo
de la tarifa1'
MiFecha >= #12/12/2009# Or MiFecha >= #12/19/2009# Then '4º tramo de
la tarifa1'

'Tarifa1 a aplicar según el dia de la semana'

Select Case MiDiaSemana

Case 0, 1
Cells(27, 2) = 389
Case 2, 3
Cells(27, 2) = 309
Case 4, 5, 6, 7
Cells(27, 2) = 359
Case Else
Cells(27, 2) = 0
End Select

'tarifa2 '

ElseIf _

MiFecha >= #1/4/2009# Or MiFecha <= #10/4/2009# Or _
'Tramos en meses para la tarifa2'
MiFecha >= #3/12/2009# Or MiFecha >= #11/12/2009# Or _
MiFecha >= #12/20/2009# Or MiFecha >= #12/31/2009# Then

Select Case MiDiaSemana 'Tarifa2 a aplicar según el dia de la
semana'

Case 0, 1
Cells(27, 2) = 499
Case 2, 3
Cells(27, 2) = 389
Case 4, 5, 6, 7
Cells(27, 2) = 459
Case Else
Cells(27, 2) = 0
End Select

'tarifa3'

Else 'Tarifa para el resto de meses'

Select Case MiDiaSemana

Case 0, 1, 2, 3, 4, 5, 6, 7 ' es la misma tarifa toda la
semana'
Cells(27, 2) = 599

Case Else

Cells(27, 2) = 0

End Select

End If

End Sub

Agradezco cualquier ayuda
Un saludo !



Ya , pero que le envío a la variable mes? , porque no es que sea mes
1 . 2 3 ..12 sino son periodos entre una fecha y otra en los que
tengo que aplicar una tarifa determinada :

MiFecha <= #3/31/2009# Or _ 'primer tramo de la tarifa1'
MiFecha >= #4/11/2009# Or MiFecha <= #7/26/2009# Or _ '2º tramo de
la tarifa1'
MiFecha >= #1/11/2009# Or MiFecha >= #2/12/2009# Or _ 'tercer tramo
de la tarifa1'
MiFecha >= #12/12/2009# Or MiFecha >= #12/19/2009# Then '4º tramo de
la tarifa1'




Saludos !
Respuesta Responder a este mensaje
#4 Héctor Miguel
03/02/2009 - 01:15 | Informe spam
hola, domingo !

Estoy intentando llevar a una celda, de una factura, una tarifa (un precio)
que depende de [un rango de meses] y dentro de ese rango de [el dia de la semana].
Lo que no consigo es expresar esos rangos de meses dentro de un condicional (if)...



podrias exponer (exactamente) "los rangos" (de fecha/mes) con sus correspondientes tarifas (segun "que dia") ?
el codigo que expones no es muy "claro" y no siempre vba "reconocera" (adecuadamente) la secuencia de fechas que usas

saludos,
hector.
Respuesta Responder a este mensaje
#5 gongi
03/02/2009 - 10:33 | Informe spam
On 3 feb, 01:15, "Héctor Miguel"
wrote:
hola, domingo !

> Estoy intentando llevar a una celda, de una factura, una tarifa (un precio)
> que depende de [un rango de meses] y dentro de ese rango de [el dia de la semana].
> Lo que no consigo es expresar esos rangos de meses dentro de un condicional (if)...

podrias exponer (exactamente) "los rangos" (de fecha/mes) con sus correspondientes tarifas (segun "que dia") ?
el codigo que expones no es muy "claro" y no siempre vba "reconocera" (adecuadamente) la secuencia de fechas que usas

saludos,
hector.




Hola Hector! ,

Te explico a ver que tal...

Para la tarifa1Ž, tengo que aplicarla dentro de estas fechas: es decir
dentro de estos rangos tengo que ir a la tarifa 1 y ver los precios
para cada dia.
Para facturas con fecha menor o igual a 31/03/2009 (treinta y uno de
marzo de 2009)
Para facturas entre 11/04/2009 y 26/07/2009
Para facturas entre 01/11/2009 y 02/12/2009
Para facturas entre 12/12/2009 y 19/12/2009

y dentro de esas fechas evaluar el día (Lun,Mar. Mi, Jue, Vi,
Sab,Domi) = (1,2,3,4,5,6,7)
Los lunes tarifa= 389 , los martes y miercoles = 309 , los
jueves,viernes,sabados y domingos = 359
Pongo 0 y 1 porque no se como hacer para salvar la notación inglesa
(0,1,2,3,4,5,6) para los días de la semana, cuando el dia empieza en
Domingo.
Case 0, 1
Cells(27, 2) = 389
Case 2, 3
Cells(27, 2) = 309
Case 4, 5, 6, 7
Cells(27, 2) = 359
Case Else
Cells(27, 2) = 0
End Select

La tarifa 2 , la tengo que aplicar dentro de estes rango de fechas:
entre fecha factura >= 01/04/2009 y fecha factura <= 10/04/2009
entre fecha factura >= 03/12/2009 y <= 11/12/2009
entre fecha factura >= 20/12/2009 y <= 31/12/2009
Y luego igual, si la factura esta dentro de ese rango, evaluar el día
y aplicar los precios de la tarifa 2, según el día;
Lun= 499 ,Mar y Mi= 389; Jue, Vie, Sab, Domi= 459
Case 0, 1
Cells(27, 2) = 499
Case 2, 3
Cells(27, 2) = 389
Case 4, 5, 6, 7
Cells(27, 2) = 459
Case Else
Cells(27, 2) = 0
End Select

y por último la tarifa3 tengo que aplicarla desde el 27/07/2009 al
31/10/2009
y el precio aquí es el mismo para todos los dias de la semana:

Case 0, 1, 2, 3, 4, 5, 6, 7 ' es la misma tarifa toda la
semana'
Cells(27, 2) = 599

La característica de estos tramos es que abarcan todo el año


Gracias por tu ayuda, Hector.
Saludos!
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida