Advertisement
Danixo84

Untitled

Mar 25th, 2023
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VBScript 20.65 KB | Source Code | 0 0
  1. Type Lavoratore
  2.     nome As String
  3.     DisponibileGiorni() As Boolean ' Array di 7 elementi (uno per ogni giorno della settimana)
  4.    OrariDisponibili() As Integer ' Array di 10 elementi (uno per ogni fascia oraria)
  5. End Type
  6.  
  7. Sub PianificaTurni()
  8.  
  9.     Dim lavoratori() As Lavoratore
  10.     Dim numLavoratori As Integer
  11.     Dim i As Integer
  12.     Dim j As Integer
  13.     Dim k As Integer
  14.     Dim turnoSettimanale() As String
  15.     Dim turnoGiornaliero() As String
  16.     Dim oreDisponibili As Integer
  17.     Dim personeDisponibili() As Lavoratore
  18.     Dim numPersoneDisponibili As Integer
  19.     Dim oreGiornaliere(1 To 5) As Integer
  20.     Dim giorniLavorativi(1 To 7) As Boolean
  21.     Dim oreMinime(1 To 5) As Integer
  22.     Dim oreMassime(1 To 5) As Integer
  23.     Dim turnoInserito As Boolean
  24.     Dim nomeTurno As String
  25.    
  26.     ' Popola l'array di lavoratori
  27.    Call PopolaLavoratori
  28.     lavoratori = PopolaLavoratori
  29.    
  30.     ' Inizializza l'array di turni settimanali
  31.    ReDim turnoSettimanale(1 To 5, 1 To 4)
  32.    
  33.     ' Inizializza l'array di turni giornalieri
  34.    ReDim turnoGiornaliero(1 To 5, 1 To 4)
  35.    
  36.     ' Popola l'array di turni settimanali con i nomi dei giorni lavorativi
  37.    turnoSettimanale(1, 1) = "Lunedi"
  38.     turnoSettimanale(2, 1) = "Martedi"
  39.     turnoSettimanale(3, 1) = "Mercoledi"
  40.     turnoSettimanale(4, 1) = "Giovedi"
  41.     turnoSettimanale(5, 1) = "Venerdi"
  42.    
  43.     ' Inizializza l'array di giorni lavorativi
  44.    For i = 1 To 7
  45.         giorniLavorativi(i) = False
  46.     Next i
  47.    
  48.     ' Pianifica il turno del lunedi
  49.    giorniLavorativi(2) = True
  50.     giorniLavorativi(3) = True
  51.     numPersoneDisponibili = 0
  52.     oreDisponibili = 0
  53.     For i = 1 To numLavoratori
  54.         If lavoratori(i).DisponibileGiorni(2) And lavoratori(i).DisponibileGiorni(3) And lavoratori(i).OrariDisponibili(3) <= 3 And lavoratori(i).OrariDisponibili(4) >= 2 Then
  55.             ReDim Preserve personeDisponibili(1 To numPersoneDisponibili + 1)
  56.             personeDisponibili(numPersoneDisponibili + 1) = lavoratori(i)
  57.             numPersoneDisponibili = numPersoneDisponibili + 1
  58.             oreDisponibili = oreDisponibili + (lavoratori(i).OrariDisponibili(4) - lavoratori(i).OrariDisponibili(3) + 1)
  59.         End If
  60.     Next i
  61.     If numPersoneDisponibili >= 5 Then
  62.         ' Se ci sono abbastanza persone disponibili, assegna il turno
  63.    For i = 1 To 5
  64.     turnoGiornaliero(i, 1) = personeDisponibili(i).nome
  65.     personeDisponibili(i).TurniSettimanali(1) = turnoGiornaliero(i, 1)
  66.     personeDisponibili(i).OreLavorateGiornaliere(2) = personeDisponibili(i).OreLavorateGiornaliere(2) + (personeDisponibili(i).OrariDisponibili(4) - personeDisponibili(i).OrariDisponibili(3) + 1)
  67.     giorniLavorativi(2) = True
  68.     giorniLavorativi(3) = True
  69.     Next i
  70.     Else
  71.     ' Altrimenti, scegli i lavoratori con il maggior numero di ore disponibili
  72.    Do While numPersoneDisponibili < 5 And oreDisponibili > 0
  73.     Dim maxOre As Integer
  74.     maxOre = 0
  75.     For i = 1 To numLavoratori
  76.     If lavoratori(i).DisponibileGiorni(2) And lavoratori(i).DisponibileGiorni(3) And lavoratori(i).OrariDisponibili(3) <= 3 And lavoratori(i).OrariDisponibili(4) >= 2 And lavoratori(i).OreLavorateGiornaliere(2) < oreMassime(2) Then
  77.     If lavoratori(i).OreLavorateGiornaliere(2) >= maxOre Then
  78.     If lavoratori(i).OreLavorateGiornaliere(2) > maxOre Then
  79.     numPersoneDisponibili = 0
  80.     oreDisponibili = 0
  81.     ReDim personeDisponibili(1 To 5)
  82.     maxOre = lavoratori(i).OreLavorateGiornaliere(2)
  83.     End If
  84.     numPersoneDisponibili = numPersoneDisponibili + 1
  85.     oreDisponibili = oreDisponibili + (lavoratori(i).OrariDisponibili(4) - lavoratori(i).OrariDisponibili(3) + 1)
  86.     personeDisponibili(numPersoneDisponibili) = lavoratori(i)
  87.     End If
  88.     End If
  89.     Next i
  90.     Loop
  91.     If numPersoneDisponibili >= 5 Then
  92.     ' Se ci sono abbastanza persone disponibili, assegna il turno
  93.    For i = 1 To 5
  94.     turnoGiornaliero(i, 1) = personeDisponibili(i).nome
  95.     personeDisponibili(i).TurniSettimanali(1) = turnoGiornaliero(i, 1)
  96.     personeDisponibili(i).OreLavorateGiornaliere(2) = personeDisponibili(i).OreLavorateGiornaliere(2) + (personeDisponibili(i).OrariDisponibili(4) - personeDisponibili(i).OrariDisponibili(3) + 1)
  97.     giorniLavorativi(2) = True
  98.     giorniLavorativi(3) = True
  99.     Next i
  100.     Else
  101.     ' Altrimenti, il turno viene saltato
  102.    For i = 1 To numPersoneDisponibili
  103.     personeDisponibili(i).OreLavorateGiornaliere(2) = personeDisponibili(i).OreLavorateGiornaliere(2) + (personeDisponibili(i).OrariDisponibili(4) - personeDisponibili(i).OrariDisponibili(3) + 1)
  104.             Next i
  105.     Else
  106.         ' Altrimenti, il turno viene saltato
  107.        For i = 1 To numPersoneDisponibili
  108.             personeDisponibili(i).OreLavorateGiornaliere(2) = personeDisponibili(i).OreLavorateGiornaliere(2) + (personeDisponibili(i).OrariDisponibili(4) - personeDisponibili(i).OrariDisponibili(3) + 1)
  109.             personeDisponibili(i).TurniSettimanali(1) = "Riposo"
  110.         Next i
  111.     End If
  112.    
  113.     ' Assegna il turno del pomeriggio
  114.    numPersoneDisponibili = 0
  115.     oreDisponibili = 0
  116.     ReDim personeDisponibili(1 To 5)
  117.     If numLavoratori >= 5 Then
  118.         ' Se ci sono abbastanza lavoratori, scegli casualmente 5 persone
  119.        Dim index As Integer
  120.         Dim usedIndices As New Collection
  121.         Do While numPersoneDisponibili < 5
  122.             index = Int(Rnd() * numLavoratori) + 1
  123.             If Not usedIndices.Contains(index) And lavoratori(index).DisponibileGiorni(2) And lavoratori(index).DisponibileGiorni(3) And lavoratori(index).OrariDisponibili(3) <= 3 And lavoratori(index).OrariDisponibili(4) >= 2 And lavoratori(index).OreLavorateGiornaliere(3) < oreMassime(3) Then
  124.                 numPersoneDisponibili = numPersoneDisponibili + 1
  125.                 oreDisponibili = oreDisponibili + (lavoratori(index).OrariDisponibili(6) - lavoratori(index).OrariDisponibili(5) + 1)
  126.                 personeDisponibili(numPersoneDisponibili) = lavoratori(index)
  127.                 usedIndices.Add (index)
  128.             End If
  129.         Loop
  130.        
  131.         ' Se ci sono abbastanza persone disponibili, assegna il turno
  132.        For i = 1 To 5
  133.             turnoGiornaliero(i, 2) = personeDisponibili(i).nome
  134.             personeDisponibili(i).TurniSettimanali(2) = turnoGiornaliero(i, 2)
  135.             personeDisponibili(i).OreLavorateGiornaliere(3) = personeDisponibili(i).OreLavorateGiornaliere(3) + (personeDisponibili(i).OrariDisponibili(6) - personeDisponibili(i).OrariDisponibili(5) + 1)
  136.             giorniLavorativi(2) = True
  137.             giorniLavorativi(3) = True
  138.         Next i
  139.     Else
  140.         ' Altrimenti, scegli i lavoratori con il maggior numero di ore disponibili
  141.        Do While numPersoneDisponibili < 5 And oreDisponibili > 0
  142.             Dim maxOre As Integer
  143.             maxOre = 0
  144.             For i = 1 To numLavoratori
  145.                 If lavoratori(i).DisponibileGiorni(2) And lavoratori(i).DisponibileGiorni(3) And lavoratori(i).OrariDisponibili(3) <= 3 And lavoratori(i).OrariDisponibili(4) >= 2 Then
  146.                     Dim oreDisponibiliPersona As Integer
  147.                 oreDisponibiliPersona = (lavoratori(i).OrariDisponibili(6) - lavoratori(i).OrariDisponibili(5) + 1) - lavoratori(i).OreLavorateGiornaliere(3)
  148.                 If oreDisponibiliPersona > maxOre Then
  149.                     maxOre = oreDisponibiliPersona
  150.                 End If
  151.             Next i
  152.            
  153.             If maxOre > 0 Then
  154.                 For i = 1 To numLavoratori
  155.                     If lavoratori(i).DisponibileGiorni(2) And lavoratori(i).DisponibileGiorni(3) And lavoratori(i).OrariDisponibili(3) <= 3 And lavoratori(i).OrariDisponibili(4) >= 2 And (lavoratori(i).OrariDisponibili(6) - lavoratori(i).OrariDisponibili(5) + 1) - lavoratori(i).OreLavorateGiornaliere(3) = maxOre And oreDisponibili > 0 Then
  156.                         numPersoneDisponibili = numPersoneDisponibili + 1
  157.                         oreDisponibili = oreDisponibili - maxOre
  158.                         personeDisponibili(numPersoneDisponibili) = lavoratori(i)
  159.                     End If
  160.                 Next i
  161.             Else
  162.                 Exit Do
  163.             End If
  164.         Loop
  165.        
  166.         If numPersoneDisponibili = 5 Then
  167.             ' Se ci sono abbastanza persone disponibili, assegna il turno
  168.            For i = 1 To 5
  169.                 turnoGiornaliero(i, 2) = personeDisponibili(i).nome
  170.                 personeDisponibili(i).TurniSettimanali(2) = turnoGiornaliero(i, 2)
  171.                 personeDisponibili(i).OreLavorateGiornaliere(3) = personeDisponibili(i).OreLavorateGiornaliere(3) + maxOre
  172.                 giorniLavorativi(2) = True
  173.                 giorniLavorativi(3) = True
  174.             Next i
  175.         Else
  176.             ' Altrimenti, il turno viene saltato
  177.            For i = 1 To numPersoneDisponibili
  178.                 personeDisponibili(i).OreLavorateGiornaliere(3) = personeDisponibili(i).OreLavorateGiornaliere(3) + (personeDisponibili(i).OrariDisponibili(6) - personeDisponibili(i).OrariDisponibili(5) + 1)
  179.                 personeDisponibili(i).TurniSettimanali(2) = "Riposo"
  180.             Next i
  181.         End If
  182.     End If
  183.    
  184.     ' Assegna il turno del venerdi sera
  185.    numPersoneDisponibili = 0
  186.     oreDisponibili = 0
  187.     ReDim personeDisponibili(1 To 3)
  188.     If numLavoratori >= 3 Then
  189.         ' Se ci sono abbastanza lavoratori, scegli casualmente 3 persone
  190.        Dim index As Integer
  191.         Dim usedIndices As New Collection
  192.         Do While numPersoneDisponibili < 3
  193.             index = Int(Rnd() * numLavoratori) + 1
  194.             If Not usedIndices.Contains(index) And lavoratori(index).DisponibileGiorni(5) And lavoratori(index).DisponibileGiorni(6) And lavoratori(index).OrariDisponibili(5) <= 5 And lavoratori(index).OrariDisponibili(6) >= 4 Then
  195.                 numPersoneDisponibili = numPersoneDisponibili + 1
  196.                 personeDisponibili(numPersoneDisponibili) = lavoratori(index)
  197.                 usedIndices.Add index
  198.             End If
  199.         Loop
  200.     Else
  201.         ' Altrimenti, cerca tra i lavoratori disponibili chi ha più ore a disposizione
  202.        Dim maxOre As Integer
  203.         maxOre = 0
  204.         Do While oreDisponibili > 0
  205.             maxOre = 0
  206.             For i = 1 To numLavoratori
  207.                 Dim oreDisponibiliPersona As Integer
  208.                 oreDisponibiliPersona = (lavoratori(i).OrariDisponibili(6) - lavoratori(i).OrariDisponibili(5) + 1) - lavoratori(i).OreLavorateGiornaliere(4)
  209.                 If oreDisponibiliPersona > maxOre Then
  210.                     maxOre = oreDisponibiliPersona
  211.                 End If
  212.             Next i
  213.            
  214.             If maxOre > 0 Then
  215.                 For i = 1 To numLavoratori
  216.                     If lavoratori(i).DisponibileGiorni(5) And lavoratori(i).DisponibileGiorni(6) And lavoratori(i).OrariDisponibili(5) <= 5 And lavoratori(i).OrariDisponibili(6) >= 4 And (lavoratori(i).OrariDisponibili(6) - lavoratori(i).OrariDisponibili(5) + 1) - lavoratori(i).OreLavorateGiornaliere(4) = maxOre And oreDisponibili > 0 Then
  217.                         numPersoneDisponibili = numPersoneDisponibili + 1
  218.                         oreDisponibili = oreDisponibili - maxOre
  219.                         personeDisponibili(numPersoneDisponibili) = lavoratori(i)
  220.                     End If
  221.                 Next i
  222.             Else
  223.                 Exit Do
  224.             End If
  225.         Loop
  226.        
  227.         If numPersoneDisponibili = 3 Then
  228.             ' Se ci sono abbastanza persone disponibili, assegna il turno
  229.            For i = 1 To 3
  230.                 turnoGiornaliero(i + 4, 2) = personeDisponibili(i).nome
  231.                 personeDisponibili(i).TurniSettimanali(5) = turnoGiornaliero(i + 4, 2)
  232.                 personeDisponibili(i).OreLavorateGiornaliere(4) = personeDisponibili(i).OreLavorateGiornaliere(4) + maxOre
  233.                 giorniLavorativi(5) = True
  234.                 giorniLavorativi(6) = True
  235.             Next i
  236.         Else
  237.             ' Altrimenti, il turno viene saltato
  238.            For i = 1 To numPersoneDisponibili
  239.                 personeDisponibili(i).OreLavorateGiornaliere(4) = personeDisponibili(i).OreLavorateGiornaliere(4) + (personeDisponibili(i).OrariDisponibili(6) - personeDisponibili(i).OrariDisponibili(5) + 1)
  240.                 personeDisponibili(i).TurniSettimanali(5) = "Riposo"
  241.             Next i
  242.         End If
  243.                 ' Giovedì
  244.    numPersoneDisponibili = 0
  245.     ReDim personeDisponibili(numLavoratori)
  246.     If giorniLavorativi(4) Then
  247.         ' Se ci sono lavoratori disponibili il giovedì, cerca prima quelli che lavorano fino alle 18:00
  248.        For index = 1 To numLavoratori
  249.             If lavoratori(index).DisponibileGiorni(4) And lavoratori(index).OrariDisponibili(6) >= 5 And lavoratori(index).OreLavorateGiornaliere(5) < (lavoratori(index).OrariDisponibili(6) - lavoratori(index).OrariDisponibili(5) + 1) And Not usedIndices.Contains(index) And giorniLavorativi(4) Then
  250.                 numPersoneDisponibili = numPersoneDisponibili + 1
  251.                 personeDisponibili(numPersoneDisponibili) = lavoratori(index)
  252.                 usedIndices.Add index
  253.             End If
  254.         Next index
  255.        
  256.         ' Se non ci sono abbastanza lavoratori disponibili fino alle 18:00, cerca quelli che hanno almeno 4 ore libere
  257.        Dim oreDisponibili As Integer
  258.         oreDisponibili = 8
  259.         For i = 1 To numLavoratori
  260.             oreDisponibili = oreDisponibili - lavoratori(i).OreLavorateGiornaliere(5)
  261.         Next i
  262.        
  263.         If oreDisponibili >= 4 Then
  264.             For index = 1 To numLavoratori
  265.                 If lavoratori(index).DisponibileGiorni(4) And (lavoratori(index).OrariDisponibili(6) - lavoratori(index).OrariDisponibili(5) + 1) - lavoratori(index).OreLavorateGiornaliere(5) >= 4 And Not usedIndices.Contains(index) And giorniLavorativi(4) Then
  266.                     numPersoneDisponibili = numPersoneDisponibili + 1
  267.                     personeDisponibili(numPersoneDisponibili) = lavoratori(index)
  268.                     usedIndices.Add index
  269.                 End If
  270.             Next index
  271.         End If
  272.        
  273.         ' Se ancora non ci sono abbastanza lavoratori disponibili, cerca quelli che possono lavorare il giovedì
  274.        Do While numPersoneDisponibili < 4 And oreDisponibili > 0
  275.             For index = 1 To numLavoratori
  276.                 If lavoratori(index).DisponibileGiorni(4) And (lavoratori(index).OrariDisponibili(6) - lavoratori(index).OrariDisponibili(5) + 1) - lavoratori(index).OreLavorateGiornaliere(5) > 0 And Not usedIndices.Contains(index) And giorniLavorativi(4) Then
  277.                     numPersoneDisponibili = numPersoneDisponibili + 1
  278.                     oreDisponibili = oreDisponibili - 1
  279.                     personeDisponibili(numPersoneDisponibili) = lavoratori(index)
  280.                     lavoratori(index).OreLavorateGiornaliere(5) = lavoratori(index).OreLavorateGiornaliere(5) + 1
  281.                     usedIndices.Add index
  282.                 End If
  283.             Next index
  284.         Loop
  285.        
  286.         If numPersoneDisponibili = 4 Then
  287.             ' Se ci sono abbastanza persone disponibili, assegna il turno
  288.            For i = 1 To 5
  289.                 turniGiornalieri(4, 1) = personeDisponibili(1).nome
  290.                 turniGiornalieri(4, 2) = personeDisponibili(2).nome
  291.                 turniGiornalieri(4, 3) = personeDisponibili(3).nome
  292.                 turniGiornalieri(4, 4) = personeDisponibili(4).nome
  293.             Else
  294.                 ' Se non ci sono abbastanza persone disponibili, segnala l'errore
  295.                MsgBox "Impossibile pianificare il turno del giovedì", vbCritical, "Errore"
  296.             End If
  297.         Else
  298.             ' Se il giovedì non è un giorno lavorativo, lascia vuoti i turni
  299.            For i = 1 To 4
  300.                 turniGiornalieri(4, i) = ""
  301.             Next i
  302.         End If
  303.        
  304.         ' Venerdì
  305.        numPersoneDisponibili = 0
  306.         ReDim personeDisponibili(numLavoratori)
  307.         If giorniLavorativi(5) Then
  308.             ' Se ci sono lavoratori disponibili il venerdì, cerca quelli che lavorano fino alle 18:00
  309.            For index = 1 To numLavoratori
  310.                 If lavoratori(index).DisponibileGiorni(5) And lavoratori(index).OrariDisponibili(6) >= 5 And lavoratori(index).OreLavorateGiornaliere(6) < (lavoratori(index).OrariDisponibili(6) - lavoratori(index).OrariDisponibili(5) + 1) And Not usedIndices.Contains(index) And giorniLavorativi(5) Then
  311.                     numPersoneDisponibili = numPersoneDisponibili + 1
  312.                     personeDisponibili(numPersoneDisponibili) = lavoratori(index)
  313.                     usedIndices.Add index
  314.                 End If
  315.             Next index
  316.            
  317.             ' Se non ci sono abbastanza lavoratori disponibili fino alle 18:00, cerca quelli che hanno almeno 4 ore libere
  318.            Dim oreDisponibili As Integer
  319.             oreDisponibili = 8
  320.             For i = 1 To numLavoratori
  321.                 oreDisponibili = oreDisponibili - lavoratori(i).OreLavorateGiornaliere(6)
  322.             Next i
  323.            
  324.             If oreDisponibili >= 4 Then
  325.                 For index = 1 To numLavoratori
  326.                     If lavoratori(index).DisponibileGiorni(5) And (lavoratori(index).OrariDisponibili(6) - lavoratori(index).OrariDisponibili(5) + 1) - lavoratori(index).OreLavorateGiornaliere(6) >= 4 And Not usedIndices.Contains(index) And giorniLavorativi(5) Then
  327.                         numPersoneDisponibili = numPersoneDisponibili + 1
  328.                         personeDisponibili(numPersoneDisponibili) = lavoratori(index)
  329.                         usedIndices.Add index
  330.                     End If
  331.                 Next index
  332.             End If
  333.            
  334.             ' Se ancora non ci sono abbastanza lavoratori disponibili, cerca quelli che possono lavorare il venerdì
  335.            Do While numPersoneDisponibili < 3 And oreDisponibili > 0
  336.                 For index = 1 To numLavoratori
  337.                     If lavoratori(index).DisponibileGiorni(5) And (lavoratori(index).OrariDisponibili(6) - lavoratori(index).OrariDisponibili(5) + 1) - lavoratori(index).OreLavorateGiornaliere(6) >= 1 And Not usedIndices.Contains(index) And giorniLavorativi(5) Then
  338.                     numPersoneDisponibili = numPersoneDisponibili + 1
  339.                     personeDisponibili(numPersoneDisponibili) = lavoratori(index)
  340.                     usedIndices.Add index
  341.                     oreDisponibili = oreDisponibili - 1
  342.                     End If
  343.                     Next index
  344.             Loop
  345.            
  346.                         ' Se ci sono abbastanza persone disponibili, pianifica i turni
  347.            If numPersoneDisponibili >= 3 Then
  348.                 ' Inserisce le persone disponibili
  349.                turniGiornalieri(5, 1) = personeDisponibili(1).nome
  350.                 turniGiornalieri(5, 2) = personeDisponibili(2).nome
  351.                 turniGiornalieri(5, 3) = personeDisponibili(3).nome
  352.             Else
  353.                 ' Se non ci sono abbastanza persone disponibili, segnala l'errore
  354.                MsgBox "Impossibile pianificare il turno del venerdì", vbCritical, "Errore"
  355.             End If
  356.         Else
  357.             ' Se il venerdì non è un giorno lavorativo, lascia vuoti i turni
  358.            For i = 1 To 3
  359.                 turniGiornalieri(5, i) = ""
  360.             Next i
  361.         End If
  362.        
  363.         ' Sabato e Domenica
  364.        For i = 6 To 7
  365.             For j = 1 To 3
  366.                 turniGiornalieri(i, j) = ""
  367.             Next j
  368.         Next i
  369.        
  370.         ' Riempie i dati nella tabella
  371.        For i = 1 To 35
  372.             ' Nome del lavoratore
  373.            Sheets("Planning").Cells(i + 9, 9).Value = turniGiornalieri(i Mod 5, 1)
  374.             Sheets("Planning").Cells(i + 9, 10).Value = turniGiornalieri(i Mod 5, 2)
  375.             Sheets("Planning").Cells(i + 9, 11).Value = turniGiornalieri(i Mod 5, 3)
  376.             ' Orario di lavoro
  377.            Sheets("Planning").Cells(i + 9, 12).Value = orarioGiornaliero(i Mod 5, 1)
  378.             Sheets("Planning").Cells(i + 9, 13).Value = orarioGiornaliero(i Mod 5, 2)
  379.             Sheets("Planning").Cells(i + 9, 14).Value = orarioGiornaliero(i Mod 5, 3)
  380.             ' Giorno della settimana
  381.            Sheets("Planning").Cells(i + 9, 15).Value = giorniSettimana(i Mod 5)
  382.             ' Data
  383.            Sheets("Planning").Cells(i + 9, 16).Value = dataInizio.AddDays(i - 1)
  384.         Next i
  385.        
  386.         ' Segnala che la pianificazione è stata completata
  387.        MsgBox "Pianificazione completata!", vbInformation, "Completato"
  388.     Else
  389.         ' Se non è stata selezionata una data di inizio, segnala l'errore
  390.        MsgBox "Seleziona una data di inizio!", vbCritical, "Errore"
  391.     End If
  392. Else
  393.     ' Se non sono stati inseriti i lavoratori nel database, segnala l'errore
  394.    MsgBox "Inserisci almeno un lavoratore nel database!", vbCritical, "Errore"
  395. End If
  396.  
  397. End Sub
  398.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement