Ajuste Formula de Día Laborable excel vba

Tengo código que me permite calcular los días laborables entre dos fechas dadas, sin embargo cuando las dos fechas son iguales el valor de "n" es negativo.

¿Cómo puedo hacer para que el valor de "n" sea en todo caso 1?

Ejemplo: Fecha Inicial 06-febrero-2015; Fecha Fin 06-febrero-2015.

Código Actual

Dim FechaInicio As Date, FechaFin As Date, n As Integer

FechaInicio = TextBox7.Text
FechaFin = Date
n = Application.WorksheetFunction.NetworkDays(FechaInicio, FechaFin)
TextBox8.Text = n

2 respuestas

Respuesta
1

Podrías hacer algo parecido a lo siguiente

Dim FechaInicio As Date, FechaFin As Date, n As Integer
FechaInicio = TextBox7.Text
FechaFin = Date
If FechaInicio = FechaFin Then
 n = 1
Else 
 n = Application.WorksheetFunction.NetworkDays(FechaInicio, FechaFin)
End If
TextBox8.Text = n

sigue el mismo error

Asegurate que en el If, esté funcionando la igualdad, ejecuta la instrucción paso a paso para verificar que entre a la instrucción "n = 1"

Lo hice y nada, no sé que estoy haciendo mal

Dim FechaInicio As Date, FechaFin As Date, n As Integer

FechaInicio = TextBox7.Text
FechaFin = Date
If FechaInicio = FechaFin Then
  n = 1
Else
  n = Application.WorksheetFunction.NetworkDays(FechaInicio, FechaFin)
End If
TextBox8.Text = n

Pasame el archivo porque la verdad que no entiendo, ya que así debería funcionar.

Igualmente aclarame una cosa:

En tu ejemplo, vos querés que si el día de inicio y fin son iguales, te de 1. Siguiendo con tu ejemplo, si ambas fechas son 6/febrero/2015, entonces querés que dé 1 (y la función devuelve 0). Ahora bien: ¿Qué querés que de si mantengo la fecha inicial y la final es 7/febrero/2015? 

¿Por qué en este caso la función también va a dar 1. Esto es lo que querés que pase? ¿O quisieras que de 2?

Si querés que de 2, no me envíes nada y simplemente a tu función original habría que agregarle el "+1", en caso que quieras que ambas respuestas den 1, entonces sí pasame el archivo que lo reviso, mi mail es

gfellayARROBAyahoo.com

Enviado a [email protected]

Saludos,

Te devolví el archivo modificado

Respuesta
-1

Es raro, el código funciona correctamente. ¿Dónde tienes colocado el código?

¿Así?

Private Sub TextBox7_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim FechaInicio As Date, FechaFin As Date, n As Integer
FechaInicio = TextBox7.Text
FechaFin = Date
If FechaInicio = FechaFin Then
 n = 1
Else
 n = Application.WorksheetFunction.NetworkDays(FechaInicio, FechaFin)
End If
TextBox8.Text = n
End Sub

Está en el Private Sub CommandButton7_Click() del userform2 de mi archivo de excel.

Me puedes enviar el archivo y te digo algo

[email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas