J'essaie de faire une file d'attente capable de montrer le concept du premier entré, premier sorti. Je veux avoir un tableau qui fonctionne comme une liste d'attente. Les patients qui viennent plus tard seront libérés plus tard. Il y a une limite de 24 patients dans la salle, le reste ira sur une liste d'attente. chaque fois que la pièce est vide, les premiers patients de la salle d'attente (la première) vont dans la pièce. Voici le code que j'ai trouvé jusqu'à présent. Toute aide est grandement appréciée.VBA - Comment faire une file d'attente dans un tableau? (FIFO) premier entré, premier sorti
Dim arrayU() As Variant
Dim arrayX() As Variant
Dim arrayW() As Variant
Dim LrowU As Integer
Dim LrowX As Integer
Dim LrowW As Integer
'Dim i As Integer
Dim j As Integer
Dim bed_in_use As Integer
LrowU = Columns(21).Find(What:="*", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
LrowX = Columns(24).Find(What:="*", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
LrowW = Columns(23).Find(What:="*", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
ReDim arrayU(1 To LrowU)
ReDim arrayX(1 To LrowX)
ReDim arrayW(1 To LrowW)
For i = 3 To LrowU
arrayU(i) = Cells(i, 21)
Next i
i = 3
For i = 3 To LrowX
arrayX(i) = Cells(i, 24)
Next i
i = 3
j = 3
For r = 3 To LrowW
arrayW(r) = Cells(r, 23)
Next r
r = 3
i = 3
j = 3
For i = 3 To LrowX ' the number of bed in use is less than 24 (HH)
If bed_in_use >= 24 Then GoTo Line1
For j = 3 To LrowU
If bed_in_use >= 24 Then GoTo Line1
If arrayX(i) = arrayU(j) Then
If Wait_L > 0 Then
Wait_L = Wait_L - (24 - bed_in_use)
Else
bed_in_use = bed_in_use + 1
End If
End If
Next j
Line1:
For r = 3 To LrowW
If bed_in_use < 24 Then Exit For
If arrayX(i) = arrayW(r) Then
bed_in_use = bed_in_use - 1
Wait_L = Wait_L + 1
End If
Next r
Cells(i, "Y").Value = bed_in_use
Cells(i, "Z").Value = Wait_L
Next i
Merci. quand je copie le code j'ai l'erreur de "type défini par l'utilisateur non défini". Y a-t-il des changements que je devrais faire avant d'utiliser? – Zapata
@Hamidkh - La section supérieure du code doit aller dans sa propre classe, et non dans un module. – Comintern
Est-ce que la partie inférieure du code va à la feuille dans laquelle les données sont stockées? Toujours avoir la même erreur. Merci. – Zapata