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
Hola gente soy nuevo y estoy tratando de adaptar un programa vba a mi necesidad pero al momento de ejecutarlo me da el erro 3709
Option Explicit
Public CN As ADODB.Connection
Dim Cod_Prod, Nombre, Existencia
Dim Fila, Final As Integer
Function Connect(Server As String, User As String, Pass As String, Database As String) As Boolean
Set CN = New ADODB.Connection
On Error Resume Next
With CN
.ConnectionString = "Provider=SQLOLEDB.1;" & _
"Password=" & Pass & ";" & _
"Persist Security Info=True;" & _
"User ID=" & User & ";" & _
"Initial Catalog=" & Database & ";" & _
"Data Source=" & Server
.Open
End With
If CN.State = 0 Then
Connect = False
Else
Connect = True
End If
End Function
Function Query()
Dim SQL As String
Dim RS As ADODB.Recordset
Dim Field As ADODB.Field
Dim Col As Long
Set RS = New ADODB.Recordset
Final = GetUltimoR(Hoja1)
For Fila = 2 To Final
Cod_Prod = Hoja1.Cells(Fila, 2)
Nombre = Hoja1.Cells(Fila, 3)
Existencia = Hoja1.Cells(Fila, 4)
SQL = "insert into productos values('" & Cod_Prod & "','" & Nombre & "'," & Existencia & ");"
RS.Open SQL, CN el error me lo marca en esta linea
Next
RS.Open "SELECT * FROM PRODUCTOS", CN
If RS.State Then
Col = 1
For Each Field In RS.Fields
Cells(1, Col) = Field.Name
Col = Col + 1
Next Field
Cells(2, 1).CopyFromRecordset RS
Set RS = Nothing
End If