Saludos Sr. @Héctor Miguel agradecido por sus comentarios. Un poco de contexto, el resultado, que pretendo obtener en la Celda "E11" dependiendo de las horas introducidas en en la Celda "D11" me permite obtener los descansos obligatorios por Ley para periodos de tiempo determinados de alli que estoy tomando los cuatro casos más comunes, por tal motivo la Celda "D11" solo podrá adquirir valores comprendidos entre las 0 Horas y las 28 Horas mientas que la Celda "E11" exclusivamente podrá reflejar como resultado cuatro valores 0, 1, 2 y 3, ya que siendo un requisito legal no existe la posibilidad de obtener otro resultado si los valores de la Celda "D11" están comprendidos entre 0 Horas y 28 Horas, para acotar más el resultado y no dejar intervalos abiertos modifique la última fórmula: =SI(Y($D8>=21;$D8<29);3;0) Adjunto nuevamente el archivo con las correcciones mencionadas así como con los resultados esperados conforme me solicitó.
Libro1_110914.xlsx
Por
jues , · publicado hace 5 horas 5 hr
hola amigos buen dia
construyo una base en acces que se alimenta a traves de un
formulario de excel , y llege un punto que no he podido solucionar, y es que deseo extraer datos unicos de una tabla de acces a un listbox de excel y pues este es el codigo que utilizao,
Call conexion
Set rs = New ADODB.Recordset
With rs
.CursorLocation = adUseClient
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.Open "BDFOLIOS", cnn, adOpenKeyset, adLockOptimistic, adCmdTable
End With
For a = 1 To 130
If rs.Fields("FACTURAPOST") <> "" And rs.Fields("ESTADOFACTURACION") = False Then
combo1.Add CStr(rs.Fields("FACTURAPOST").Value)
End If
rs.MoveNext
Next a
' organizar datos en el listbox
For I = 1 To combo1.Count - 1
For j = I + 1 To combo1.Count
If combo1(I) > combo1(j) Then
ref1 = combo1(I)
ref2 = combo1(j)
With combo1
.Add ref1, before:=j
.Add ref2, before:=I
.Remove I + 1
.Remove j + 1
End With
End If
Next j
Next I
' agregar datos al listbox
For Each dato In combo1
ListBox3.AddItem dato
Next dato
rs.Close
Set rs = Nothing
saludos