Kleuren declaren

Status
Niet open voor verdere reacties.
Edmoor de splitfunctie heb ik er wel op los gelaten i.v.m. het berekenen van procenten. In de combobox wordt bijvoorbeeld 6% geplaatst vanuit een lijst. Ik moet rekenen met 6 en niet met 6%. Zodoende heb ik het %-teken weggelaten middels de splitfunctie waarna ik de boel werkzaam kreeg.

Verder fijn dat er zo over mij gedacht wordt. Is tenminste mijn vermoeden bevestigd.

HSV volgens mij ben je de draad kwijt. Ik had jouw code al werkzaam gekregen via F5. Dat gaf ik zelf al aan waar je zelf op hebt gereageerd. En nee ik declareer nu in een module en niet in het userform. Alle kleuren, tenminste wat ik gebruik, staan nu in een aparte module en kan ik inderdaad gewoon rood schrijven ipv een nummer en letterreeks. Ik was hier dus ook al langer naar op zoek en kreeg het wel voor elkaar in een enkele module, maar niet over alles.

Ik heb 15 jaar lang Electrotechniek gestudeerd. Dat is mijn tak van sport. Toen ik er mee begon kreeg ik ook niet meteen alle formules en ditjes en datjes. DAt heeft jaren geduurt en telkens als je denkt dat je de formule doorhebt, kwam er weer een wijziging in omdat er wat bij kwam. Dus verwacht niet dat ik alles in ongeveer een jaar op VBA gebied ken. Ik doe het wellicht voor jullie op een rare manier, maar ik kan mijn weg hier prima mee vinden daar ik weet hoe ik het beste leer. VBA vind ik leuk om te doen, maar ik zit niet ieder minuut in een boek. Daar verdien ik geen geld mee. Ik vind dit leuk om te doen en ja nogmaals ik heb een aparte manier van denken. Puntje bij paaltje en of het nu wel of niet met een omweg kan zijn, kom ik er wel uit. Daarna ga ik het proberen de code te verkleinen door er zaken uit te halen, anders op te stellen. Heel dat stadium heb ik hier over het algemeen al gedaan nog voordat ik hier iets plaats. En nee ik ben niet zoals jullie. Jullie doen dit vermoedelijk al jaren en jaren. Ik niet. We kunnen ruilen. Ik het VBA en jullie het vak elektrotechniek. Dan kom je uit op hetzelfde. Sorry dat ik wellicht bot overkom nu, want het is allerminst mijn bedoeling om tegen schenen te trappen. Ik ben blij met de hulp die ik van jullie KRIJG. Jullie zijn dat niet verplicht. Misschien dat ik jullie laatste bijdragen iets te serieus opvat, maar daar kan ik weer weinig aan doen. Dat is een ziekte in mijn kop.

Snb. De wijze van jouw reacties naar mij, komen voor mij over alsof jij je heel wat voelt. Alsof je alles maar moet weten. Ik heb eerlijk gezegd een hekel aan dat soort reacties. Ik heb je al eens eerder geschreven dat ik jou ook dankbaar ben voor jouw bijdragen en sta er heel vaak versteld van hoe jij even zaken aanpas of wat dan ook, maar ik hoef mij voor mijn gevoel toch niet te laten beledigen.
 
Laatst bewerkt:
Edmoor de splitfunctie heb ik er wel op los gelaten i.v.m. het berekenen van procenten. In de combobox wordt bijvoorbeeld 6% geplaatst vanuit een lijst. Ik moet rekenen met 6 en niet met 6%. Zodoende heb ik het %-teken weggelaten middels de splitfunctie waarna ik de boel werkzaam kreeg.

Sorry hoor, maar om daar de Split functie voor te gebruiken en er een array voor te declareren is wel heel erg overdreven.
Dit is dan voldoende:
Mid(ComboBox2, 1, Len(ComboBox2) - 1)

Nog beter is het om dat %-teken gewoon uit de combobox waarden weg te laten en deze een juiste titel te geven.
 
Laatst bewerkt:
Dank je Edmoor. En geen sorry nodig. Ik heb deze gebruikt omdat ik het niet anders voor elkaar kreeg en ik jouw code niet ken. Kijk en zo leer je weer wat bij. Ik ga daar ook eens mee aan de slag. Eens kijken of ik er uit kom.
 
Begrijp ik. Vandaar dat ik ook een voorbeeldje plaatste :)
 
Feitelijk heel simpel al zeg ik het zelf. Ook weer iets wat je maar moet weten.
 
Beste Edmoor.

Ik heb even zitten puzzelen. Nu ben ik op de volgende code gekomen.

Code:
PERC = Mid(ComboBox2, 1, Len(ComboBox2) - 1)

Ik ontkom in feite, als ik de option explicit gebruik, niet aan een declaratie. Wat is dan het verschil dan behalve dat ik geen array gebruik?

Verder Mid... en Left. Wat is daar in deze het verschil. Ik bedoel wat heeft jou ertoe bewogen voor Mid te kiezen.

Left begint bij de meest linkse positie dan het aantal posities wat is opgegeven vanaf de eerste.
Mid begint vanaf de positie welke is aangegeven en dan aantal posities wat is opgegeven vanaf de aangegeven positie.

Tevens hoef ik bij Left geen Len te gebruiken.

Dus waarom die keuze?

================
Update:

Voor wat betreft het gebruiken van Len... dat neem ik terug. Dat is de lengte van de string min 1 letterteken (of spatie). In deze wordt dus het %-teken weggelaten. Met Left krijg ik een probleem met bijvoorbeeld 5 posities. Bij de 21,00% gaat het goed. Dan rest 21,00, maar bij 6,00%, blijft het 6,00% Daar dit ook 5 posities zijn. Dus dat zal wel je beweegreden zijn geweest of voor Mid te kiezen.

Om even op een eerdere bijdrage (22) van jou terug te komen. Jij stelde dat het nog beter is om de %-teken weg te laten. Dat klopt dat kan, maar ik heb bewust hiervoor gekozen daar deze lijst in meerdere wordt gebruikt en niet enkel in userforms, maar ook op werkbladen. Ik ben de zaken opnieuw aan het opzetten. Meerdere bestanden aan het samenvoegen en de werkbladen waar ik alle gegevens op invoer aan het vervangen voor userforms. Tegelijk is dit programma ook nog eens in gebruik. Dus straks zal het procent teken wel verwijderd worden.

Ik werk dus nu echt in stappen. Eigenlijk ben ik een woning aan het verbouwen terwijl ik er ook nog in woon.
 
Laatst bewerkt:
Left of Mid denk ik nooit zoveel bij na. Left kun je dus ook gebruiken als je toch bij 1 begint. Je kunt dus ook Left(ComboBox2, Len(ComboBox2) - 1) gebruiken. Met Option Explicit wordt aangegeven dat iedere variabele die je gebruikt ook gedeclareerd moet zijn, wat wel zo netjes is, zeker in grotere projecten. Zo ben je ook verplicht om na te denken over het te gebruiken datatype voor een variabele en dat doe je weer om het geheugen gebruik zo laag mogelijk te houden of om te kunnen rekenen met variabelen, wat dan weer een rekenkundige of een datum type kan zijn.

De functie Split gebruik je om meerdere waarden die gescheiden zijn door een bepaald teken, in een Array te zetten. Dat is "duur" gebruik en dus nergens voor nodig als het om maar 1 waarde gaat zoals met je percentage. Daar is alleen wat String manipulatie voor nodig. In dit geval maakt het niet zoveel uit maar in grotere projecten moet je er wel degelijk rekening mee houden.

Ik ben de zaken opnieuw aan het opzetten.

Wat niks kost is de naamgeving van variabelen, die zijn er voor duidelijkheid en daarom vraag ik me af waarom je PERC gebruikt en niet gewoon Percentage. Datzelfde geldt voor de naamgeving van objecten. Het is niet handig om het object waar die percentages in staan Combobox2 (de standaardnaam) te noemen.

Het is gebruikelijk om de naamgeving van een object te laten beginnen met een afkorting van het object type en vervolgens een logische naam. Noem hem dus bijvoorbeeld cbxPercentage. Zo wordt btn voor een button gebruikt, txt voor een textbox, lbl voor een label en noem maar op. In dit geval dus cbx voor een ComboBox.

Uiteraard begrijp ik heel goed dat dat lastig is in een bestaand project, maar toch.
Het zijn maar wat tips die de leesbaarheid van de code behoorlijk kunnen vergroten omdat je tijdens het lezen dan ook direct kunt zien om welk object het gaat.

Eigenlijk ben ik een woning aan het verbouwen terwijl ik er ook nog in woon
Als het bier maar koud staat ;)
 
Laatst bewerkt:
Het bier staat hier ijs en ijs koud. Is wel zo lekker met dit weer. Morgen wordt een dagje lekker bijna niets doen. Kantoor is dicht en ik moet slechts 2 projecten nalopen op de vorderingen. In de vakantie gaan wij op halve kracht door. Nu is de ene helft van mijn personeel op vakantie en straks de andere helft. Daarna kom ik een keer aan de beurt. Immers de boel moet wel blijven draaien, maar omdat ik maar de helft aan personeel heb, heb ik dus voorlopig even maar half werk. Dus met andere woorden... het bier gaat ook door met vloeien en heeft geen kans om warm te worden.

De split gebruikte ik in eerste om de factuur en andere nummers te splitsen op het benodigde gedeelte voor zoeken, aanmaken, aanpassen etc. Deze hebben inderdaad meer waarden. Toen zat ik dus te puzzelen met het percentage.... en toen dacht ik, "Kom laat ik Split eens toepassen." Niet wetende dat het overdone was. Wat ik wel nu gelaten heb zoals het was, en dat is inderdaad voor het rekenen, de declaratie buiten de subroutines. Deze heb ik laten staan en aangepast naar Dim PERC as string. Ik heb nu als ik het goed zeg enkel geen Array meer of dit is in deze de variabele PERC. Wellicht dat dit scheelt met geheugengebruik. Als ik het weglaat dan krijg ik een foutmelding vanwege option explicit.

Betreft de benaming. Klopt dat weet ik. Dat komt allemaal zodra alles werkt zoals ik wil. Dan ga ik alles op mijn gemak een naampje geven waardoor er ook meer duidelijkheid ontstaat wat bij wat hoort. Maakt het inderdaad meer overzichtelijk en leesbaar. Voor ComboBox gebruik ik Cmb_, Voor label Lb_, Voor Textbox Tb_. Voor CommandButton Cb_ . Nu loopt echt alles door elkaar heen, vandaar dat ik de zaken nu nog geen namen geef. Ik ben bang dat het gedeelte wat moet blijven werken, het dan ineens niet meer goed doet en of dat ik conflicten krijg. Ik ben wel blij dat ik voor deze drastische verbouwing heb gekozen. Het geeft mij weer meer mogelijkheden. Mogelijkheden die toen niet haalbaar waren omdat je dan in elke cel formules had staan. Nu ik steeds meer met VBA aan het goochelen ben en ik daar de mogelijkheden in begin te zien, ben ik langzaam alles aan het aanpassen. Ook omdat het werken met formulieren het bestand een stuk netter en professioneler doet ogen. Daarnaast kan ik dan bij het invoegen van een formulier 1 of 2 werkbladen zo de prullenbak in gooien wat mijn bestand weer verkleind.
 
Laatst bewerkt:
Mag ik vragen in welke business je zit?
 
Ik schreef het volgens mij wel fout en moet zijn.

De Dim instructie is een array waarin je een variabele declareert.
 
Met Dim (Dimension) declareer je een variabele. Het is niet een array maar een opdracht aan de compiler.
 
Laat me raden. :rolleyes:

Electrotechniek?

Ik ben de draad niet kwijt @masala09, maar ik geef je een oplossing die je uit jezelf veranderd, en die uiteraard dan weer niet werkt.
Dan denk ik, krijg wat, en geraak ik een beetje uit mijn humeur.
Je maakt de vragen regelmatig onnodig lang, door dingen te zien die er niet staan.

Geeft niet, kijk ik ondertussen naar andere vragen.

Je hebt vele leuke vragen gesteld waar ik mijn slinger aan heb of heb gehad.
Ik kan me uiteraard van reactie onthouden, maar daarvoor is het forum weer te leuk.
 
Elektrotechniek in zijn algemeenheid met daarin ook DATA, CAI, Telefonie. En ook Lifttechniek, Meet en Regeltechniek, Elektrische motoren etc.

Genoeg werk dus.
 
Oke maar wat is dan de array in deze. Dat is toch waar het omgaat??? Soms word ik helemaal gek van al die benamingen, maar ja dan kan ik ook beginnen over HoofdPotentiaal Vereffening, Basis Potentiaal Vereffening, Randaarde, Beschermingsleiding, Aardleiding.. allemaal verschillende onderdelen binnen het gebied Aarding.
 
Vertel mij maar niks over vaktermen, daar weet ik alles van, ook op het gebied van electra waar jij ze van noemt ;)
Een array is een variabele die meerdere waarden kan hebben op meerdere posities. Om het nog lastiger te maken, een array kan zelfs uit meerdere dimensies bestaan. Kijk bijvoorbeeld naar een Excel werkblad. 1 werkblad is in feite een meerdimensionale array.
 
Laatst bewerkt:
HSV. Ik heb in feite niets aangepast van jouw code. Ik had de boel precies zo opgezet als hoe jij het in jouw voorbeeld gaf. Dat werkte niet wat logisch was. Er werd nergens opdracht gegeven om de macro uit te voeren. Dat schoot mij later te binnen en ben ik via F5 de macro gaan starten en toen werkte het wel. Ik had daar dus net even niet aan gedacht. Ik heb alle kleurtjes netjes in een aparte module geplaatst en openbaar gemaakt als hoe jij aangaf. Hiermee kon ik weer verder en het werkt overal.

Ik denkt dat we hier en daar langs elkaar heen denken. Dat ik vaak lange verhalen maak, wat de boel ook weer onoverzichtelijk kan maken :(, daar ben ik mij van bewust. Wees dan maar blij dat je mij 4 jaar geleden niet leerde kennen.................. Of zeg ik nu teveel haha. Het heeft voornamelijk te maken met de ziekte in mijn kop. Dat was geen geintje. Echter door het te overduidelijk te maken, kan men het vaak ook onduidelijk maken. Je wilt niet weten hoe vaak ik brieven aanpas voordat ik ze eruit stuur, maar dat maakt mij geenzins slechter. Dat is leren omgaan met een handicap. Zo noem ik het dan ;).

Ik ben ook zeer zeker blij met jouw bijdrage en leer daar ook van. Ik verbaas mij af en toe dat er nog mensen zijn die dat allemaal willen doen. Wel ben ik van mening dat je soms ook wel eens mag zeggen wat er op je hart ligt. Daar wil ik niemand mee voor de schenen trappen, maar het is vaak wel essentieel om weer door 1 deur te kunnen. Vandaar dat ik even mijn opleiding aanhaalde, wat er overigens verder niets mee te maken heeft, maar wel om duidelijk te maken dat mijn tak van sport elders ligt en waarvoor ik best lang heb voor moeten leren en nog sterker, nog steeds in moet bijblijven. VBA is iets waar ik net in begonnen ben en de mogelijkheden hierin zijn zo divers met zoveel verschillende codes en noem maar op. Dat is in feite ook nog een hele opleiding.

Helaas weet ik ook dat ik soms dingen verkeerd lees. Vandaar ook dat ik er soms niet eens op reageer of verkeerd op reageer. Heeft ook weer te maken met de ziekte in mijn kop.

Als ik dit forum niets vond dan was ik hier allang opgestapt. Dan blijf ik niet erg lang. Dan zoek ik het elders.
 
Eh Edmoor ben je ook elektrotechnicus? Of heb je hierin ook een opleiding gehad en nooit meer afgemaakt, of was het hobby?
 
Lees #2 van mij, en #3 van jezelf.
Daar had je de boel uit jezelf aangepast.
Maar misschien heb ik het daar ook niet helemaal goed uitgelegd.
Ik dacht dat je het verder wel begreep om zo te declareren en de kleurnamen zonder verder te declareren in al je Sub routines.

Geeft niet, ik hou daar maar over op, het is je tenslotte gelukt. ;)
 
Laatst bewerkt:
HSV, Wie en wat en hoe is allemaal niet zo belangrijk. Ook ik heb er inderdaad een beetje debet aan.

Mijn vraagstelling was dus uiteindelijk als hoe de oplossing is gegeven, want niet ik heb het opgelost, Jij hebt het opgelost en uiteraard niet te vergeten SNB. Ik ga niet met de eer strijken om het zo maar te noemen. Daar heb ik een hekel aan.

Het was de bedoeling om de kleuren public te maken zodat deze overal aanspreekbaar zijn. Ik dacht enkel dat er nog subroutines aan moesten worden gekoppeld. Zoals je dat met bijvoorbeeld Dim doet. Vandaar dat ik dus bijvoorbeeld Dim Rood as long (moest dus zijn as string). Daarna moet dan aan Rood nog een variabele toegekend worden. Ik dacht dat je dit dus moest doen in een aparte sub. Vandaar dat weer die subroutine eronder stond: Rood = ...........

Jij kwam dan ineens met een heel ander iets aan zetten en daarbij ook nog met shapes erin... Het duurde even tot ik het doorhad dat ik dat stukje even zelf moest maken zodat ik kon zien hoe het dan werkt. Het meest idiote is dat je het zelfs had aangegeven van Maak op een werkblad...... Ik had zoiets van dat vroeg ik niet, maar hoe dan ook met die bijdragen zag ik het wel even anders en ben ik de boel anders gaan indelen en werkzaam gekregen. Het duurt bij mij soms voordat bij mij het vijfje ( in plaats van het kwartje) is gevallen.
 
Eh Edmoor ben je ook elektrotechnicus? Of heb je hierin ook een opleiding gehad en nooit meer afgemaakt, of was het hobby?

Een gedeeltelijke opleiding electrotecniek gedaan maar toch een heel andere kant op gegaan. Wel 12 banen 13 ongelukken, en overal leer je wat :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan