abonnement Unibet Coolblue
pi_117622203


Welkom bij Het grote Excel vragentopic waar je terecht kan met vragen over Excel.

In dit topic is het de bedoeling dat we gericht vragen stellen en antwoorden geven op de gestelde vragen. Om alles zo goed mogelijk te laten verlopen zijn er een aantal regels.

Regels
1. Als je een vraag stelt, zet er dan bij welke versie van Excel je hebt en op welke taal hij ingesteld staat.
2. Zet macrocode tussen [ code ] tags
3. Als het pseudo-code is, vermeldt dit dan duidelijk
4. Er bestaan geen domme vragen, wel domme antwoorden. Als jouw antwoord niet gaat bijdragen, geef het antwoord dan niet.
5. Dit topic is geen code-FEBO waar je half opgewarmde code uit de muur trekt, het is de bedoeling dat je er zelf iets van leert.

Definities
Functie Een interne functie die bij Excel is geleverd.
UDF Een user definded function, een zelfgebouwde functie
Macro Een stuk code die opdrachten uitvoert, gebouwd in (meestal) de VBA editor
Add-In Een Excel workbook met VBA-code (of C#, C) die als .xla (of .xll) is opgeslagen, deze is als vaste plug-in in Excel te plaatsen.
Workbook Het excelbestand
Sheet of Worksheet Het tabblad
Form, Formulier, Userform Een Dialoogvenster in VBA gebouwd

Tips & Links
De help functie van excel of visual basic voor excel kan je een eind op weg helpen. (F1)

Het workbook met het FOK!-menu zoals in de banner weergegeven is hier te vinden. Dit menu is naar wens aan te passen. De icoontjes in het menu zijn hier allemaal weergegeven. In dit workbook zijn drie macro's aanwezig:
• Een printertool waarmee je uit meerdere workbooks sheets kan selecteren voor afdrukken
• Een power replace die termen kan wijzigen in meerdere workbooks tegelijk
• Een formule vertaler, de formule in de actieve cel wordt in het engels weergegeven. Je kan ook een engelse formule invoeren die dan in de actieve cel in de geldende taal wordt geplaatst.
De UDF is naar aanleiding van een vraag in topic #29. De functie kan worden aangeroepen door in een cel =FOK() te typen en dan op de Fx te klikken voor uitleg over de variabelen.

De VBA editor bereik je door ALT+F11 in te drukken. Vanaf Excel 2007 is de VBA editor lastiger te vinden. Op deze site wordt uitgelegd hoe je de editor kan activeren.

De interne functies zijn afhankelijk van welke taal jouw Excel draait. Op deze en deze site kun je de formules in verschillende talen vertalen.

Macro uitvoering optimaliseren
De meer uitgebreide macro's kunnen traag worden, ook kan het scherm flikkeren als gevolg van veel "select" acties. Deels kun je dit ondervangen door zo veel mogelijk select acties te vervangen door directe verwijzingen naar cells en deels door een macro-optimalisatie door te voeren. In de onderstaande code is een routine voor macro-optimalisatie en een routine om de optimalisatie weer uit te zetten weergegeven. In de voorbeeld sheet is een uitgebreide versie van MOA en MOU opgenomen.

SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
Bij macro's die een bepaalde, merkbare, tijd nodig hebben om hun werk te doen is het van belang de gebruiker een idee te geven van wat er gebeurt, zeker met macro-optimalisatie aan kan het lijken alsof Excel is vastgelopen. Je kan bijvoorbeeld de statusbar een waarde geven, met eventueel een percentage van de reeds uitgevoerde code.

SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
Password kwijt?
Soms heb je een worksheeet beveiligd met een password maar ben je die kwijt. Gelukkig is dat geen groot probleem want de interne beveiliging van Excel stelt niet heel veel voor.
Hier vind je meer info en een downloadbare macro die alle interne passwords verwijdert.

DISCLAIMER: Denk erom dat je met het breken van de beveiliging van een excelsheet mogelijk wet- of regelgeving overtreedt. Als de spreadsheet van jezelf is zou het geen probleem moeten zijn.
In andere gevallen: vraag toestemming aan de originele schrijver.
Bij twijfelgevallen: NIET DOEN



Mooi, grappig en cool
Een uitgebreide site met nuttige en minder nuttige excelsheetjes. Van kekke grafieken om je manager of leraar te betoveren via oscillogrammen en simulatoren tot pong voor als het weer een typische vrijdagmiddag is: Excelunusual

Verder
Alle vorige topics zijn hier terug te vinden.

Nieuw topic? Haal de OP uit de wiki

[ Bericht 5% gewijzigd door Deetch op 05-10-2012 12:05:14 ]
Supra Groningam Nihil
Postjubilea: 10.000 15.000 20.000 25.000
Sit jou kop in die koei se kont en wag tot die bul jou kom holnaai
Wat niemand je vertelt over de bioindustrie, geen bloed maar feiten
pi_117622381
-test-
Supra Groningam Nihil
Postjubilea: 10.000 15.000 20.000 25.000
Sit jou kop in die koei se kont en wag tot die bul jou kom holnaai
Wat niemand je vertelt over de bioindustrie, geen bloed maar feiten
  vrijdag 5 oktober 2012 @ 12:50:00 #3
62215 qu63
..de tijd drinkt..
pi_117623799
quote:
3s.gif Op vrijdag 5 oktober 2012 11:38 schreef Deetch het volgende:

[..]

Zo te zien is het baggeruurtje begonnen? :D
Neuh, ik moest daar gewoon meteen aan denken toen ik je post las :P
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_117652550
Iemand ervaring met Excel projectjes op licentie verkopen?

100% krijg je het niet dicht, maar qua security wil ik het wel een beetje de non Excel savvi gebruiker ontmoedigen kopien rond te sturen...
pi_117652935
Kopieen is nu juist wat niet tegen te houden is. Het enige dat je een beetje kunt beschermen is je broncode. Alleen wanneer je het je gebruiker moeilijker maakt om het zelf te kunnen gebruiken kun je wellicht iets voorkomen. Bijvoorbeeld dat de gebruiker zijn MAC adres aan jou geeft en dat jij je code zo schrijft dat het alleen werkt op dat MAC adres. Maakt het wel bewerkelijker voor jezelf.
  zaterdag 6 oktober 2012 @ 10:34:45 #6
62215 qu63
..de tijd drinkt..
pi_117653286
quote:
0s.gif Op zaterdag 6 oktober 2012 09:28 schreef Holy_Goat het volgende:
Iemand ervaring met Excel projectjes op licentie verkopen?

100% krijg je het niet dicht, maar qua security wil ik het wel een beetje de non Excel savvi gebruiker ontmoedigen kopien rond te sturen...
Geen ervaring mee.

Je zou ook je code heel 'fuzzy' kunnen maken door 'a = b' te doen ipv 'MyName = Input' oid. Op die manier kan je ook inbouwen dat als de code korter/kleiner wordt dan x regels/bytes er overal rode lijnen komen bijvoorbeeld :P

Zoiets had ik iig een keer met een PHP-script wat ik gevonden had.. Fucking irritant! :D
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_117659600
Ik ben opzoek naar een oplossing in het volgende:
Ik heb een formule in een cel staan: B12/B2
Nu wil ik graag dat als je in een andere cel bijv. C1, 12 neer zet...
dat de formule automatisch B12/B2 (wordt in een andere cel dus).

Dus als je in C1 15 zet, dan wordt de formule in een andere cel B15/B2.

Weet iemand hoe ik dit kan doen?

thanks!
pi_117660357
Volgens mij zoek je de indirect functie:
Je formule is: =indirect("B"&C1)/B2

Wanneer C1 de waarde 15 heeft krijg je B15/B2
pi_117727388
is er hier een excel-guru die me kan helpen met het maken van onderstaande grafiek



het heet iets van sigma curve / gausse curve / normal distribution curve
op internet vind ik wel wat, maar geen goede uitleg hoe ik m kan maken
pi_117727482
Avatar mede-mogelijk gemaakt door buurpoes
pi_117727871
quote:
die lijkt er wel op..maar je ziet dat ik een staafdiagram en een curve door elkaar heb...en de curve volgt niet de staaf...wel het gemiddelde ervan, dat is de moeilijkheid
en volgens niet het geval in je voorbeeld
  maandag 8 oktober 2012 @ 12:49:19 #12
249182 Holy_Goat
mhèèhèhè
pi_117728000
Ik word helemaal schijtesziek van het volgende.

Ik heb een projectje gemaakt in VBA; werkt helemaal top op mijn pc (office2010 32bit).
Ik vreesde er al voor maar het dreigt waarheid te worden.

De listview control die ik gebruik (mscomctl.ocx) werkt niet op alle andere pc's. Ik heb de mscomctl zelf geregistreerd voor office 2010, by the way. De andere pc werkt met office 2007, maar ook daar kan 'het object niet gevonden worden'.

Welk mooi alternatief heb ik voor de listview control? De ocx op allerlei andere pc's registreren is geen optie. Ohja: ander hulp is ook welkom.

Trouwens: bij pc vriendin werkte de file ook. Na saven nog steeds. Maar eenmaal terug op mijn PC niet meer. (object not found).
  maandag 8 oktober 2012 @ 13:06:07 #13
249182 Holy_Goat
mhèèhèhè
pi_117728452
Betere vraag is wellicht:

ik zou graag iets hebben dat bijna hetzelfde kan als een listview control.
Ofwel: meerdere rijen+kolommen, liefst een scrollbar, en evt aanpassen opmaak per rij.
Ook klik/dubbelklik moet werken.
  maandag 8 oktober 2012 @ 15:36:48 #14
85514 ralfie
!Yvan eht nioj
pi_117733763
quote:
0s.gif Op maandag 8 oktober 2012 13:06 schreef Holy_Goat het volgende:
Betere vraag is wellicht:

ik zou graag iets hebben dat bijna hetzelfde kan als een listview control.
Ofwel: meerdere rijen+kolommen, liefst een scrollbar, en evt aanpassen opmaak per rij.
Ook klik/dubbelklik moet werken.
Gebruik een listbox, maak zelf iets in vba (veel werk!) of voeg de control toe middels een xladdon vanuit DotNet (C# of VB#)

quote:
0s.gif Op maandag 8 oktober 2012 12:26 schreef MrNiles het volgende:
is er hier een excel-guru die me kan helpen met het maken van onderstaande grafiek

[ afbeelding ]

het heet iets van sigma curve / gausse curve / normal distribution curve
op internet vind ik wel wat, maar geen goede uitleg hoe ik m kan maken
Ik neem aan dat je wel een histogram kunt maken? Deze moet je normaliseren (ywaarde/som(totaal)) en dan heb je dat gedeelte.
De normaaldistributie maak je middels een gemiddelde (=gemiddelde(range)) en standaard deviatie (=stdev(range)).

Je hebt drie kolommen nodig: één kolom (de z-waarden) van -3 naar 3 (met een stapgrootte naar keuze), één kolom met X-waarden (=z-waarde*stdev+gemiddelde) en één kolom met de normaalwaarde (=norm.verd(x-waarde; gemiddelde;stdev;ONWAAR))

Je plot nu kolom twee met kolom drie en voila.

Het laatste wat je moet doen is de kolommen uitlijnen met de normaal distrubutie. Dit is het makkelijkst als je de histogram en de grafiek beide een eigen (horizontale) as meegeeft. Voor de histogram is de minimale aswaarde gemiddelde - 3*stdev en de maximale gemiddelde+3*stdev.

Een alternatief voor al deze onzin is SPSS, SAS, Stata, Mathlab of R. Ik neem aan dat een statistische excel module hetzelfde kan, maar die heb ik niet
pi_117735224
quote:
Of deze: http://www.vertex42.com/ExcelArticles/mc/Histogram.html

Het ligt er ook een beetje aan wat voor data je hebt.
Supra Groningam Nihil
Postjubilea: 10.000 15.000 20.000 25.000
Sit jou kop in die koei se kont en wag tot die bul jou kom holnaai
Wat niemand je vertelt over de bioindustrie, geen bloed maar feiten
pi_117735701
quote:
0s.gif Op maandag 8 oktober 2012 12:43 schreef MrNiles het volgende:

[..]

die lijkt er wel op..maar je ziet dat ik een staafdiagram en een curve door elkaar heb...en de curve volgt niet de staaf...wel het gemiddelde ervan, dat is de moeilijkheid
en volgens niet het geval in je voorbeeld
Is je data wel normaal verdeeld dan? heb je de juiste waarde voor gemiddelde en stdev gebruikt?
Supra Groningam Nihil
Postjubilea: 10.000 15.000 20.000 25.000
Sit jou kop in die koei se kont en wag tot die bul jou kom holnaai
Wat niemand je vertelt over de bioindustrie, geen bloed maar feiten
  maandag 8 oktober 2012 @ 16:55:18 #17
249182 Holy_Goat
mhèèhèhè
pi_117737240
quote:
0s.gif Op maandag 8 oktober 2012 15:36 schreef ralfie het volgende:

[..]

Gebruik een listbox, maak zelf iets in vba (veel werk!) of voeg de control toe middels een xladdon vanuit DotNet (C# of VB#)

[..]

Dat laatste lijkt me niet zo handig, aangezien de gebruikers dan ook die addin moeten hebben, toch?
Dat eerste is een beetje naar> listbox heeft standaard een scrollbar als er te veel items komen, en dit wil ik niet. Tevens heeft een listbox scrollbar geen _scroll event in vba.

Maarrr ik ben daar wel een beetje mee aan het prutsen. Een listbox kun je prima in een frame verstoppen en de scrollbar er net buiten laten vallen, bijvoorbeeld. Je kunt dan wel niet meer scrollen, maar daar heb je natuurlijk en scrollbar control voor in dat geval ;) Allemaal standaard library.

Dus ik zou het (denk ik) wel kunnen maken (voor het simpele listview) met 4 of 5 listbox-in-frames (4-5 kolommen), maar voor het nette zou ik dan liever een custom listview object maken met (beperkte) functionaliteit; welke dan dus eigenlijk een aantal listbox-in-frames is met waarschijnlijk wat labels er boven als headers.

Alleen een beetje jammer, ik vind het belangrijk dat de listbox items individueel gekleurd kunnen worden. (text forecolor).

Dus ja, dan zit je weer, want in vba kan dat dus niet met een listbox.

Dusssss dan zou je al weer zelf je listview moeten gaan bouwen met een soort grid van labels, en dan bij scrollen items gaan schuiven. Dusss....
  maandag 8 oktober 2012 @ 18:27:04 #18
85514 ralfie
!Yvan eht nioj
pi_117741074
quote:
0s.gif Op maandag 8 oktober 2012 16:55 schreef Holy_Goat het volgende:

[..]

Dat laatste lijkt me niet zo handig, aangezien de gebruikers dan ook die addin moeten hebben, toch?
Tsja, je schijnt er om heen te kunnen werken
http://www.cpearson.com/excel/installinganxla.aspx

Geen idee hoe zoiets werkt eigenlijk.

Laatste redmiddel: schrijf een korte applicatie die aangeroepen kan worden vanuit excel welke je form laat zien en de resultaten terugrapporteerd aan excel op de een of andere manier.
  dinsdag 9 oktober 2012 @ 11:40:34 #19
249182 Holy_Goat
mhèèhèhè
pi_117767785
Even een korte status update omtrent het listview probleem. Ik ben er bijna uit :D


Hij is wellicht nog niet zo mooi, maar wel lekker dynamisch al, en heeft al 'wat' functionaliteit.
Omdat ik geen tijd heb om er een hele supernette class van te maken (is een testcase, maar wil het ook in een project inbouwen waar ik heel heel snel wat voor wil laten zien), zit ie voor het grootste deel vooralsnog in een module plus een class voor de events af te vangen.

Als iemand tijd over heeft en zich geroepen voelt mee te denken voor het maken van een nette vervangende-class, be my guest.

Momenteel moet je alleen maar een frame maken genaamd framefield en deze kun je elke grootte geven die je wilt. Vervolgens kun je de kolommen defineren met
1Call createfield("Zaak nr", 7, "Zaak naam", 20, "Open taken", 24.8, "Omschrijving", 35, "(1e) Afronddatum", 13)
Waarin het getal het percentage is van de totale frame breedte. Het aantal rijen wordt automatisch bepaald aan de hand van de frame hoogte. Verversen kan makkelijk en is niet eens zichtbaar voor het oog zo snel gaat het

1
2
Call destroyfield()
Call createfield("iets anders", 50, "Nog iets anders",50)
Bij het klikken op een rij kleurt deze blauwig, de rest weer wit. Events af te vangen uit class, zoals doubleclick. Daadwerkelijk met echte data vullen zit er nog niet in (nu alleen test data bij genereren veld) en ook een scrollbar ontbreekt. Die laatste komt als een aparte control in de frame te staan.
  dinsdag 9 oktober 2012 @ 11:44:49 #20
249182 Holy_Goat
mhèèhèhè
pi_117767943
Heb trouwens al eens eerder iets geklust dat ik in best veel projectjes gebruik, aangezien de datepicker control uit mscomctl.ocx ook gekut geeft op andere office versies. Maar listview dinges is wel iets lastiger



Volledig dynamisch aan huidige datum. Springen kan met pijltjes per maand, groen is huidige datum, donkergrijs andere data.
  dinsdag 9 oktober 2012 @ 15:58:25 #21
249182 Holy_Goat
mhèèhèhè
pi_117777652
Ennnn de custom listview doet het :)
pi_117778400
quote:
0s.gif Op dinsdag 9 oktober 2012 11:44 schreef Holy_Goat het volgende:
Heb trouwens al eens eerder iets geklust dat ik in best veel projectjes gebruik, aangezien de datepicker control uit mscomctl.ocx ook gekut geeft op andere office versies. Maar listview dinges is wel iets lastiger

[ afbeelding ]

Volledig dynamisch aan huidige datum. Springen kan met pijltjes per maand, groen is huidige datum, donkergrijs andere data.
Wat een mooie, mag ik hebben?
Ik had er vroeger ook één (2000 versie) maar die doet het niet in excel 2010 en de datepicker control wordt niet meer ondersteund door MS.
Supra Groningam Nihil
Postjubilea: 10.000 15.000 20.000 25.000
Sit jou kop in die koei se kont en wag tot die bul jou kom holnaai
Wat niemand je vertelt over de bioindustrie, geen bloed maar feiten
  dinsdag 9 oktober 2012 @ 16:33:34 #23
249182 Holy_Goat
mhèèhèhè
pi_117778914
quote:
3s.gif Op dinsdag 9 oktober 2012 16:19 schreef Deetch het volgende:

[..]

Wat een mooie, mag ik hebben?
Ik had er vroeger ook één (2000 versie) maar die doet het niet in excel 2010 en de datepicker control wordt niet meer ondersteund door MS.
Dat was precies waarom ik deze gemaakt heb ;)
pi_117819463
Excel 2007 - NL

Ik ben bezig met een scriptie en heb een vraag over het gebruik van formules in Excel.
Wellicht kan ik hier een oplossing vinden.

Ik wil de mutatie berekenen tussen 2 ratio's.
Bijv. jaar t = 0,5 en jaar t1 = 0,3 (de ratio wordt hierbij negatiever)
Ik wil hierbij niet de absolute mutatie berekenen, maar de percentuele mutatie.
Dus: mutatie = (t1 - t) / t = (0.3 - 0.5) / 0.5 = -0,4

Alles prima, maar nu komt mijn probleem.
Indien jaar t = -0,5 en jaar t1 = -0,3 (de ratio wordt positiever)
mutatie = (t1 - t) / t = (-0.3 - -0.5) / -0.5 = -0,4

Beide mutaties zijn dus -0,4, terwijl de mutatie bij de eerste negatief is en bij de tweede positief.

Zijn er bij jullie formules bekend waarmee dit probleem ondervangen wordt?
pi_117819547
heeft dat dan niet met de cel eigenschappen te maken? als ie standaard staat maakt hij geen onderscheid tussen positief en negatief
Avatar mede-mogelijk gemaakt door buurpoes
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')