• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Planning koppen aan projecten

Status
Niet open voor verdere reacties.

Springer038

Gebruiker
Lid geworden
20 aug 2019
Berichten
38
Goedemiddag,

Ik heb twee werkbladen gemaakt. één met de planning met de monteurs er in en één werkblad met alle projecten.
Nu wil ik graag de projecten koppelen aan monteurs. Bijvoorbeeld dat ik een dropdown lijst krijg in FJ4 met de projecten die in week 34 Kolom H staan in het werkblad projecten. Kan dit?
Is het mogelijk dat dan ook de progressie daalt in kolom C van werkblad projecten?

Groeten,

Steven.
 

Bijlagen

  • Jaarplanning proberen.xlsx
    72,3 KB · Weergaven: 57
Is m.i. te ingewikkeld om met formules op te lossen.
Zet deze code in de module van het werkblad Jaarplanning
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim Cl As Range, Rng As Range
    Dim Br, Sh
    
    Set Sh = Sheets("Projecten")
    If Target.Column > 165 And Target.Row > 3 And Target.Row < 45 And Target.Row Mod 2 = 0 And Target.Count = 1 Then
        Set Cl = Sh.Range("H7:BZ7").Find(Format(Application.WeekNum(Target.Offset(2 - Target.Row)), "00") & "-" & _
            Year(Target.Offset(2 - Target.Row)), LookAt:=xlWhole)
        If Not Cl Is Nothing Then
            Set Rng = Cl.Offset(1).Resize(Application.CountA(Sh.Columns(7)) - 1)
            Br = Filter(Evaluate("transpose(if(" & Sh.Name & "!" & Rng.Address & "="""",""@""," _
                & Sh.Name & "!" & Rng.Offset(, 7 - Cl.Column).Address & "))"), "@", False)
            Target.Validation.Delete
            Target.Validation.Add xlValidateList, , , Join(Br, ",")
        End If
    End If
End Sub
En wat betekent "de progressie daalt"?
 
Laatst bewerkt:
Top. Dit werkte perfect! Wanneer ik dit voor het hele jaar wil i.p.v. die twee weken. Welke parameters moet ik dan in VBA aanpassen?

Progressie is een ander woord voor voortgang.
In Kolom B(werkblad Projecten) staan de hoeveelheid mannen die nodig zijn voor een project.( dit is een optelling vanuit Kolom H t/m AI van elke project)
Wat mijn idee was als een man wordt gepland in werkblad Jaarplanning dat er dan een optelling in Kolom C is en een aftelling in kolom H t/m AI.
Kan dat?
 
Laatst bewerkt:
De code werkt vanaf week 34. Als je in tabblad Jaarplanning de kolommen van week 36 en later zichtbaar maakt werkt de code daar ook. De code werkt pas vanaf kolom FJ (#166). Dat kun je wel aanpassen naar bijvoorbeeld 2 (week1)
Code:
 ...If Target.Column > [COLOR="#FF0000"]165[/COLOR] And Target.Row > 3 And Target.Row < 45 And Target.Row Mod 2 = 0 And Target.Count = 1 Then...
maar in tabblad Projecten H7 begint de telling ook pas bij week 34.
Een optelling in kolom C van tabblad Projecten is makkelijk (in C8)
Code:
=AANTAL.ALS(Jaarplanning!$B$4:$XFD$44;Projecten!G8)
Een aftelling in kolom H t/m AI kan eigenlijk niet omdat je in die cellen hard invoert wat je aan mandagen inzet.
 
Laatst bewerkt:
Top dit werkt ook.
Ik zie nu wel dat in sommige gevallen er geen dropdown menu verschijnt.
In Rij 17 bijvoorbeeld kolom FJ in werkblad Jaarplanning. Daar kan ik geen project kiezen.
Hoe kan het zijn dat hij soms cellen over slaat?
 

Bijlagen

  • VBA Jaarplanning proberen.xlsm
    82,5 KB · Weergaven: 42
Dat zit 'm in deze voorwaarde
Code:
 ...If Target.Column > 165 And Target.Row > 3 And Target.Row < 45 [COLOR="#FF0000"]And Target.Row Mod 2 = 0[/COLOR] And Target.Count = 1 Then...
De macro werkt alleen op de even rijen. Dat leek me logisch omdat daar de monteurs staan maar als de rijen met "Werkdag" ook validatie moeten krijgen kun je de rood gemarkeerde voorwaarde eenvoudig verwijderen.
 
nieuwe situatie

Goedemiddag,

Op één of andere manier krijg ik het niet voor elkaar om de code aan te passen naar de nieuwe situatie.
Wat doe ik fout?
 

Bijlagen

  • VBA Jaarplanning proberenV3.xlsm
    64,8 KB · Weergaven: 34
In je macro staat o.a.
Code:
Set Cl = Sh.Range("G3:BF3").Find(Format(Application.WeekNum(Target.Offset(3 - Target.Row)), "00") & "-" & _
            Year(Target.Offset(3 - Target.Row)), LookAt:=xlWhole)

Wat verwacht je daar als resultaat?
 
Goedemorgen Haije,

Dit heeft Timshel geprogrammeerd. Ik weet zelf niet wat het exact doet.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan