Beste helpers,
Ik zit met het volgende: in een Tabel genaamd "Orderdata" heb ik informatie en de weekdagen van het jaar uiteengezet. Het idee is om hiermee een planning op te zetten. De input voor iedere regel die aan de tabel wordt toegevoegd komt vanuit een formulier. Wat ik wil is de leverdatum die ingevoerd is in het formulier, terugvinden in een positie (range) op de bovenste rij (HeaderRowRange) van de tabel. Om vervolgens shapes (rectangles) toe te kunnen voegen op regelniveau die de duur van een bepaalde bewerking symboliseren. Hun lengte wordt vervolgens gebruikt om tot een startdatum te komen. Een voorbeeld van hoe ik de shapes voor mij zie is hieronder toegevoegd. Ik weet dat het mogelijk is dit via de grafiekmodule van Excel te doen maar die module mist flexibiliteit en complexiteit die ik nodig heb.

Ik loop vast bij het vinden en toewijzen van een range aan de overeenkomende datum.
Ik heb dit geprobeerd in een array omgeving en daar ging het vrij eenvoudig. Om het gebruiksgemak te vergroten wil ik toch een Tabel gebruiken. Tijdens het stapsgewijs uitvoeren van mijn code blijf ik steeds foutcode 91: Objectvariabele of blokvariabele With is niet ingesteld krijgen. Ik heb al heel wat uren op internet gezocht naar oplossingen die de Find methode gebruiken in een Tabel omgeving maar heb tot op heden nog geen oplossing gevonden. Zelf ben ik helaas nog niet kundig genoeg om het op te lossen. Ik vraag me daardoor ook af of de Find methode wel de meest geschikte is voor mijn toepassing. Ik hoop dat ik de situatie voldoende helder heb toe kunnen lichten.
De code die ik tot dusver heb geschreven voor het invoeren van het formulier is de volgende:
Ik ben er inmiddels achter dat het vaststellen van de variabele "Datum" problemen oplevert in de code, ik krijg het alleen niet opgelost. Ik heb voor de zekerheid het bestand zelf ook toegevoegd. Ik ben benieuwd of jullie mij hierbij kunnen helpen, in ieder geval alvast bedankt!
Groeten,
Rick
Bekijk bijlage Vernieuwde planning versie 1.3_met macro.xlsm
Ik zit met het volgende: in een Tabel genaamd "Orderdata" heb ik informatie en de weekdagen van het jaar uiteengezet. Het idee is om hiermee een planning op te zetten. De input voor iedere regel die aan de tabel wordt toegevoegd komt vanuit een formulier. Wat ik wil is de leverdatum die ingevoerd is in het formulier, terugvinden in een positie (range) op de bovenste rij (HeaderRowRange) van de tabel. Om vervolgens shapes (rectangles) toe te kunnen voegen op regelniveau die de duur van een bepaalde bewerking symboliseren. Hun lengte wordt vervolgens gebruikt om tot een startdatum te komen. Een voorbeeld van hoe ik de shapes voor mij zie is hieronder toegevoegd. Ik weet dat het mogelijk is dit via de grafiekmodule van Excel te doen maar die module mist flexibiliteit en complexiteit die ik nodig heb.

Ik loop vast bij het vinden en toewijzen van een range aan de overeenkomende datum.
Ik heb dit geprobeerd in een array omgeving en daar ging het vrij eenvoudig. Om het gebruiksgemak te vergroten wil ik toch een Tabel gebruiken. Tijdens het stapsgewijs uitvoeren van mijn code blijf ik steeds foutcode 91: Objectvariabele of blokvariabele With is niet ingesteld krijgen. Ik heb al heel wat uren op internet gezocht naar oplossingen die de Find methode gebruiken in een Tabel omgeving maar heb tot op heden nog geen oplossing gevonden. Zelf ben ik helaas nog niet kundig genoeg om het op te lossen. Ik vraag me daardoor ook af of de Find methode wel de meest geschikte is voor mijn toepassing. Ik hoop dat ik de situatie voldoende helder heb toe kunnen lichten.
De code die ik tot dusver heb geschreven voor het invoeren van het formulier is de volgende:
Code:
Sub CommandButton1_Click()
'Verwerken van eerste 4 tekstvakken + datum
Dim PlanningSheet As Worksheet
Dim Orderdata As ListObject
Dim TabelregelOD As ListRow
Set PlanningSheet = Sheets("Planning")
Set Orderdata = PlanningSheet.ListObjects("Orderdata")
Set TabelregelOD = Orderdata.ListRows.Add
TabelregelOD.range(1, 1).Value = Me.TextBox1.Value
TabelregelOD.range(1, 2).Value = Me.TextBox2.Value
TabelregelOD.range(1, 3).Value = Me.TextBox3.Value
TabelregelOD.range(1, 4).Value = Me.TextBox4.Value
TabelregelOD.range(1, 5).Value = Me.DTPicker1.Value
'Verwerken van datum naar een positie op de tabel
Dim Jaarlengte As range
Dim Datum As range
Set Jaarlengte = Orderdata.HeaderRowRange
Set Datum = Jaarlengte.Find(What:=DTPicker1.Value, MatchCase:=True, LookAt:=xlWhole)
'Hier onstaat de foutmelding
Dim LeverDatum As Shape
Set LeverDatum = Datum.AddShape(msoShapeRectangle, Datum.Left, Datum.Top, Datum.Width, Datum.Height)
LeverDatum.Fill.ForeColor.RGB = rgbHotPink
End Sub
Ik ben er inmiddels achter dat het vaststellen van de variabele "Datum" problemen oplevert in de code, ik krijg het alleen niet opgelost. Ik heb voor de zekerheid het bestand zelf ook toegevoegd. Ik ben benieuwd of jullie mij hierbij kunnen helpen, in ieder geval alvast bedankt!
Groeten,
Rick
Bekijk bijlage Vernieuwde planning versie 1.3_met macro.xlsm