Voici le code que je l'ai écrit mais je continue à obtenir un problème avec la ligne que j'ai ajouté le commentaire, et que cette ligne. J'ai commenté toutes les autres lignes et j'ai isolé cela comme la ligne de problème, mais pour la vie de moi et avec l'heure ou plus de recherches que j'ai faites je ne peux pas comprendre quel est le problème. C'est probablement très évident, mais je suis vraiment coincé et ça me rend fou.Problème d'appel VBA fonction dans une autre fonction
Quoi qu'il en soit, le code doit être utilisé pour prendre une série de données contenant des temps de changement et la capacité de la langue et de montrer combien de personnes avec une langue spécifique sont disponibles au cours d'une période donnée (The_Time dans le code ci-dessous)
Toute aide serait grandement appréciée!
Function ReturnAvailability(The_Time As String, The_Info As Range)
Dim The_Lang As String
Dim The_Shift_Start As String
Dim The_Shift_End As String
Dim stGotIt As String
Dim stCell As Integer
Dim Counter As Integer
Counter = 0
For Each r In The_Info.Rows
For Each c In r.Cells
stCell = c.Value
If InStr(stCell, "Eng") > 0 Then
The_Lang = "Eng"
ElseIf InStr(c, ":") > 0 Then
stGotIt = StrReverse(c)
stGotIt = Left(c, InStr(1, c, " ", vbTextCompare))
The_Shift_End = StrReverse(Trim(stGotIt))
stGotIt = Left(The_Shift, InStr(1, The_Shift, " ", vbTextCompare))
The_Shift_Start = stGotIt
stCell = ReturnAvailabilityEnglish(The_Time, The_Shift_Start, The_Shift_End) ' this is the line causing the error
End If
Next c
Next r
ReturnAvailability = Counter
End Function
Function ReturnAvailabilityEnglish(The_Time As String, The_Shift_Start As String, The_Shift_End As String)
Dim Time_Hour As Integer
Dim Time_Min As Integer
Dim Start_Hour As Integer
Dim Start_Min As Integer
Dim End_Hour As Integer
Dim End_Min As Integer
Dim Available As Integer
Available = 13
Time_Hour = CInt(Left(The_Time, 2))
Time_Min = CInt(Right(The_Time, 2))
Start_Hour = CInt(Left(The_Shift_Start, 2))
Start_Min = CInt(Right(The_Shift_Start, 2))
End_Hour = CInt(Left(The_Shift_End, 2))
End_Min = CInt(Right(The_Shift_End, 2))
If Start_Hour <= Time_Hour And Start_Min <= Time_Min Then
If End_Hour > Time_Hour And End_Min > Time_Min Then
Available = 1
Else
Available = 0
End If
End If
ReturnAvailabilityEnglish = Available
End Function
Merci, Darragh J
Quelle ligne provoque l'erreur? Est-ce une erreur de compilation ou une erreur d'exécution? –
désolé à ce sujet, le commentaire a ajouté –
Quelle est l'erreur? – BenV