Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: geautomatiseerd sjabloon voor budget  (gelezen 58252 keer)

0 leden en 1 gast bekijken dit topic.

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.031
  • Geslacht: Vrouw
  • veni vidi vici
Re: geautomatiseerd sjabloon voor budget
« Reactie #135 Gepost op: 20 augustus 2023, 19:06:15 »
***UPDATE***

Bij deze mijn nieuwe versie 1.1 :

1) het frame mbt de TA-gegevens werd aangevuld met de nodige controls (waaronder een listbox voor de gekozen datums)
2) de klasse-module werd gecodeerd voor de multiselect-event van de datums met extra code om één of meerdere datums opnieuw te deselecteren.
Het enige wat hier nog toegevoegd moet worden is extra code om de gedeselecteerde datum(s) ook uit de listbox te verwijderen
(dit lukt me niet wegens te weinig kennis mbt listboxen)

groetjes,
Bieke
1) HP ProDesk (Windows 10 Pro Edu / Intel(R) Core(TM) i5-7500 CPU@ 3.40Ghz 3.41Ghz)
2) Laptop ASUS (Windows 10 Home / Intel(R) Core(TM) i3-3110M CPU@ 2.40GHz 2.40GHz)
Beide (RAM : 8,00 GB / 64-bits besturingssysteem, x64-processor)
Extern (Seagate Backup+ Hub 6TB / Seagate BUP Slim 2TB / Seagate Expansion Desk 5TB / HP ENVY 6030e)
Bullguard Premium Protection / Office Pro Plus 2016 NL

Offline MollyVH

  • Excel-Expert
  • Oplosser
  • *****
  • Berichten: 847
Re: geautomatiseerd sjabloon voor budget
« Reactie #136 Gepost op: 20 augustus 2023, 22:41:30 »
Hey Bieke,

Vanaf morgen start nog eens een zware werkweek, dus nu nog vlug-vlug gekeken naar je vorderingen.
Ik begin wel een beetje te vrezen dat je mijn opmerkingen niet lang meer op prijs zal stellen, maar er moet toch nog eentje bij: je hebt alle labels in je verzameling opgenomen, waardoor je fouten gaat krijgen als je per ongeluk net naast een label klikt.
Beter zou zijn om die verzameling niet op te bouwen bij de initialistie van het UF, maar wel in ComboBox1_Change, en dan nadat alle te gebruiken labels hun caption hebben gekregen (die kan je dan namelijk als selectiecriterium gebruiken.
Al zou je dat ook nog in de klassemodule kunnen opvangen. Aan jou de keuze dus.

Hier ook meteen de gevraagde aanpassing om items uit de listbox te verwijderen:
With UserForm2
  Dim jaar As Long, mnd As Long, dag As Long, datum As Variant, it As Variant, i As Integer
  jaar = .ComboBox1.Value
  mnd = Mid(lbl.Name, 6, InStr(5, lbl.Name, "_") - 6)
  dag = lbl.Caption
  datum = Format(DateSerial(jaar, mnd, dag), "dd-mm-yyyy")
  With .ListBox1
    If lbl.BackColor = &H8000000F Then 'code voor nieuwe selectie
      lbl.BackColor = RGB(51, 204, 204)
      .AddItem datum
    Else
      lbl.BackColor = &H8000000F  'code voor deselectie (indien foutief geselecteerd)
      For i = .ListCount - 1 To 0 Step -1
        If .List(i) = datum Then .RemoveItem i
      Next i
    End If
  End With
End With

Groetjes,
Molly
Windows 11 Home NLD 64bit
11th Gen Intel(R) Core(TM) i7-11700 @ 2.50GHz 2496
Aspire TC-1660
Intel(R) UHD Graphics 750 1024MB
476 GB SSD KINGSTON OM8PCP3512F-AA
1863 GB HD Seagate ST2000DM008-2FR102
Office 2021 Professional Plus NLD 64bit

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.031
  • Geslacht: Vrouw
  • veni vidi vici
Re: geautomatiseerd sjabloon voor budget
« Reactie #137 Gepost op: 21 augustus 2023, 13:39:57 »
Hey Molly,

Bedankt voor je aanvulling mbt het verwijderen van een item uit de listbox  :thumbsup:

Ik begin wel een beetje te vrezen dat je mijn opmerkingen niet lang meer op prijs zal stellen, maar er moet toch nog eentje bij: je hebt alle labels in je verzameling opgenomen, waardoor je fouten gaat krijgen als je per ongeluk net naast een label klikt.
Beter zou zijn om die verzameling niet op te bouwen bij de initialistie van het UF, maar wel in ComboBox1_Change, en dan nadat alle te gebruiken labels hun caption hebben gekregen (die kan je dan namelijk als selectiecriterium gebruiken.
Dat moest ik inderdaad nog aanpassen...
Omdat ik niet exact meer wist hoe ik een klasse-module moest opbouwen was ik nog eens gaan kijken naar mijn borduur-bestand, vandaar dat ik voorlopig de opbouw van die
verzameling in de initialize had gezet, gewoon om te testen of de code in de klasse-module correct werkte. Het was sowieso de bedoeling om uiteindelijk deze opbouw-codeblok
in de combobox-change te plaatsen. Ondertussen heb ik dat dan ook gedaan. ;)

Bij het verder coderen van de UF heb ik dan ook nog 2 extra commandbuttons geplaatst en gecodeerd.
Momenteel ben ik bezig met de afwerking van de UF inzake bugjes en schoonheidsfoutjes en er is één aspect dat ik nog zou willen aanpassen
inzake de listbox maar ik kom er niet goed uit hoe ik dat binnen de code moet gaan doen.
De bedoeling dat de listbox zo breed werd gemaakt was om de datums vanaf een bepaald aantal in een tweede kolom te verkrijgen zodat er nooit scrollbars zouden verschijnen.
In de eigenschappen van de listbox had ik dit reeds voorzien door de 'boundcolumn' en 'columncount' op "2" en de 'columnwidths' op "75pt;75pt" te zetten.
Maar ik weet dus niet hoe ik dan het codeblok met de " listbox additem " moet aanpassen om ervoor te zorgen dat hij na 8 datums moet overschakelen naar de tweede kolom.

Dus als iemand zich geroepen voelt om mij hiermee op weg te helpen zou ik dat ten zeerste appreciëren  :thumbsup:

groetjes,
Bieke
1) HP ProDesk (Windows 10 Pro Edu / Intel(R) Core(TM) i5-7500 CPU@ 3.40Ghz 3.41Ghz)
2) Laptop ASUS (Windows 10 Home / Intel(R) Core(TM) i3-3110M CPU@ 2.40GHz 2.40GHz)
Beide (RAM : 8,00 GB / 64-bits besturingssysteem, x64-processor)
Extern (Seagate Backup+ Hub 6TB / Seagate BUP Slim 2TB / Seagate Expansion Desk 5TB / HP ENVY 6030e)
Bullguard Premium Protection / Office Pro Plus 2016 NL

Offline MollyVH

  • Excel-Expert
  • Oplosser
  • *****
  • Berichten: 847
Re: geautomatiseerd sjabloon voor budget
« Reactie #138 Gepost op: 22 augustus 2023, 08:47:09 »
Hey Bieke,

Even vlug ertussen...
Een listbox gebruiken voor iets waar hij totaal niet voor bedoeld is, waarom ook niet (ik zou dat ook durven), maar toch enkel als er geen beter alternatief bestaat.
Zolang je alleen maar datums toevoegt zou dat nog redelijk vlot gaan, maar zodra de tweede kolom ook in gebruik is én je een datum wil verwijderen kom je met RemoveItem in de problemen. Een listbox met meerdere kolommen kan je vergelijken met een tabel waarin je enkel een volledige rij kan verwijderen, dus in jouw geval zou item 10 samen met item 2 verdwijnen. Een oplossing zou kunnen zijn om een datum te vervangen door een lege string, maar of dat nu ideaal is...

Ik zou meerdere alternatieven kunnen bedenken maar de meest logische lijkt mij een arraylist om de datums in te stockeren; de listbox kan dan nog altijd continu bijgewerkt worden als visuele aanvulling.

Groetjes,
Molly
Windows 11 Home NLD 64bit
11th Gen Intel(R) Core(TM) i7-11700 @ 2.50GHz 2496
Aspire TC-1660
Intel(R) UHD Graphics 750 1024MB
476 GB SSD KINGSTON OM8PCP3512F-AA
1863 GB HD Seagate ST2000DM008-2FR102
Office 2021 Professional Plus NLD 64bit

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.031
  • Geslacht: Vrouw
  • veni vidi vici
Re: geautomatiseerd sjabloon voor budget
« Reactie #139 Gepost op: 22 augustus 2023, 11:08:42 »
Hey Molly,

Bedankt voor jouw reactie.

Ja, uiteindelijk heb ik die listbox enkel en alleen maar toegevoegd voor enerzijds een 'visuele' controle maar anderzijds
meer nog eigenlijk omdat ik op die manier mijn formulier "voller" kreeg wat dus uiteindelijk ook enkel maar voor het
 'visuele' effect was.
Zonder dat 'visuele' aspect zou ik de datums sowieso in een array gestoken hebben (heb daar meer ervaring mee dan
met listbox  ;D ) dus ik zal dat eventjes in de code aanpassen dat ze in een array gestopt worden en dat dan de listbox
gewoon wordt bijgewerkt na elke wijziging in de array  :thumbsup:

groetjes,
Bieke
1) HP ProDesk (Windows 10 Pro Edu / Intel(R) Core(TM) i5-7500 CPU@ 3.40Ghz 3.41Ghz)
2) Laptop ASUS (Windows 10 Home / Intel(R) Core(TM) i3-3110M CPU@ 2.40GHz 2.40GHz)
Beide (RAM : 8,00 GB / 64-bits besturingssysteem, x64-processor)
Extern (Seagate Backup+ Hub 6TB / Seagate BUP Slim 2TB / Seagate Expansion Desk 5TB / HP ENVY 6030e)
Bullguard Premium Protection / Office Pro Plus 2016 NL

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.031
  • Geslacht: Vrouw
  • veni vidi vici
Re: geautomatiseerd sjabloon voor budget
« Reactie #140 Gepost op: 22 augustus 2023, 15:57:41 »
***UPDATE***

Ondertussen succesvol het gewenste verkregen waarbij de weergave in de lisbox netjes in 2 kolommen gebeurd ingeval meer dan 8 datums aanweizg zijn  :thumbsup:.

Ik heb het misschein wat 'omslachtig' aangepakt maar heb het zo gedaan om het simpel te houden voor mijn beperkte kennis  ;D .

In eerste instantie heb ik de datums in een 'collection' geplaatst omdat dit voor mij de makkelijkst te coderen wijze was om enerzijds datums toe te voegen en te verwijderen en anderzijds ook in de code achter de commandbuttons de gegevens per datum makkelijker te kunnen wegschrijven naar de diverse werkbladen.

Dan voor puur het visuele effect op de UF heb ik via een for... next loop vanuit de collection een 2D-array aangemaakt welke ik dan vlotjes kon toewijzen aan de listbox.

groetjes,
Bieke
1) HP ProDesk (Windows 10 Pro Edu / Intel(R) Core(TM) i5-7500 CPU@ 3.40Ghz 3.41Ghz)
2) Laptop ASUS (Windows 10 Home / Intel(R) Core(TM) i3-3110M CPU@ 2.40GHz 2.40GHz)
Beide (RAM : 8,00 GB / 64-bits besturingssysteem, x64-processor)
Extern (Seagate Backup+ Hub 6TB / Seagate BUP Slim 2TB / Seagate Expansion Desk 5TB / HP ENVY 6030e)
Bullguard Premium Protection / Office Pro Plus 2016 NL

Offline Montagnard

  • Ambassadeur
  • *****
  • Berichten: 2.384
  • Geslacht: Man
Re: geautomatiseerd sjabloon voor budget
« Reactie #141 Gepost op: 22 augustus 2023, 16:13:44 »
Hey Bieke , ik volg hier alles goed op maar ik moet zeggen sry , mijn kennis is absoluut onvoldoende om U te kunnen helpen...
ik zei wél uit naar het bruikbaar resultaat !
Mvg,
Arnold.

Offline MollyVH

  • Excel-Expert
  • Oplosser
  • *****
  • Berichten: 847
Re: geautomatiseerd sjabloon voor budget
« Reactie #142 Gepost op: 22 augustus 2023, 17:46:17 »
Hey Bieke,

Dat klinkt alvast in orde. Of het ook eenvoudiger kan wil ik gerust bij gelegenheid nog eens bekijken. Niet dat er haast bij is om nog eens je werk te tonen, hé, ik heb even een korte pauze ingelast om het forum vlug te bekijken (remember "morgen start nog eens een zware werkweek" :'()

Groetjes,
Molly
Windows 11 Home NLD 64bit
11th Gen Intel(R) Core(TM) i7-11700 @ 2.50GHz 2496
Aspire TC-1660
Intel(R) UHD Graphics 750 1024MB
476 GB SSD KINGSTON OM8PCP3512F-AA
1863 GB HD Seagate ST2000DM008-2FR102
Office 2021 Professional Plus NLD 64bit

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.031
  • Geslacht: Vrouw
  • veni vidi vici
Re: geautomatiseerd sjabloon voor budget
« Reactie #143 Gepost op: 23 augustus 2023, 17:31:26 »
@Molly en Arnold,

Bedankt voor jullie reacties :thumbsup:.
Bij deze nog eens een update’je  ;).

**UPDATE**

Zoals in een eerder bericht aangetoond was het eerste deel “gekende TA’s invoeren” succesvol afgewerkt.

Ik ben dus aan het volgende deel “betalingen uitvoeren” begonnen.
Ik heb hiervoor een tweede UF ontworpen.
Op dit UF heb ik enerzijds een Miltipage aangemaakt met 12 pagina’s (1 per maand) waarvan de controls pas aangemaakt worden bij de initialize (aangezien elke pagina ca 50 controls heeft),
deze Miltipage is louter een visueel hulpmiddel en wordt dus beperkt gebruikt in de verwerkingscode en anderzijds dan een frame voor de transactie zelf.
In dit frame heb ik 2 optionbuttons ‘gekend’ en ‘anders’ waarvan de selectie als voorwaarde gebruikt zal worden voor het gedrag van de andere controls.
Zo heb ik een combobox (selecteer afzender/begunstigde) die enkel gevuld moet worden indien ‘gekend’ is geselecteerd (met waarden volgens bepaalde voorwaarde)
en in dit geval zal de textbox (voer afzender/begunstigde in) disabled worden.
De andere controls worden dan automatisch ingevuld volgens de andere gegevens op dezelfde rij als de gemaakte keuze in de combobox.
Wanneer ‘anders’ wordt geselecteerd zal de combobox disabled worden en de textbox enabled.

Nu heb ik 3 aspecten (2 voor de initialize en 1 voor de optionbutton-event) waarmee ik een beetje in de knoop kom te zitten inzake het coderen.
In grote lijnen weet ik wel hoe ik elk aspect afzonderlijk moet coderen maar door de combinatie ervan weet ik niet goed wat, waar en/of met welke structuur.

Kort samengevat :
In eerste instantie worden bij de initialize alle controls aangemaakt en gevuld per pagina (deze code is reeds volledig in orde) :thumbsup:.
Dan heb ik volgende twee aspecten nog toe te voegen aan de initialize :
1 pagina van de huidige maand dient standaard getoond te worden.
2 pagina’s waarbij alle ingevulde textboxen de achtergrondkleur cyaan (tint) hebben dient disabled te zijn

En tenslotte moet het volgende gebeuren bij de optionbutton_click :
indien optionbutton “gekend” wordt geselecteerd dient de combobox gevuld te worden met de waarden uit de derde kolom van werkblad “TA-todo” voor zover
de bijhorende datums (kolom 1) in de maand van de geselecteerde pagina vallen.

Als iemand mij wat op weg wil/kan helpen zou ik dat ten zeerste appreciëren  _/-\o_ :thumbsup:

In bijlage dan nog eens een recent bestandje (versie 1.2b).
Het betreffende UF opent via de werkblad-knop “betalingen uitvoeren” op het werkblad “DASHBOARD”.

Groetjes,
Bieke

***EDIT*** de waarden waarmee de combobox gevuld dient te worden staan niet in kolom 3 maar wél in kolom 4... excuses voor de verstrooidheid  :-[
1) HP ProDesk (Windows 10 Pro Edu / Intel(R) Core(TM) i5-7500 CPU@ 3.40Ghz 3.41Ghz)
2) Laptop ASUS (Windows 10 Home / Intel(R) Core(TM) i3-3110M CPU@ 2.40GHz 2.40GHz)
Beide (RAM : 8,00 GB / 64-bits besturingssysteem, x64-processor)
Extern (Seagate Backup+ Hub 6TB / Seagate BUP Slim 2TB / Seagate Expansion Desk 5TB / HP ENVY 6030e)
Bullguard Premium Protection / Office Pro Plus 2016 NL

Offline MollyVH

  • Excel-Expert
  • Oplosser
  • *****
  • Berichten: 847
Re: geautomatiseerd sjabloon voor budget
« Reactie #144 Gepost op: 23 augustus 2023, 18:40:47 »
Hey Bieke,

Ik vond dat het moest kunnen om nog eens 10 minuten pauze in te lassen...
Zoals beloofd eerst even je laatste toevoegsels bekeken, vooral die extra 'collection' dus, en veel beter of korter kan het nauwelijks. Ik had je vorige keer daarover geen array maar een arraylist aangeraden waarmee je makkelijk de datums in de listbox chronologisch had kunnen weergeven, maar 't is maar een detail.
Aan jou om te bekijken of daar enig nut aan vastzit ;)

Binnen het tijdsbestek van mijn pauze lukt ook al de oplossing van je eerste punt. Zet bv. meteen onder "With .MultiPage1" één lijntje:
.Value = Month(Date) - 1
Voor punt 2 hangt het ervan af: moet er gekeken worden naar de (momenteel) 6 textboxen of naar de (ook momenteel :D) 1 of 2 geactiveerde?
Ik gok op het tweede, maar wacht toch liever op bevestiging :)

Groetjes,
Molly
Windows 11 Home NLD 64bit
11th Gen Intel(R) Core(TM) i7-11700 @ 2.50GHz 2496
Aspire TC-1660
Intel(R) UHD Graphics 750 1024MB
476 GB SSD KINGSTON OM8PCP3512F-AA
1863 GB HD Seagate ST2000DM008-2FR102
Office 2021 Professional Plus NLD 64bit

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.031
  • Geslacht: Vrouw
  • veni vidi vici
Re: geautomatiseerd sjabloon voor budget
« Reactie #145 Gepost op: 23 augustus 2023, 21:05:16 »
Hey Molly,

Bedankt dat je in jouw schaarse pauze-tijden van deze week toch eventjes de tijd hebt genomen om mijn projectje te bekijken. _/-\o_ :thumbsup:

Voor wat betreft dat punt 2 even een kleine toelichting.

In het echte bestand zullen er per pagina ca 25 labels en 25 textboxen aanwezig zijn.
Sommige van deze textboxen zullen in bepaalde maanden "leeg" blijven (ingeval van niet-maandelijkse transacties).

Zoals je zelf zal gezien hebben worden de captions van de labels en de values van de textboxen gevuld met de waardes
van de cellen in het werkblad "jaaroverzicht", inclusief de achtergrondkleur.

Vanuit dat werkblad kunnen er 2 kleuren overgebracht worden, 'wit' indien de ta nog niet betaald is en 'cyaan' (tint) indien
de ta wél reeds betaald is.
Voor de cellen die leeg zijn in het werkblad krijgen de textboxen een grijze achtergrondkleur én worden de bijhorende labels disabled.
De textboxen zelf zijn sowieso altijd disabled omdat in de textboxen zelf de waarde niet gewijzigd mag worden.

Dus om te bepalen of de multipage-pagina disabled mag worden moet er gewoon gekeken worden of er nog textboxen zijn met
een witte backcolor. Maw, indien er geen textboxen met witte backcolor aanwezig zijn op de pagina mag de pagina disabled worden.


Omdat ik niet weet of dit al dan niet een rol zal spelen in de codering van de initialize toch al even melden dat er in de verwerkingscode
ook iets zal dienen toegevoegd worden om op het werkblad "jaaroverzicht" de achtergrondkleur te wijzigen naar de 'cyaan' (tint) achtergrondkleur
zodra de ta verwerkt wordt en dat dit dus ook meteen te zien moet zijn op de multipage-pagina.

de code voor punt 1 kende ik dus wel maar was onvoldoende gefocust om meteen te zien waar juist in de code ik dat lijntje best kon zetten.
voor punt 2 geldt eigenlijk grotendeels hetzelfde maar daar zal ik (gezien jouw drukke werkweek) mogelijks ook nog wel zelf misschien de oplossing voor kunnen vinden.

Het puntje waar ik vooral de meeste problemen mee heb is bij het vullen van die combobox het aspect met die extra voorwaarden.


groetjes,
Bieke

1) HP ProDesk (Windows 10 Pro Edu / Intel(R) Core(TM) i5-7500 CPU@ 3.40Ghz 3.41Ghz)
2) Laptop ASUS (Windows 10 Home / Intel(R) Core(TM) i3-3110M CPU@ 2.40GHz 2.40GHz)
Beide (RAM : 8,00 GB / 64-bits besturingssysteem, x64-processor)
Extern (Seagate Backup+ Hub 6TB / Seagate BUP Slim 2TB / Seagate Expansion Desk 5TB / HP ENVY 6030e)
Bullguard Premium Protection / Office Pro Plus 2016 NL

Offline MollyVH

  • Excel-Expert
  • Oplosser
  • *****
  • Berichten: 847
Re: geautomatiseerd sjabloon voor budget
« Reactie #146 Gepost op: 24 augustus 2023, 09:39:00 »
Hey Bieke,

Ben al zo’n 4 uur bezig, dus tijd voor een moment afleiding :)

Dat komt inderdaad grotendeels neer op wat ik dacht, en betekent ook dat cyaan irrelevant is.

Citaat
Dus om te bepalen of de multipage-pagina disabled mag worden moet er gewoon gekeken worden of er nog textboxen zijn met
een witte backcolor. Maw, indien er geen textboxen met witte backcolor aanwezig zijn op de pagina mag de pagina disabled worden.

Ik snap dat dit de bedoeling is en je dus de neiging hebt het zo te gaan coderen, maar daarvoor is dit het verkeerde uitgangspunt.

Even vba vergeten dus, en overstappen op logisch denken. Je hebt 2 lussen, een buitenste per 'page' en een binnenste per textbox. Stel je even voor dat niet vba, maar jij zelf de textboxen één voor één bekijkt. Is het dan relevant als je een niet-witte ziet? Neen dus, want er kan later wel een witte gevonden worden. Van zodra je wel een witte ziet is het verhaal anders, dan hoef je zelfs de overige niet meer te bekijken, want je mag dan al concluderen dat de page geactiveerd moet blijven. En daar mag je uit concluderen dat de standaard instelling, dus voor je naar de textboxen begint te kijken gedesactiveerd moet zijn. Dat zet je dus tussen beide 'for each'-instructies. Binnen de binnenste lus zet je het op geactiveerd bij de eerste gevonden witte én verlaat je meteen die lus. Die beide acties moet je niet effectief uitvoeren maar in een variabele steken. Tussen beide 'end with'-regels moet je dan nog enkel activeren op basis van die variabele.

Ik weet het, 't is heel eenvoudig uitgelegd, maar het is meteen een methode/denkwijze die in allerlei kwesties van pas kan komen.
Eigenlijk heb ik hiermee nu al de ganse code geschreven, zij het in gewoon Nederlans :D

Wedden dat je het, nadat je het zelf in vba zal omgezet hebben, plots eenvoudig gaat vinden?

Groetjes,
Molly
Windows 11 Home NLD 64bit
11th Gen Intel(R) Core(TM) i7-11700 @ 2.50GHz 2496
Aspire TC-1660
Intel(R) UHD Graphics 750 1024MB
476 GB SSD KINGSTON OM8PCP3512F-AA
1863 GB HD Seagate ST2000DM008-2FR102
Office 2021 Professional Plus NLD 64bit

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.031
  • Geslacht: Vrouw
  • veni vidi vici
Re: geautomatiseerd sjabloon voor budget
« Reactie #147 Gepost op: 24 augustus 2023, 13:13:05 »
Hey Molly,

Ondertussen is het ook gelukt om punt 2 zelf in orde te krijgen (al heb ik het wel volledig buiten de "with"'s van het codeblok voor de aanmaak van de controls moeten plaatsen)...
Na punt 2 succesvol gecodeerd te hebben stuit ik echter op een probleem met de oplossing voor punt 1  :( ....

Waar dit :
Binnen het tijdsbestek van mijn pauze lukt ook al de oplossing van je eerste punt. Zet bv. meteen onder "With .MultiPage1" één lijntje:
.Value = Month(Date) - 1
perfect werkt zolang alle pagina's enabled zijn, werkt het niet meer zodra er één pagina disabled is omdat dan de indexering van de paginas wijzigt...

Dus ik ga voor punt 1 een andere oplossing moeten zoeken...

Ook heb ik, na het succesvol kunnen vullen van de combobox volgens alle voorwaarden, moeten vaststellen dat ik dit beter niet adhv van de optionbutton_click keuze
kan laten doen maar wel noodzakelijk adhv de pagina_change zal moeten laten uitvoeren.

groetjes,
Bieke
1) HP ProDesk (Windows 10 Pro Edu / Intel(R) Core(TM) i5-7500 CPU@ 3.40Ghz 3.41Ghz)
2) Laptop ASUS (Windows 10 Home / Intel(R) Core(TM) i3-3110M CPU@ 2.40GHz 2.40GHz)
Beide (RAM : 8,00 GB / 64-bits besturingssysteem, x64-processor)
Extern (Seagate Backup+ Hub 6TB / Seagate BUP Slim 2TB / Seagate Expansion Desk 5TB / HP ENVY 6030e)
Bullguard Premium Protection / Office Pro Plus 2016 NL

Offline MollyVH

  • Excel-Expert
  • Oplosser
  • *****
  • Berichten: 847
Re: geautomatiseerd sjabloon voor budget
« Reactie #148 Gepost op: 24 augustus 2023, 14:31:06 »
Hey Bieke,

Citaat
Dus ik ga voor punt 1 een andere oplossing moeten zoeken...
...en het mogelijk ingewikkelder maken dan nodig?

Citaat
perfect werkt zolang alle pagina's enabled zijn, werkt het niet meer zodra er één pagina disabled is omdat dan de indexering van de paginas wijzigt
Dat moet dan wel veroorzaakt worden door:
Citaat
al heb ik het wel volledig buiten de "with"'s van het codeblok voor de aanmaak van de controls moeten plaatsen
Euhh, 'moeten' ? :'(

In de methode die ik je had voorgesteld kan dat niet spelen, omdat 1) in het formulierontwerp alle pages enabled zijn, en 2) de huidige maand wordt geactiveerd vooraleer sommige pages disabled worden.

Als je een eenvoudiger oplossing vindt, laat het dan vooral weten, ik ben ook altijd bereid tot bijleren :D

Groetjes,
Molly
Windows 11 Home NLD 64bit
11th Gen Intel(R) Core(TM) i7-11700 @ 2.50GHz 2496
Aspire TC-1660
Intel(R) UHD Graphics 750 1024MB
476 GB SSD KINGSTON OM8PCP3512F-AA
1863 GB HD Seagate ST2000DM008-2FR102
Office 2021 Professional Plus NLD 64bit

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.031
  • Geslacht: Vrouw
  • veni vidi vici
Re: geautomatiseerd sjabloon voor budget
« Reactie #149 Gepost op: 24 augustus 2023, 16:05:36 »
***update***

Ondertussen beide punten (1 en 2) volledig werkend gekregen  ;D.

Eerst heb ik het codeblok (voor het aanmaken van de controls per pagina) wat opgeschoond en ietsje anders geschreven (1 loop ipv 4) waardoor ik toch zo'n
24 lijntjes code minder heb nu  ;)

Daaronder heb ik dan deze code staan betreffende het al dan niet disabled zetten van de pages (punt 2) :
For p = 11 To 0 Step -1
    Me.MultiPage1.Pages(p).Enabled = False
    For Each ctrl In Me.MultiPage1.Pages(p).Controls
      If TypeName(ctrl) = "TextBox" Then
        If ctrl.BackColor <> &H8000000F And ctrl.BackColor <> RGB(164, 255, 255) Then
            Me.MultiPage1.Pages(p).Enabled = True
         End If
      End If
    Next
  Next p

En daaronder dan dit ene lijntje code voor de juiste pagina te tonen bij openen UF (punt 1) :
Me.MultiPage1.Value = (Month(Date) - Mid(Me.MultiPage1.SelectedItem.Name, 5)) + 1

Alles werkt momenteel zoals verwacht  :thumbsup:


groetjes,
Bieke


***EDIT***
Voor het vullen van de combobox adhv de geselecteerde pagina heb ik volgende code opgebouwd :
Private Sub MultiPage1_Change()
  Dim mnd As Long, laatste As Long, r As Long, t As Long, arrTodo() As Variant
  mnd = Mid(Me.MultiPage1.SelectedItem.Name, 5)
  With Sheets("TA-todo")
    laatste = .Cells(Rows.Count, 1).End(xlUp).Row
    t = 0
    For r = 2 To laatste
      If .Cells(r, 1) <> "" Then
        ReDim Preserve arrTodo(t)
        If Month(.Cells(r, 1).Value) = mnd Then
          arrTodo(t) = .Cells(r, 4).Value
          t = t + 1
        End If
      End If
    Next r
  End With
  ComboBox1.List = arrTodo
End Sub
1) HP ProDesk (Windows 10 Pro Edu / Intel(R) Core(TM) i5-7500 CPU@ 3.40Ghz 3.41Ghz)
2) Laptop ASUS (Windows 10 Home / Intel(R) Core(TM) i3-3110M CPU@ 2.40GHz 2.40GHz)
Beide (RAM : 8,00 GB / 64-bits besturingssysteem, x64-processor)
Extern (Seagate Backup+ Hub 6TB / Seagate BUP Slim 2TB / Seagate Expansion Desk 5TB / HP ENVY 6030e)
Bullguard Premium Protection / Office Pro Plus 2016 NL

 


www.combell.com