Macro para seleccionar que celdas agregar a un combobox

Saludos Experto quiero estoy modificando un macro para agregar ciertas celdas a un combobox de acuerdo a al dia y la hora.

Me.ComboBox1.Clear
Select Case ComboBox1
 Case 0
 If Weekday(Date, 2) = 1 And Time < 0.745138888888889 Then 'si es domingo _
 antes de las 06:pm
 For Each celda In Range("N9:N14")
 If celda <> Empty Then ComboBox1.AddItem celda.Value
 Next
 Case 0
 If Weekday(Date, 2) = 1 And Time > 0.745138888888889 And Time < 0.825 Then 'si es _
 domingo despues de las 06:pm pero antes de las 07:55 pm
 For Each celda In Range("N16:N21")
 If celda <> Empty Then ComboBox1.AddItem celda.Value
 Next
 Case 0
 If Weekday(Date, 2) <> 1 And Time < 0.745138888888889 Then 'si no es domingo
 For Each celda In Range("N:N7")
 If celda <> Empty Then ComboBox1.AddItem celda.Value
 Next
 End If
End Select

con este macro lo que quiero logras es:

- Primer caso que si es domingo y la hora es menor de 05:53:00 p.m. El combobox agregue las celdas desde la n9 hasta la n14

-Segundo caso que si es domingo y la hora es mayor de 05:53:00 p.m. Y menor que 07:48:00 p.m. El combobox agregue las celdas desde la n16 hasta la n7

-Tercer Caso que si no es domingo el combobox me agrege las celdas desde la n2 hasta la ne7

1

1 respuesta

Respuesta
1

Pero no tienes que ponerlo en un case

Las condiciones van directas, así:

If Weekday(Date, 2) = 1 And Time < 0.745138888888889 Then 'si es domingo _
antes de las 06:pm
For Each celda In Range("N9:N14")
If celda <> Empty Then ComboBox1.AddItem celda.Value
Next
end if

If Weekday(Date, 2) = 1 And Time > 0.745138888888889 And Time < 0.825 Then 'si es _
domingo después de las 06:pm pero antes de las 07:55 pm
For Each celda In Range("N16:N21")
If celda <> Empty Then ComboBox1.AddItem celda.Value
Next
end if

If Weekday(Date, 2) <> 1 And Time < 0.745138888888889 Then 'si no es domingo
For Each celda In Range("N:N7")
If celda <> Empty Then ComboBox1.AddItem celda.Value
Next
End if

Prueba y me comentas.

Saludos. Dam

Buenas dam estas lineas no me quieren cargar

If Weekday(Date, 2) = 1 And Time > 0.745138888888889 And Time < 0.825 Then 'si es _
domingo después de las 06:pm pero antes de las 07:55 pm
For Each celda In Range("N16:N21")
If celda <> Empty Then ComboBox1.AddItem celda.Value
Next
end if

El domingo es el número 7, debes poner así

If Weekday(Date, 2) = 7

Saludos. Dam

Saludos Dam me dices que iva asi "If Weekday(Date, 2) = 7" pero no se porque no me funcionaba bien, pero lo modifique y creo que ya si me funciona bien, asi lo modifique
If Weekday(Date) = vbSunday
la pegunta seria con esta modificación funciona igual??

 If Weekday(Date) = vbSunday And Time < 0.745138888888889 Then 'si es domingo _
 antes de las 06:00 pm
 For Each celda In Range("N9:N14")
 If celda <> Empty Then ComboBox1.AddItem celda.Value
 Next
 End If
 If Weekday(Date) = vbSunday And Time > 0.745138888888889 And Time < 0.825 Then 'si es _
 domingo después de las 06:00 pm pero antes de las 07:55 pm
 For Each celda In Range("N16:N21")
 If celda <> Empty Then ComboBox1.AddItem celda.Value
 Next
 End If
 If Weekday(Date) <> vbSunday Then rem si no es domingo
 For Each celda In Range("N2:N7")
 If celda <> Empty Then ComboBox1.AddItem celda.Value
 Next
 End If

Ya lo probé y si, vbSunday funciona para saber si hoy es domingo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas