Notifiche
Cancella tutti

La consultazione del forum è libera per tutti.

Per poter porre un quesito è invece necessario essere un utente registrato (clicca qui se non lo sei).

Tutti gli utenti che richiedono un supporto, come da REGOLAMENTO, sono caldamente invitati ad allegare un file di esempio con l'indicazione di quello che si desidera ottenere.

[Risolto] Programma Pulizie

5 Post
2 Utenti
0 Reactions
520 Visualizzazioni
Forum 1
(@beppe)
Post: 0
New Member
Avviatore di Topic
 

Buongiorno a tutti, mi è stato chiesto di modificare il programma delle pulizie che vi allego. Chidevo gentilmente se esiste un modo per far girare le persone in automatico, (tenendo conto anche del fatto che quando non possono si sostituiscono a vicenda.)

Siccome ogni mese le sttimane variano si può in automatico aggiungere e togliere le righe? 

Vedrete anche che il primo Sabato del mese è in rosso, perché è il giorno delle pulzie di fondo, e anche lì ci vuole un'alternanza giusta.

Ho creato un calendario a parte (Che sinceramente non mi piace ma è utile per conoscere i sabati delle pulizie. Se pensate di migliorarlo modificatelo pure, (oppure se riuscite a creare il programma in automatico si può eliminare). 

Vi ringrazio per la vostra gentilezza e se avete domande ulteriori non esitate a chiedere.

Ciao Giuseppe

 

Versione di Excel
Sistema operativo
 
Postato : 18/11/2023 03:25
Marius44
(@marius44)
Post: 339
Moderatore
 

 

Ciao

Questo il codice (di cui allego file)

Option Explicit

Sub turni()
'4 nominativi
'turni solo il sabato da una data ad un'altra
'i 4 nominativi devono turnare per il rpimo dabato del mese
'e per tutti i sabati del periodo indicato
Range("D:H,K:K").ClearContents
'assumo i nominativi
Dim nome(1 To 4) As String, i As Long, r As Long, ur As Long
Dim dt_ini As Date, dt_fin As Date, dt_i As Date, dt_f As Date, a, b
For i = 2 To 5
  nome(i - 1) = Cells(i, 1).Text
Next i
'assumo data iniziale e finale
dt_ini = Cells(2, 2).Value
dt_fin = Cells(4, 2).Value
'individuo il primo sabato dalla data di inizio
For i = 1 To 7
  dt_i = dt_ini - 1 + i
  If Application.WorksheetFunction.Weekday(dt_i) = 7 Then
     Exit For
  End If
Next i
'creo calendario in verticale fino all'ultimo sabato prima della data finale
Range("D:D").Font.ColorIndex = 1
Cells(1, 4) = "Calendario sabati"
a = dt_i: r = 2
Do Until a >= dt_fin
  Cells(r, 4) = a
  If r = 2 Then
    Cells(r, 4).Font.ColorIndex = 3
  ElseIf r > 2 Then
    If Month(Cells(r - 1, 4)) <> Month(Cells(r, 4)) Then
      Cells(r, 4).Font.ColorIndex = 3
    End If
  End If
  a = a + 7
  r = r + 1
Loop
'prima colonna
ur = Cells(Rows.Count, 4).End(xlUp).Row
a = 1: b = a + 1
For i = 2 To ur
  If Cells(i, 4).Font.ColorIndex = 3 Then
    Cells(i, 5) = nome(a)
    a = a + 1: If a > 4 Then a = 1
  Else
    Cells(i, 5) = nome(b)
    b = b + 1: If b > 4 Then b = 1
  End If
Next

'seconda-quarta
For i = 2 To ur
  If Cells(i, 5) = Cells(2, 1) Then
    Cells(i, 6) = nome(2)
    Cells(i, 7) = nome(3)
    Cells(i, 8) = nome(4)
  ElseIf Cells(i, 5) = Cells(3, 1) Then
    Cells(i, 6) = nome(3)
    Cells(i, 7) = nome(4)
    Cells(i, 8) = nome(1)
  ElseIf Cells(i, 5) = Cells(4, 1) Then
    Cells(i, 6) = nome(4)
    Cells(i, 7) = nome(1)
    Cells(i, 8) = nome(2)
  ElseIf Cells(i, 5) = Cells(5, 1) Then
    Cells(i, 6) = nome(1)
    Cells(i, 7) = nome(2)
    Cells(i, 8) = nome(3)
  End If
  'Stop
Next i
'Stop
End Sub

Prova a cliccare sul pulsante blu dopo aver inserito due date nelle celle gialle

 
Postato : 18/11/2023 16:35
Forum 1
(@beppe)
Post: 0
New Member
Avviatore di Topic
 

Ciao Marius44, Grazie, per il tuo lavoro, logicamente devo prendere in considerazione solo la colonna E per la turnazione? o avevi qualcos'altro in mente? 

Per applicare la tua formula in un altro file, (scusa l'ignoranza 🙄 🙄 🙄 ), ho provato a copiare e incollare su una cella ciò che hai scritto, logicamente non funziona come io pensavo 🤣 🤣 🤣, cosa devo fare?

Grazie ancora per il tuo tempo.

Un saluto

Giuseppe

 
Postato : 19/11/2023 23:49
Marius44
(@marius44)
Post: 339
Moderatore
 

Ciao Giuseppe

Il mio suggerimento è valido SOLO SE:

a) i dati sono quelli (4 nominativi)

b) da impostare su un calendario di "sabati" in verticale (col.D)

c) i dati vengono esposti nelle colonne E:H

 

Se hai altre esigenze bisogna sapere e capire se è "aggiornabile" la macro. Specifica meglio cosa hai bisogno facendo sempre riferimento ad un Calendario in forma verticale (vedi colonna D) e i Nominativi nelle colonne successive.

Ciao,

Mario

 

 
Postato : 20/11/2023 08:43
Forum 1
(@beppe)
Post: 0
New Member
Avviatore di Topic
 

Ciao Marius, scusa il ritardo... i nominativi per ora sono 4, ma potrebbero aggiungersene altri 2 o 3.

La composizione va bene, però ho notato che ha volte i nomi si ripetono in poco tempo, per esempio dal 1 gennaio al 30 giugno, sabato 24/02/24 Vittorio fa la pulizia ordinaria e sabato 02/03/24, quindi la settimana dopo, quella straordinaria. Questo succede con Gino il 06/04/24 e il 13/04/24, e Luca 01/06/24 e l'8/06/24 (logicamente i nomi sono fittizi). Poi non ho capito le funzioni delle colonne F; G; H.

Tieni presente che sono alle primissime armi con excel e alcune cose non le capisco pienamente. 

Infatti volevo copiare la formula su un'altro foglio del programma originale ma logicamente con il copia e incolla non ci sono riuscito. Puoi spiegarmi (in maniera semplice) cosa devo fare?

Grazie mille per la tua pazienza

Giuseppe

 
Postato : 22/11/2023 23:31
Condividi:
My Agile Privacy
Questo sito utilizza cookie tecnici e di profilazione. Cliccando su accetta si autorizzano tutti i cookie di profilazione. Cliccando su rifiuta o la X si rifiutano tutti i cookie di profilazione. Cliccando su personalizza è possibile selezionare quali cookie di profilazione attivare.
Attenzione: alcune funzionalità di questa pagina potrebbero essere bloccate a seguito delle tue scelte privacy
     Scarica il nostro ebook gratuito     

Unisciti a oltre 35.000 professionisti
che hanno già scelto di semplificare il proprio lavoro
e aumentare la produttività con la nostra newsletter!

Scarica l’ebook con i
migliori trucchi e suggerimenti per Excel
selezionati per te da Excel Academy

Download