Sumar datos entre dos rangos de fechas en visul basic

Saludos, Cuando empleo este bloque de comandos en la opción (Elseif), me devuelve solamente la suma de los valores para la primera fecha, y no toma el rango dado por textbox11 y textbox12:
Hice el procedimiento con fórmulas en Excel y si funciona, pero en Visual No. Te pongo la fórmula que uso en excel para que lo compruebes:
+If(AND((A4>=$D$1,A4<=$D$2),B4,""),
esta formula es similar a la que esta en negrillas en el procedimiento del Userform en Visual Basic, ahora dime si esta mal?
Private Sub OptionButton1_Click()
Dim r, c
TextBox11 = InputBox("Digite la primera fecha de consulta (dd/mm/yyyy)")
r = InputBox("Número de dias a partir de la primera fecha")
TextBox12 = DateAdd("d", r, TextBox11)
Dim busca
col = 2 'suma dia prestamos
dia = 0
cuenta = 0
Dim nromes As Integer, mes As Integer
Dim dato As String
For fil = 1 To UltimaFila("hoja20", 1) 'Funcion ultimafila en module1
  If Sheets("hoja20").Cells(fil, 1).Value = CDate(TextBox11) And CDate(TextBox11) =   TextBox12 Then
dia = dia + Val(Sheets("hoja20").Cells(fil, col).Text)
cuenta = cuenta + Selection.Rows.Count
tdiap = dia
ElseIf Sheets("hoja20").Cells(fil, 1).Value = CDate(TextBox11) And CDate(TextBox11) <>  TextBox12 Then
  If Sheets("hoja20").Cells(fil, 1).Value >= CDate(TextBox11) And Sheets("hoja20").Cells(fil, 1).Value <= CDate(TextBox12) Then
dia = dia + Val(Sheets("hoja20").Cells(fil, col).Text)
cuenta = cuenta + Selection.Rows.Count
tdiap = dia
 Else
MsgBox "no hay datos"
End If
End If
Next fil

1 respuesta

Respuesta
1
Prueba con:
Dim FechaIni As Date
Dim FechaFin As Date
Set FechaIni = Sheets("Hoja20").Range("D1").Value
Set FechaFin = Sheets("Hoja20").Range("D2").Value
Tu_Codigo
If FechaIni >= CDate(TextBox11.Text) And FechaFin <= CDate(TextBox12.Text) Then
Tu_Codigo
Correcto, esta es la solución al problema, mi error era el tipo de campos empleados para comparar los rangos, uno era fecha y el otro texto. Gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas