Help!

Problemen met uw pc? De vrijwilligers van Oplossing.be zoeken gratis met u mee! 8)

Meer weten over Oplossing.be?

Hoe stel ik een vraag?

Hulp bij posten

Recent

Auteur Topic: Weekplanning omzetten naar dagplanning  (gelezen 4207 keer)

0 leden en 1 gast bekijken dit topic.

Offline Georgyboy

  • Lid
  • *
  • Berichten: 28
  • Geslacht: Man
  • Oplossing.be
Weekplanning omzetten naar dagplanning
« Gepost op: 06 april 2019, 09:22:00 »
Goedemorgen

Graag zou ik wat hulp vragen indien mogelijk (ben altijd geholpen geweest waarvoor dank  :thumbsup:)

We maken op donderdag een wekplanning voor 5 afdelingen (in bijlage 1 afdeling)
per dag word de planning de dag voordien herzien en aangepast (dit kan verschillen wegens late bestellingen, ziekte personeel, machine defect, …)

In bijlage een simpel voorbeeld met een macrootje die in de week lijst de selectie maakt (zonder pauze en lege cellen) en nu enkel naar maandag kopieert.
ben ervan overtuigd dat dit véél beter kan, maar het vis een begin

Alvast bedankt

Groeten,
Georgyboy

Offline Dotchiejack

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 315
  • Geslacht: Man
  • Oplossing.be
Re: Weekplanning omzetten naar dagplanning
« Reactie #1 Gepost op: 06 april 2019, 11:15:41 »
Hoi Georgyboy,
Alles goed in Veurne?
Volgende code onder de knoppen van de  respectievelijke knoppen in je dag tabbladen.

Maandag
Sub Maandag()
Range("B4:B28").ClearContents
sRij = 4
For Each c In Sheets("Weekplanning").Range("B4:B28").SpecialCells(xlCellTypeVisible)
    If Len(c) <> 0 And c <> "Pauze" Then
    Cells(sRij, "B").Value = c.Value
        sRij = sRij + 1
    End If
Next
End Sub

Dinsdag
Sub Dinsdag()
Range("B4:B28").ClearContents
sRij = 4
For Each c In Sheets("Weekplanning").Range("C4:C28").SpecialCells(xlCellTypeVisible)
    If Len(c) <> 0 And c <> "Pauze" Then
        Cells(sRij, "B").Value = c.Value
        sRij = sRij + 1
    End If
Next
End Sub

Woensdag
Sub Woensdag()
Range("B4:B28").ClearContents
sRij = 4
For Each c In Sheets("Weekplanning").Range("D4:D28").SpecialCells(xlCellTypeVisible)
    If Len(c) <> 0 And c <> "Pauze" Then
        Cells(sRij, "B").Value = c.Value
        sRij = sRij + 1
    End If
Next
End Sub

Donderdag
Sub Donderdag()
Range("B4:B28").ClearContents
sRij = 4
For Each c In Sheets("Weekplanning").Range("E4:E28").SpecialCells(xlCellTypeVisible)
    If Len(c) <> 0 And c <> "Pauze" Then
        Cells(sRij, "B").Value = c.Value
        sRij = sRij + 1
    End If
Next
End Sub

Vrijdag
Sub Vrijdag()
Range("B4:B28").ClearContents
sRij = 4
For Each c In Sheets("Weekplanning").Range("F4:F28").SpecialCells(xlCellTypeVisible)
    If Len(c) <> 0 And c <> "Pauze" Then
        Cells(sRij, "B").Value = c.Value
        sRij = sRij + 1
    End If
Next
End Sub

And c <> "Pauze"is niet nodig indien de pauze rijen in je echte bestand  ook daadwerkelijk verborgen zijn.
« Laatst bewerkt op: 06 april 2019, 11:21:03 door Dotchiejack »
Groet, Philiep

Facebook is als gearresteerd worden: alles wat je zegt kan en zal tegen je gebruikt worden...
Soms merken mensen de dingen die we voor hen doen niet op, tot we er mee stoppen.

Offline Georgyboy

  • Lid
  • *
  • Berichten: 28
  • Geslacht: Man
  • Oplossing.be
Re: Weekplanning omzetten naar dagplanning
« Reactie #2 Gepost op: 06 april 2019, 12:29:57 »
Hartelijk dank Philiep  :thumbsup:

Alles hier goed :)

Ga het uit proberen en testen, alvast een héél mooie aanzet van je :)  :thumbsup:

Groeten,
Georges

Offline Dotchiejack

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 315
  • Geslacht: Man
  • Oplossing.be
Re: Weekplanning omzetten naar dagplanning
« Reactie #3 Gepost op: 06 april 2019, 12:36:41 »
Citaat
Ga het uit proberen en testen
Hou ons op de hoogte.
Dank voor de terugkoppeling. :thumbsup:
Groet, Philiep

Facebook is als gearresteerd worden: alles wat je zegt kan en zal tegen je gebruikt worden...
Soms merken mensen de dingen die we voor hen doen niet op, tot we er mee stoppen.

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 1.830
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Weekplanning omzetten naar dagplanning
« Reactie #4 Gepost op: 06 april 2019, 20:37:39 »
Range("B4:B28").ClearContentsklopt het dat in elke "dag-procedure" dezelfde range wordt gewist? Of had die ook kolm C, D enz moeten volgen? Ik heb overigens de bijlage verder niet bekeken,  maar dit viel me op.  ;)
______________________________

Groet, Leo

Offline Dotchiejack

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 315
  • Geslacht: Man
  • Oplossing.be
Re: Weekplanning omzetten naar dagplanning
« Reactie #5 Gepost op: 06 april 2019, 21:48:36 »
@ Redhead,
Het klopt want de dag tabbladen zijn identiek.
Groet, Philiep

Facebook is als gearresteerd worden: alles wat je zegt kan en zal tegen je gebruikt worden...
Soms merken mensen de dingen die we voor hen doen niet op, tot we er mee stoppen.

Offline Georgyboy

  • Lid
  • *
  • Berichten: 28
  • Geslacht: Man
  • Oplossing.be
Re: Weekplanning omzetten naar dagplanning
« Reactie #6 Gepost op: 06 april 2019, 21:51:37 »
Dag RedHead

Bedankt om mee te denken (helpen)

O had ik ook niet gezien en denk dat Dotchiejack dit zeker goed bedoelde,
Ging dit morgen verder uit testen , had misschien beter andere namen gebruikt ipv telkens taak 1, 2, 3, .... te gebruiken.

Iedere weekplanning is verschillend, van week tot week,
Dit is afhankelijk van de tijd van een taak en het aantal personen die de taak samen uitvoeren.

Iedere dag is dan ook verschillend

Beide hartelijk dank dat ik van jullie veel mag leren :)

Groeten,
Georgyboy

Offline Georgyboy

  • Lid
  • *
  • Berichten: 28
  • Geslacht: Man
  • Oplossing.be
Re: Weekplanning omzetten naar dagplanning
« Reactie #7 Gepost op: 07 april 2019, 09:22:59 »
Goedemorgen,

Het werkt hoor Philiep !  :thumbsup:

Kunnen we ook 1 knop maken die alle weekdagen invult ?

Vraagjes, wat is (rood gekleurd) (indien mogelijk)

Sub Maandag()
Range("B4:B28").ClearContents
sRij = 4
For Each c In Sheets("Weekplanning").Range("B4:B28").SpecialCells(xlCellTypeVisible)
    If Len(c) <> 0 And c <> "Pauze" Then
    Cells(sRij, "B").Value = c.Value
        sRij = sRij + 1
    End If
Next
End Sub



Offline Dotchiejack

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 315
  • Geslacht: Man
  • Oplossing.be
Re: Weekplanning omzetten naar dagplanning
« Reactie #8 Gepost op: 07 april 2019, 19:34:29 »
sRij4 is mijn heel originele afkorting van startrij 4  ;), te beginnen vanaf rij 4 omdat je wilt beginnen onder B3 (taak), vierde rij dus . Je kan dat iedere naam geven, maakt niets uit, buiten het gebruik van Row, wordt afgeraden omdat het een term is dat Excel gebruikt.
c staat voor cell, maar wederom Excel gebruikt de term cell en is dus af te raden.
Om je helemaal in de war te brengen, Len staat voor lengte en Len wordt gebruikt door Excel maar dit keer hebben we die nodig.
Vrij vertaald is het  "Als de cel niet leeg is dan".
pfff, nooit goed geweest met uitleggen. :-[
Voor.
Citaat
Kunnen we ook 1 knop maken die alle weekdagen invult ?
Met 1knop in het tabblad Weekplanning. !!! belangrijk!!!! met andere woorden het tabblad Weekplanning moet het actieve tabblad zijn als je de macro laat lopen.
Sub Weekplanning1()
For Each Ws In ThisWorkbook.Sheets
        If Ws.Name <> "Weekplanning" Then
        Ws.Range("B4:B28").ClearContents
        End If
    Next Ws
sRij1 = 4
sRij2 = 4
sRij3 = 4
sRij4 = 4
sRij5 = 4
For Each c In Range("B4:B28").SpecialCells(xlCellTypeVisible)
    If Len(c) <> 0 And c <> "Pauze" Then
        Sheets("Maandag").Cells(sRij1, "B").Value = c.Value
        sRij1 = sRij1 + 1
    End If
    If Len(c.Offset(, 1)) <> 0 And c.Offset(, 1) <> "Pauze" Then
        Sheets("Dinsdag").Cells(sRij2, "B").Value = c.Offset(, 1).Value
        sRij2 = sRij2 + 1
    End If
    If Len(c.Offset(, 2)) <> 0 And c.Offset(, 2) <> "Pauze" Then
        Sheets("Woensdag").Cells(sRij3, "B").Value = c.Offset(, 2).Value
        sRij3 = sRij3 + 1
    End If
    If Len(c.Offset(, 3)) <> 0 And c.Offset(, 3) <> "Pauze" Then
        Sheets("Donderdag").Cells(sRij4, "B").Value = c.Offset(, 3).Value
        sRij4 = sRij4 + 1
    End If
    If Len(c.Offset(, 4)) <> 0 And c.Offset(, 4) <> "Pauze" Then
        Sheets("Vrijdag").Cells(sRij5, "B").Value = c.Offset(, 4).Value
        sRij5 = sRij5 + 1
    End If
Next
End Sub

Groet, Philiep

Facebook is als gearresteerd worden: alles wat je zegt kan en zal tegen je gebruikt worden...
Soms merken mensen de dingen die we voor hen doen niet op, tot we er mee stoppen.

Offline Georgyboy

  • Lid
  • *
  • Berichten: 28
  • Geslacht: Man
  • Oplossing.be
Re: Weekplanning omzetten naar dagplanning
« Reactie #9 Gepost op: 07 april 2019, 20:47:02 »
Hartelijk dank Philiep
Voor je kennis
Tijd
Antwoorden

Hopelijk hebben meerdere leden er iets aan
Ik ben alvast ferm geholpen 🤗👍👍

Offline Dotchiejack

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 315
  • Geslacht: Man
  • Oplossing.be
Re: Weekplanning omzetten naar dagplanning
« Reactie #10 Gepost op: 07 april 2019, 21:50:19 »
Graag gedaan, tot de volgende. :thumbsup:
Groet, Philiep

Facebook is als gearresteerd worden: alles wat je zegt kan en zal tegen je gebruikt worden...
Soms merken mensen de dingen die we voor hen doen niet op, tot we er mee stoppen.

Offline emields

  • Lid
  • *
  • Berichten: 74
  • Geslacht: Man
  • Oplossing.be
Re: Weekplanning omzetten naar dagplanning
« Reactie #11 Gepost op: 07 april 2019, 23:59:40 »
of zo, mag je de knop op gelijk welk blad plaatsen.

Offline Dotchiejack

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 315
  • Geslacht: Man
  • Oplossing.be
Re: Weekplanning omzetten naar dagplanning
« Reactie #12 Gepost op: 08 april 2019, 08:03:39 »
Citaat
of zo, mag je de knop op gelijk welk blad plaatsen.
Als het dat maar is. 8)
Sub Weekplanning2()
sRij = [{"Maandag",4;"Dinsdag",4;"Woensdag",4;"Donderdag",4;"Vrijdag",4}]
For i = 1 To UBound(sRij)
  Sheets(sRij(i, 1)).Range("B4:B28").ClearContents
Next i
For Each c In Sheets("Weekplanning").Range("B4:F28").SpecialCells(xlCellTypeVisible)
  colm = c.Column - 1
  If Len(c) <> 0 And c <> "Pauze" Then
    Sheets(sRij(colm, 1)).Cells(sRij(colm, 2), "B").Value = c.Value
    sRij(colm, 2) = sRij(colm, 2) + 1
  End If
Next
End Sub
@ Emiels, waarom heb je de kolommen hoeveel en timing toegevoegd, TS heeft dat toch helemaal niet gevraagd.
Groet, Philiep

Facebook is als gearresteerd worden: alles wat je zegt kan en zal tegen je gebruikt worden...
Soms merken mensen de dingen die we voor hen doen niet op, tot we er mee stoppen.

 


www.combell.com