abonnement Unibet Coolblue Bitvavo
pi_78385522


Aangezien er vaker losse topics langskomen, leek het ons handig een centraal Excel topic te maken waar men hun vragen / antwoorden kwijt kan.

Dus heb je vragen, kom je ergens niet uit, hoe maak ik nu precies die macro?

Stel dan hier je vraag!!!

Tip 1: De help functie van excel of visual basic voor excel kan je echt een eind op weg helpen ! (F1)
Tip 2: Als je een vraag stelt, zet er dan bij welke versie je hebt en op welke taal hij ingesteld staat!
Tip 3: Zet macrocode even tussen [ code ] tags
Tip 4: Zelf de formules in verschillende talen vertalen:
http://dolf.trieschnigg.nl/excel/excel.html
http://branders.name/files/Excel-Function-Reference.pdf

Voorgaande deeltjes met veel informatie:

[Excel] Het grote Excel vragen topic
[EXCEL] Het grote Excel vragen topic, #2
[EXCEL] Het grote Excel vragen topic, #3
[EXCEL] Het grote Excel vragen topic, #4
[EXCEL] Het grote Excel vragen topic, #5
[Excel] Het grote Excel-vragentopic #6
[EXCEL] Het grote Excel vragen topic, #7
[EXCEL] Het grote Excel vragen topic, #8
[EXCEL] Het grote Excel vragen topic, #9
[EXCEL] Het grote Excel vragen topic, #10
[EXCEL] Het grote Excel vragen topic, #11
[EXCEL] Het grote Excel vragen topic, #12
[EXCEL] Het grote Excel vragen topic, #13
[EXCEL] Het grote Excel vragen topic, #14
[EXCEL] Het grote Excel vragen topic, #15
[EXCEL] Het grote Excel vragen topic, #16
[EXCEL] Het grote Excel vragen topic, #17
[Excel] Het grote Excel vragen topic #18

Nieuw topic? Haal de OP bij de wiki
pi_78387102
tvp
  woensdag 24 februari 2010 @ 14:30:33 #3
62215 qu63
..de tijd drinkt..
pi_78392733
ALS("tvp"="toegestaan";"tvp";Hoi! ")
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_78393891
Hoi!
  woensdag 24 februari 2010 @ 15:44:43 #5
62215 qu63
..de tijd drinkt..
pi_78395698
quote:
Op woensdag 24 februari 2010 15:00 schreef Misan het volgende:
Hoi!
Juistem
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_78395899
Na 18 excel-topics wordt 't eens tijd voor een tussentijdse statistiek.
Ik heb via wat truuks in word en excel de gegevens proberen te isoleren van de herkomst van de bijdragen, alsmede de tijden.
Ik kom aan 5146 topic, wat volgens mij al niet klopt. De 18 excel-topics hebben volgens mij ieder 300 topics, dan zouden er 5400 bijdragen moeten zijn, maar goed.

De top tien van de in totaal 461 deelnemers (tadaaaa!):


1 DaFan 1027
2 Deetch 500
3 qu63 329
4 Frollo 205
5 Joooo-pi 161
6 sanger 87
7 Beregd 77
8 Stansfield 69
9 Metal_Jag 59
10 BierKoning 51


Procentuele verdeling over de weekdagen:

Zondag 7,66
Maandag 15,72
Dinsdag 15,94
Woensdag 20,41
Donderdag 20,21
Vrijdag 14,77
Zaterdag 5,29


Procentuele verdeling over de uren van de dag

0 1,34
1 1,07
2 0,33
3 0,23
4 0,1
5 0,1
6 0,23
7 0,68
8 2,62
9 6,8
10 7,04
11 8,8
12 8,55
13 8,94
14 8,61
15 8,59
16 8,05
17 5,48
18 3,65
19 3,32
20 4,43
21 4,63
22 3,48
23 2,92




2007 1e kwartaal 362
2007 2e kwartaal 289
2007 3e kwartaal 140
2007 4e kwartaal 195
2008 1e kwartaal 167
2008 2e kwartaal 403
2008 3e kwartaal 394
2008 4e kwartaal 542
2009 1e kwartaal 798
2009 2e kwartaal 667
2009 3e kwartaal 294
2009 4e kwartaal 814
Je kunt beter één kaars opsteken dan duizend maal de duisternis vervloeken.
  woensdag 24 februari 2010 @ 15:52:02 #7
62215 qu63
..de tijd drinkt..
pi_78395993
quote:
Op woensdag 24 februari 2010 15:49 schreef Twentsche_Ros het volgende:
Na 18 excel-topics wordt 't eens tijd voor een tussentijdse statistiek.
Ik heb via wat truuks in word en excel de gegevens proberen te isoleren van de herkomst van de bijdragen, alsmede de tijden.
Ik kom aan 5146 topic, wat volgens mij al niet klopt. De 18 excel-topics hebben volgens mij ieder 300 topics, dan zouden er 5400 bijdragen moeten zijn, maar goed.

De top tien van de in totaal 461 deelnemers (tadaaaa!):


1 DaFan 1027
2 Deetch 500
3 qu63 329
4 Frollo 205
5 Joooo-pi 161
6 sanger 87
7 Beregd 77
8 Stansfield 69
9 Metal_Jag 59
10 BierKoning 51


Procentuele verdeling over de weekdagen:

Zondag 7,66
Maandag 15,72
Dinsdag 15,94
Woensdag 20,41
Donderdag 20,21
Vrijdag 14,77
Zaterdag 5,29


Procentuele verdeling over de uren van de dag

0 1,34
1 1,07
2 0,33
3 0,23
4 0,1
5 0,1
6 0,23
7 0,68
8 2,62
9 6,8
10 7,04
11 8,8
12 8,55
13 8,94
14 8,61
15 8,59
16 8,05
17 5,48
18 3,65
19 3,32
20 4,43
21 4,63
22 3,48
23 2,92




2007 1e kwartaal 362
2007 2e kwartaal 289
2007 3e kwartaal 140
2007 4e kwartaal 195
2008 1e kwartaal 167
2008 2e kwartaal 403
2008 3e kwartaal 394
2008 4e kwartaal 542
2009 1e kwartaal 798
2009 2e kwartaal 667
2009 3e kwartaal 294
2009 4e kwartaal 814
Cijfers/stats!

Maar deelnemers zijn neem ik aan toch gewoon het aantal posts dat je plaatst?
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_78396309
quote:
Op woensdag 24 februari 2010 15:52 schreef qu63 het volgende:

[..]

Cijfers/stats!

Maar deelnemers zijn neem ik aan toch gewoon het aantal posts dat je plaatst?
Er zijn 461 verschillende deelnemers, die gemiddeld 5146/461 = 11,16 posts hebben geplaatst. De 80/20 regel is hier erg van toepassing.
Je kunt beter één kaars opsteken dan duizend maal de duisternis vervloeken.
pi_78397253
<- Held
Kan je ook nog filteren op nuttige bijdrags
pi_78397509
Woensdag en donderdag zijn duidelijk excel vragen dagen. Meeste posts op werktijden lijkt me logisch.
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_78397530
quote:
Op woensdag 24 februari 2010 16:21 schreef DaFan het volgende:
<- Held
Kan je ook nog filteren op nuttige bijdrags
DaFan -1

De eerste van de top 10 die in deze reeks heeft gepost is Frollo, overigens met een zwaar compliment voor mijn persoontje waarvoor alsnog dank.

[ Bericht 6% gewijzigd door Deetch op 24-02-2010 16:38:08 ]
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
  woensdag 24 februari 2010 @ 16:32:51 #12
15967 Frollo
You know I am a righteous man
pi_78397732
quote:
Op woensdag 24 februari 2010 16:28 schreef Deetch het volgende:

De eerste van de top 10 die post is Frollo, overigens met een zwaar compliment voor mijn persoontje waarvoor alsnog dank.
Ik snap deze zin niet, maar heel negatief klinkt het in elk geval niet.
pi_78397916
in hoeveel postst van DaFan komt trouwens sumproduct voor?
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_78397933
quote:
Op woensdag 24 februari 2010 16:37 schreef Deetch het volgende:
in hoeveel postst van DaFan komt trouwens sumproduct voor?
pi_78397936
quote:
Op woensdag 24 februari 2010 16:32 schreef Frollo het volgende:

[..]

Ik snap deze zin niet, maar heel negatief klinkt het in elk geval niet.
5e post van [Excel] Het grote Excel vragen topic

verder: slowchat alert!
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
  woensdag 24 februari 2010 @ 16:39:15 #16
28946 mirelia
Neehee ik ben geen vrouw!!
pi_78397984
tvp
Shuffle up and deal!!!
pi_78403959
tvp
  donderdag 25 februari 2010 @ 09:46:28 #18
134944 Hi_flyer
Van alles te melden
pi_78425181
ook tvp
  donderdag 25 februari 2010 @ 09:53:22 #19
15967 Frollo
You know I am a righteous man
pi_78425385
quote:
Op woensdag 24 februari 2010 16:37 schreef Deetch het volgende:

[..]

5e post van [Excel] Het grote Excel vragen topic
Lol, dat je dat nog weet, na 3 jaar
Maar het is nog steeds waar natuurlijk.
quote:
verder: slowchat alert!
omg!
pi_78426994
quote:
Op woensdag 24 februari 2010 16:37 schreef Deetch het volgende:
in hoeveel postst van DaFan komt trouwens sumproduct voor?
De strijdkreet voor de opper-gladiator DaFan in de Excel-arena:


AVE SVMPRODVCT

EDVCATORI TE SALVTANT

Vertaald:

Gegroet Sumproduct!
Zij die gaan onderwijzen groeten U!
Je kunt beter één kaars opsteken dan duizend maal de duisternis vervloeken.
  donderdag 25 februari 2010 @ 11:31:10 #21
134944 Hi_flyer
Van alles te melden
pi_78428773
Vraagje:
Hoe kan je code runnen als een gebruiker een tabblad van een multipage aanklikt?
Ter verduidelijking: er worden op het derde tabblad drie (gif)grafiekjes geladen, maar ik wil dat dit alleen gebeurt als dit tabblad actief is. Zo voorkom ik een hoop dataverkeer en een langzamer werkend programma.

[ Bericht 53% gewijzigd door Hi_flyer op 25-02-2010 11:49:20 ]
pi_78432330
Ik wil een macro maken met het een lus voor het afdrukken. Het aantal maal dat de lus moet worden genomen staat in cel "I1" (excel 2007 ned)
Groeten Arnerob
pi_78432371
Vraagje over grafieken.

Ik wil een (in mijn ogen vreselijk simpele) grafiek in Excel laten plotten, maar ik krijg het niet voor elkaar.

Ik wil een lijngrafiek met daarin de volgende 2 lijnen:

1
2
3
4
5
6
 
52   7500
43   9700
50   10100
21   6833
22   5400


en

1
2
3
4
5
6
7
8
35   16800
62   18772
60   19500
63   17750
50   12500
95   18500
73   21300
50   12200


Zoals je ziet zijn het dus vantevoren vastgelegde punten. Maar ik krijg het maar niet voor elkaar om op de Y-as een reeks van 0 - 30000 te maken en op de X-as een reeks van 0 - 100.
  donderdag 25 februari 2010 @ 13:06:02 #24
134944 Hi_flyer
Van alles te melden
pi_78432536
quote:
Op donderdag 25 februari 2010 13:00 schreef Freak188 het volgende:
Vraagje over grafieken.

Ik wil een (in mijn ogen vreselijk simpele) grafiek in Excel laten plotten, maar ik krijg het niet voor elkaar.

Ik wil een lijngrafiek met daarin de volgende 2 lijnen:
[ code verwijderd ]

en
[ code verwijderd ]

Zoals je ziet zijn het dus vantevoren vastgelegde punten. Maar ik krijg het maar niet voor elkaar om op de Y-as een reeks van 0 - 30000 te maken en op de X-as een reeks van 0 - 100.
XY(scatter) kiezen. Dan is het idd vreselijk eenvoudig.
  donderdag 25 februari 2010 @ 13:09:46 #25
134944 Hi_flyer
Van alles te melden
pi_78432685
quote:
Op donderdag 25 februari 2010 12:59 schreef arnerob het volgende:
Ik wil een macro maken met het een lus voor het afdrukken. Het aantal maal dat de lus moet worden genomen staat in cel "I1" (excel 2007 ned)
Groeten Arnerob
1
2
3
4
5
sub print_x_times()
  for i = 1 to range("I1").value
    sheet1.printout
  next
end sub
pi_78433977
quote:
Op donderdag 25 februari 2010 11:31 schreef Hi_flyer het volgende:
Vraagje:
Hoe kan je code runnen als een gebruiker een tabblad van een multipage aanklikt?
Ter verduidelijking: er worden op het derde tabblad drie (gif)grafiekjes geladen, maar ik wil dat dit alleen gebeurt als dit tabblad actief is. Zo voorkom ik een hoop dataverkeer en een langzamer werkend programma.
Dan moet je de code in het tabblad plaatsen.
rechtsklik op tabblad, dan View Code. Dan heb je bovenaan de code pagina twee pulldown menuutjes.

Deze combineer je tot worksheet activate en daarin maak je de code om de gifjes te verversen.
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_78434854
quote:
Op donderdag 25 februari 2010 10:45 schreef Twentsche_Ros het volgende:

[..]

De strijdkreet voor de opper-gladiator DaFan in de Excel-arena:


AVE SVMPRODVCT

EDVCATORI TE SALVTANT

Vertaald:

Gegroet Sumproduct!
Zij die gaan onderwijzen groeten U!
For real...
  donderdag 25 februari 2010 @ 14:11:33 #28
134944 Hi_flyer
Van alles te melden
pi_78435466
quote:
Op donderdag 25 februari 2010 13:38 schreef Deetch het volgende:

[..]

Dan moet je de code in het tabblad plaatsen.
rechtsklik op tabblad, dan View Code. Dan heb je bovenaan de code pagina twee pulldown menuutjes.

Deze combineer je tot worksheet activate en daarin maak je de code om de gifjes te verversen.
Ik heb het onduidelijk uitgelegd denk ik
Het gaat hier om een multipage (dus tabbladen) in een userform en niet de gewone tabbladen.
pi_78435991
danku!
pi_78436202
quote:
Op donderdag 25 februari 2010 14:11 schreef Hi_flyer het volgende:

[..]

Ik heb het onduidelijk uitgelegd denk ik
Het gaat hier om een multipage (dus tabbladen) in een userform en niet de gewone tabbladen.
Kan je niet gewoon de refresh in een If loop plaatsen waar je controleert of het tabblad actief is?

Edit;
Multipage kent wel Enter als event, maar daar kan je geen onderscheid maken in de onderliggende pages

[ Bericht 15% gewijzigd door DaFan op 25-02-2010 14:33:51 ]
pi_78437534
Misschien dat ik de komende tijd mijn ervaringen (en de issues waar ik tegen aan zal lopen) hier zal melden. Ik ga een mega dashboard maken (met data uit tig verschillende sources). Hierbij moet het ook mogelijk zijn om de getoonde data (tabellen+grafieken) on-the-fly te kunnen wijzigen (op basis van filters).

Stap 1: Wát wil ik?
Stap 2: Waar komt de data vandaan?
Stap 3: van latere zorg
  vrijdag 26 februari 2010 @ 12:55:54 #32
134944 Hi_flyer
Van alles te melden
pi_78476907
Doen
pi_78483288
Nooit gedacht dat ik hier een vraag zou posten, maar ik kom er niet meer uit met excel 2007. Ik moet een heel simpele staafdiagram in elkaar flansen met wat percentages.

Ik heb in wat vakjes naast elkaar gezet.

2004 3,82%
2005 4,55%
2006 5,82%


deze gegevens wil ik in een simpele staafdiagram verwerken, dus ik selecteer ze, ga naar invoegen=> staafdiagram. En hierna lukt het niet meer met gegevens toevoegen, heb ik uiteindelijk die balkjes goed, krijg ik de jaartallen er niet bij, komen de jaartallen erbij, staat er ineens bij alle gegevens het jaartal... De help functie kan me niet helpen..
pi_78489305
wat wil je precies babipangang?
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_78489503
quote:
Op vrijdag 26 februari 2010 18:33 schreef Deetch het volgende:
wat wil je precies babipangang?
nou het gaat om een percentage weergeven in een staafdiagram.
gewoon 3 balken, met de juiste waarde erbij. in 2004 3,82%, in 2005 4,55% en in 2006 5,82%
Verder maakt het niet veel uit hoe hij eruit ziet, als maar duidelijk is wat de percentage's zijn. Een x-as met de jaartallen, een Y-as die loopt tot 100%. En dan 3 balken met de waardes erbij..
In de oude excel's was het gewoon alles selecteren, grafiek maken en dan was ie meteen bijna goed
  zondag 28 februari 2010 @ 22:00:45 #36
62215 qu63
..de tijd drinkt..
pi_78570254
Hoe kan ik het makkelijkst een x-aantal willekeurige regels selecteren uit een range?

aantal en range kunnen verschillen, dus als het kan met een verwijzing (of gewoon handmatig de code aanpassen..)

Edit:

Voorbeeld:
In kolom A moet tussen A140 en A867 180 keer een "x" komen te staan op willekeurige plaatsen (gaat om een steekrpoef namelijk..)

[ Bericht 14% gewijzigd door qu63 op 28-02-2010 23:07:25 ]
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_78582188
quote:
Op vrijdag 26 februari 2010 18:40 schreef babipangang het volgende:

[..]

nou het gaat om een percentage weergeven in een staafdiagram.
gewoon 3 balken, met de juiste waarde erbij. in 2004 3,82%, in 2005 4,55% en in 2006 5,82%
Verder maakt het niet veel uit hoe hij eruit ziet, als maar duidelijk is wat de percentage's zijn. Een x-as met de jaartallen, een Y-as die loopt tot 100%. En dan 3 balken met de waardes erbij..
In de oude excel's was het gewoon alles selecteren, grafiek maken en dan was ie meteen bijna goed
nou ineens na het openslaan van een oud excelboek is het wel gelukt

1
2
             2004     2005     2006
verzuim     3,82%     4,55%    5,82%


op deze manier in de velden in vullen en de diagram was ineens helemaal goed. alleen dat woord verzuim in een apart veld en hij was helemaal goed

Graag zou ik nog wel willen weten als ik de staven wil aanvullen in een andere kleur tot 100%, is dat mogelijk?
pi_78582327
quote:
Op zondag 28 februari 2010 22:00 schreef qu63 het volgende:
Hoe kan ik het makkelijkst een x-aantal willekeurige regels selecteren uit een range?

aantal en range kunnen verschillen, dus als het kan met een verwijzing (of gewoon handmatig de code aanpassen..)

Edit:

Voorbeeld:
In kolom A moet tussen A140 en A867 180 keer een "x" komen te staan op willekeurige plaatsen (gaat om een steekrpoef namelijk..)
Helaas geen tijd om uitgebreid te coderen.

Echter een principe schetsje ziet er mi als volgt uit.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub random_x()

dim myArray as double
dim aantal as integer

aantal = Inputbox("Geef aantal x-en")'

### hier code om de lengte van je dataset te bepalen, dit in variabele lengte stoppen


redim myArray(aantal, 1) as double

for i = 1 to aantal
myarray(i,1) = Round(Random()*lengte)+140
next i

'x-jes neerzetten
for j = 1 to aantal
ActiveSheet.Cells(myArray(j,1), 1).Value = "X"
next j
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_78582348
quote:
Op maandag 1 maart 2010 10:31 schreef babipangang het volgende:

[..]

nou ineens na het openslaan van een oud excelboek is het wel gelukt

[ code verwijderd ]

op deze manier in de velden in vullen en de diagram was ineens helemaal goed. alleen dat woord verzuim in een apart veld en hij was helemaal goed

Graag zou ik nog wel willen weten als ik de staven wil aanvullen in een andere kleur tot 100%, is dat mogelijk?
Volgens mij moet je dan een setje data toevoegen waarin 100% staat.
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_78582969
quote:
Op maandag 1 maart 2010 10:37 schreef Deetch het volgende:

[..]

Volgens mij moet je dan een setje data toevoegen waarin 100% staat.
zoals jij het zegt klinkt het heel erg makkelijk, maar ik snap er niks van. Ik krijg het dan wel voor elkaar in in de velden eronder 100% te zetten om vervolgens extra balken met 100% langs die percentages te krijgen, maar niet doorlopend aan die andere balk
  maandag 1 maart 2010 @ 11:29:20 #41
249182 Holy_Goat
mhèèhèhè
pi_78583750
voor de liefhebber:

pijl trekken tussen 2 willekeurig geselecteerde cellen
download

(tevens tvp)
pi_78583988
quote:
Op maandag 1 maart 2010 11:02 schreef babipangang het volgende:

[..]

zoals jij het zegt klinkt het heel erg makkelijk, maar ik snap er niks van. Ik krijg het dan wel voor elkaar in in de velden eronder 100% te zetten om vervolgens extra balken met 100% langs die percentages te krijgen, maar niet doorlopend aan die andere balk
ander grafiektype selecteren. In office 2007 heet die stacked columns, moet je wel de 2e set data zelf berekenen.

Stel in cellen A2 tm A5 staan je jaartallen. In cellen B2 tm B5 staan dan je percentages, dan zet je in cel C de formule =100%-B2 en die kopieer je tm C5.

Vervolgens maak je een nieuwe stcked columns met alle 2 datasets en klaar ben je.
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_78584899
quote:
Op maandag 1 maart 2010 11:37 schreef Deetch het volgende:

[..]

ander grafiektype selecteren. In office 2007 heet die stacked columns, moet je wel de 2e set data zelf berekenen.

Stel in cellen A2 tm A5 staan je jaartallen. In cellen B2 tm B5 staan dan je percentages, dan zet je in cel C de formule =100%-B2 en die kopieer je tm C5.

Vervolgens maak je een nieuwe stcked columns met alle 2 datasets en klaar ben je.
THNX hij werkt
  maandag 1 maart 2010 @ 14:04:03 #44
134944 Hi_flyer
Van alles te melden
pi_78589585
Heeft iemand een idee wat hier fout gaat

Ik stel een filepath samen, laat checken of die file bestaat en vervolgens dus een ByRef argument type mismatch; Snap er helemaal niks van, het is praktisch het allerlaatste wat ik nog werkende moet krijgen en dan is het af...



EDIT

Ik heb in de function de filelocation niet meer als string gedimensioneerd. Nu krijg ik een type mismatch in:

If Dir(filelocation) = False Then

En zo ploeteren we voort....

[ Bericht 23% gewijzigd door Hi_flyer op 01-03-2010 14:12:16 ]
  maandag 1 maart 2010 @ 14:14:38 #45
249182 Holy_Goat
mhèèhèhè
pi_78590098
Ben je er al F8-end doorheen gelopen?
  maandag 1 maart 2010 @ 14:20:59 #46
249182 Holy_Goat
mhèèhèhè
pi_78590380
Trouwens, je dir functie moet een beetje anders:

bijvoorbeeld
1
2
3
4
5
If Len(Dir(filelocation)) = 0 Then
    checkfile = false
Else
    checkfile = true
End If


Want de dir functie geeft je niet een boolean terug maar een string.
(in vba tenminste, weet niet of dit in .net ook zo is)

Zelfde geintje kan met mappen testen:
1
2
3
4
5
If Len(Dir(path, vbDirectory)) = 0 Then   'met path niet eindigend op een \
   'map bestaat niet
else
   'map bestaat
end if
  maandag 1 maart 2010 @ 14:23:14 #47
134944 Hi_flyer
Van alles te melden
pi_78590493
quote:
Op maandag 1 maart 2010 14:20 schreef Holy_Goat het volgende:
Trouwens, je dir functie moet een beetje anders:

bijvoorbeeld
[ code verwijderd ]

Want de dir functie geeft je niet een boolean terug maar een string.
(in vba tenminste, weet niet of dit in .net ook zo is)
Dat is dus de oplossing

Op de een of andere manier zat in mn hoofd dat dir() een true of false geeft al naar gelang de file bestaat of niet.
  maandag 1 maart 2010 @ 14:24:24 #48
249182 Holy_Goat
mhèèhèhè
pi_78590561
quote:
Op maandag 1 maart 2010 14:23 schreef Hi_flyer het volgende:

[..]

Dat is dus de oplossing

Op de een of andere manier zat in mn hoofd dat dir() een true of false geeft al naar gelang de file bestaat of niet.
Wat ie wel soms doet (heb ik 1x gemerkt op een pc) is "false" als string terug geven weird iig. Maar das niet gebruikelijk. Succes nog. Wat voor app btw?
  maandag 1 maart 2010 @ 15:40:54 #49
134944 Hi_flyer
Van alles te melden
pi_78593703
quote:
Op maandag 1 maart 2010 14:24 schreef Holy_Goat het volgende:

[..]

Wat ie wel soms doet (heb ik 1x gemerkt op een pc) is "false" als string terug geven weird iig. Maar das niet gebruikelijk. Succes nog. Wat voor app btw?
Hou je vast, ik ben er al een jaar mee bezig Heb dan ook alles zelf moeten aanleren en doe het tussen mijn gewone werk door.

De basis is een Excel-database (heb de pest aan Access, kan ik niet mee omgaan). Gebruikers kunnen op een userform gegevens ingeven die vervolgens in een bestandje opgeslagen worden. Ik krijg dan als superuser een mailtje dat een gebruiker iets ingevoerd heeft en kan vervolgens deze gegevens inladen en in de database stoppen.

Met deze gegevens maak ik een bepaald produkt met behulp van LabVIEW. Excel schrijft een recept dat ik inlees in LabVIEW en zijn ding laat doen. Tijdens het maken van het produkt wordt veel data verzameld (1 a 1,5 MB) die opgeslagen wordt in het TDMS-format.

Na de produktie voer ik in excel een aantal gegevens in, behorende bij die produktie. En dan het mooie: Excel leest de TDMS-file in, analyseert de gegevens, maakt overzichtelijke grafiekjes, exporteert de grafiekjes etc.

Als een gebruiker nu (via een database userform) in de database kijkt, krijgt die netjes de mogelijkheid om direkt in grafiekvorm de belangrijkste parameters te bekijken.

Er zit nog heeeel veel omheen, zoals voorraadbeheer, printen van labels, runsheets etc. Eigenlijk te veel om op te noemen. Met name LabVIEW-programma was een hoop werk, maar het resultaat is wmb iets om trots op te zijn.

Ik kan helaas niet te concreet zijn, anders had ik nog wel wat mooie screendumps geplaatst.
  maandag 1 maart 2010 @ 16:02:01 #50
249182 Holy_Goat
mhèèhèhè
pi_78594540
leuk ikzelf heb op dit moment ook een aantal leuke projectjes draaien
voor een groot bedrijf in NL, US, Zwitserland en nu onlangs ook china een applicatie om
de basisprijzen uit te rekenen van circa 100.000 klant-productcombinaties Of on the fly accurate informatie geven aan een accountmanager die bij een nieuwe klant zit te werken.

Zit alleen geregeld te kutten met problemen die optreden bij een citrix office 2003 server en niet op mijn gewone desktop pc das pas vervelend.
  maandag 1 maart 2010 @ 16:03:50 #51
249182 Holy_Goat
mhèèhèhè
pi_78594626
(hoe doe jij dat geautomatiseerd mailen btw?)
  maandag 1 maart 2010 @ 16:43:20 #52
134944 Hi_flyer
Van alles te melden
pi_78596313
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Sub SendMail(location)
    'msg
    Dim OutApp As Object
    Dim OutMail As Object
    Dim strbody As String
    Dim FilenameStr As String
    Dim ccaddress As String
    Dim name As String
    MakeFileForEmail
    name = Range("D5")
    ccaddress = Range("N8")
        Set OutApp = CreateObject("Outlook.Application")
        OutApp.Session.Logon
        Set OutMail = OutApp.CreateItem(0)
 
        strbody = "Hi xxx," & vbNewLine & vbNewLine & _
            runbody
 
        On Error Resume Next
        With OutMail
            .to = "xxx@xx.nl"
            .CC = ccaddress
            .BCC = "xxx@xx.nl"
            .Subject = "bladiebla request from " & name
            .Body = strbody
            .Display   'or use .Send
        End With
        On Error GoTo 0
        MsgBox "Email sent to xxx, xxx and " & name & "!"

        Set OutMail = Nothing
        Set OutApp = Nothing

End Sub


De body van de e-mail maak ik in een subje. Het is dus vrij eenvoudig. Een nadeel is dat je besturingssysteem een waarschuwing geeft als je .send in plaats van .display doet. Anders zou je eenvoudig een macro kunnen schrijven waarmee je een mailserver aardig kan belasten/platleggen.

Overigens kan je als je wilt wel 'onetische zaken' uitvoeren met excel. Ik kan bijv (doe ik niet) mailtjes van collega's lezen mbv Excel of hun persoonlijke agenda inkijken, of hun 'my documents' leegtrekken.
  maandag 1 maart 2010 @ 16:52:40 #53
249182 Holy_Goat
mhèèhèhè
pi_78596705
Die sub gebruik ik ook bijna letterlijk voor een koppeling met CRM.
Ik heb wel een leuk progsel voor je overigens om de .display wel te laten werken met .send
Verder nog een ander leuk ding: automatisch tabs bij stukjes "vieze" code inbrengen met 1 rechtermuisknop in vba. Per procedure, module, project, etc.

auto indent
outlook advanced security (mapilab)
  maandag 1 maart 2010 @ 16:54:05 #54
249182 Holy_Goat
mhèèhèhè
pi_78596763
quote:
Op maandag 1 maart 2010 16:43 schreef Hi_flyer het volgende:

[ code verwijderd ]

De body van de e-mail maak ik in een subje. Het is dus vrij eenvoudig. Een nadeel is dat je besturingssysteem een waarschuwing geeft als je .send in plaats van .display doet. Anders zou je eenvoudig een macro kunnen schrijven waarmee je een mailserver aardig kan belasten/platleggen.

Overigens kan je als je wilt wel 'onetische zaken' uitvoeren met excel. Ik kan bijv (doe ik niet) mailtjes van collega's lezen mbv Excel of hun persoonlijke agenda inkijken, of hun 'my documents' leegtrekken.
onethische zaken kun je met alle programmeertalen. Maarja, daar doe je het (meestal) niet voor he
  maandag 1 maart 2010 @ 17:16:22 #55
62215 qu63
..de tijd drinkt..
pi_78597752
in VBA is het ook leuk om autimagisch een random scheldwoord neer te gooien in je document Maar dat werkt natuurlijk alleen als je op een gedeelde pc werkt..
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
  maandag 1 maart 2010 @ 17:18:07 #56
249182 Holy_Goat
mhèèhèhè
pi_78597810
quote:
Op maandag 1 maart 2010 17:16 schreef qu63 het volgende:
in VBA is het ook leuk om autimagisch een random scheldwoord neer te gooien in je document Maar dat werkt natuurlijk alleen als je op een gedeelde pc werkt..
of als je behorlijk schyzo bent

Maar serieus... vba kan behoorlijk schadelijk zijn als je niet weet wat het doet (als je het krijgt van iemand).
Op middelbare eens een excel bestand rondgestuurd. Als macro opende sloopte die alles wat niet beveiligd was uit de program files maarja, laten we zeggen dat het onschuldig vermaak was. Achteraf had ik ook niet gedacht dat iemand ook echt op de knop 'kill my program files' zou drukken.

nee. ben er niet trots op... en doe dit soort apenkool niet meer
pi_78607988
ëén goedenavond!!

Het volgende probleem in excel...

#waarde!

wat nu?
pi_78608678


Ik probeer het volgende:

"= + selectie van een rij ENTER'

Dan dus die melding....
Gaat in de rest van het werkblad ok, sommige vakken geven deze melding...

Alvast bedankt voor de hulp!
  maandag 1 maart 2010 @ 21:23:06 #59
249182 Holy_Goat
mhèèhèhè
pi_78610335
zorg wel ff dat al die cellen geselecteerd ook daadwerkelijk getallen bevatten.
  dinsdag 2 maart 2010 @ 10:22:24 #60
85514 ralfie
!Yvan eht nioj
pi_78626080
@Hi_flyer

besef je wel dat dit

dim a, b, c as String

hetzelfde is als
dim a as variant, b as variant, c as string?

en je dus eigenlijk
dim a as string, b as string, c as string
bedoelt?

Verder nutteloze opmerking, maar wel een beetje snelheidswinst.
pi_78627017
quote:
Op dinsdag 2 maart 2010 10:22 schreef ralfie het volgende:
@Hi_flyer

besef je wel dat dit

dim a, b, c as String

hetzelfde is als
dim a as variant, b as variant, c as string?

en je dus eigenlijk
dim a as string, b as string, c as string
bedoelt?

Verder nutteloze opmerking, maar wel een beetje snelheidswinst.
Volgens de VBA help niet: http://msdn.microsoft.com/en-us/library/7ee5a7s1(VS.80).aspx

halverwege de pagina staat de volgende code namelijk
1
2
Dim a, b, c As Single, x, y As Double, i As Integer
' a, b, and c are all Single; x and y are both Double
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 2 maart 2010 @ 10:50:24 #62
249182 Holy_Goat
mhèèhèhè
pi_78627059
Ralfie, ben ik niet met je eens.

Kijk ook even hier
quote:
Different Types.
You can specify different data types for different variables by using a separate As clause for each variable you declare. Alternatively, you can declare several variables to be of the same type by using a common As clause. Each variable takes the data type specified in the first As clause encountered after its variablename part.

Dim a, b, c As Single, x, y As Double, i As Integer
' a, b, and c are all Single; x and y are both Double;
  dinsdag 2 maart 2010 @ 10:50:51 #63
249182 Holy_Goat
mhèèhèhè
pi_78627079
whehehe net ff eerder jij
  dinsdag 2 maart 2010 @ 10:53:44 #64
85514 ralfie
!Yvan eht nioj
pi_78627179
Grappig

1
2
3
Dim a As String, b, c As String
    a = 12
    MsgBox TypeName(a)

geeft string
terwijl
1
2
3
Dim a, b, c As String
    a = 12
    MsgBox TypeName(a)

geeft integer

probeer maar!
  dinsdag 2 maart 2010 @ 10:57:54 #65
249182 Holy_Goat
mhèèhèhè
pi_78627343
Hmm ralfie, das inderdaad waar :s
Naja, gelukkig dim ik alles stuk voor stuk altijd, met

dim a as string
dim b as string
dim c as string

maar het is wel erg raar dat dit zo werkt!
pi_78628512
Heel bizar:
1
2
3
4
5
6
7
8
9
10
11
Sub dimtest1()

Dim a, b, c As String

a = 12
b = 12
c = 12

MsgBox TypeName(a) & TypeName(b) & TypeName(c)

End Sub

Geeft integer integer string

1
2
3
4
5
6
7
8
9
10
11
12
Sub dimtest2()

Dim a As String
Dim b, c As String

a = 12
b = 12
c = 12

MsgBox TypeName(a) & TypeName(b) & TypeName(c)

End Sub

Geeft string integer string

Blijkbaar wordt alleen de laatste variabele echt gedimd. Is dus niet Zoals het door microsoft wordt uitgelegd.
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_78629135
Wat vaag! Ik was ook altijd in de veronderstelling dat ze allemaal als String gedimd werden!
Dat verklaart wel wat, maar meestal Dim ik ze ook stuk voor stuk zoals Holy.
pi_78630307
De uitleg die ik en holy-goat vonden blijkt dus voor de "echte" visual basic en dot-net visual basic te zijn. Daar werkt dat wel zoals wij zeiden maar bij visual basic for applications (VBA) werkt het dus blijkbaar toch weer anders.
Het is dus zaak om in excel al je variabelen apart te DIMmen of in ieder geval in de gaten houden dat alleen de laatste variabele in een DIM rijtje echt geDIMt wordt en de rest variant blijft totdat er gegevens in de variabele worden gedouwd.
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 2 maart 2010 @ 12:11:50 #69
134944 Hi_flyer
Van alles te melden
pi_78630561
Wow dit is nieuw voor me en wellicht ook belangrijk. Ik dim vaak een rijtje variabelen en op deze manier vreet dat wel wat geheugen (netwerk is hier meer de bottleneck though).
  dinsdag 2 maart 2010 @ 12:26:42 #70
249182 Holy_Goat
mhèèhèhè
pi_78631154
Even tussen haakjes: aangezien ik mezelf alles aangeleerd heb wat vba betreft:

zijn er wat stukken tekst die ik echt gelezen móet hebben? Ik heb vaak het idee dat ik nog best "ranzig" programmeer namelijk.

En momenteel doe ik alles nog in vba behorende bij office 2003. Zou ik stiekem wel eens een keer .net moeten gaan leren?

Verder nog een subvraagje:
Kan ik sub of subsubclasses maken in vba?
Voorbeeld: variabele diersoorten.kat.poot.lengte
pi_78631502
Holy, wat ikzelf wel belangrijk vind mbt 'netjes' programmeren zijn
- Inspringen voor bv loops en Ifs
- Leszynski naming convention voor controls en variables: http://en.wikipedia.org/wiki/Leszynski_naming_convention
pi_78632346
quote:
Op dinsdag 2 maart 2010 12:26 schreef Holy_Goat het volgende:
Even tussen haakjes: aangezien ik mezelf alles aangeleerd heb wat vba betreft:

zijn er wat stukken tekst die ik echt gelezen móet hebben? Ik heb vaak het idee dat ik nog best "ranzig" programmeer namelijk.

En momenteel doe ik alles nog in vba behorende bij office 2003. Zou ik stiekem wel eens een keer .net moeten gaan leren?

Verder nog een subvraagje:
Kan ik sub of subsubclasses maken in vba?
Voorbeeld: variabele diersoorten.kat.poot.lengte
Leer arrays te gebruiken, dat heeft mij ontzettend veel ruimte en snelheid opgeleverd. Zeker als je bepaalde handelingen door een hele sheet wilt uitvoeren.
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 2 maart 2010 @ 14:07:16 #73
85514 ralfie
!Yvan eht nioj
pi_78635072
quote:
Op dinsdag 2 maart 2010 12:26 schreef Holy_Goat het volgende:
Even tussen haakjes: aangezien ik mezelf alles aangeleerd heb wat vba betreft:

zijn er wat stukken tekst die ik echt gelezen móet hebben? Ik heb vaak het idee dat ik nog best "ranzig" programmeer namelijk.
De allerbelangrijkste eye-opener voor mij was dat een range in een keer omgezet kan worden naar een variant (als array)

Dim w as variant
w = range(a1:b2);
MsgBox w(1,1)

en dit is vele malen sneller als met for en/of foreach door je cellen te gaan

andersom kan ook

range(a1:b2) = w

als je dus een berekening gaat doen op een zooi cellen, stop de waarden dan in een variant, doe je berekening, en zet je waarden terug.


Vergelijk
1
2
3
4
5
6
7
8
Dim w As Variant
    w = Range("A1:Z1502")
    For x = 1 To UBound(w)
        For y = 1 To UBound(w, 2)
            w(x, y) = w(x, y) * 26 + 45 / 7 + w(x, y)
        Next y
    Next x
    Range("AA1:AZ1502") = w


versus
1
2
3
4
For Each cell In Range("A1:Z1502")
        q = cell.Value
        cell.Offset(0, 26).Value = q * 26 + 45 / 7 + q
    Next cell

De eerste code is bij deze range vol random getallen 100 x sneller, bij application.screenupdating =false en applicaiton.calculation=xlmanual nog zeker 10x sneller. Geen overbodige luxe bij een taaltje waarvan snelheid toch wel het grootste probleem is (mijns inziens)
  dinsdag 2 maart 2010 @ 14:17:43 #74
249182 Holy_Goat
mhèèhèhè
pi_78635506
Arrays gebruik ik té vaak
Maar vraag me soms wel af of dingen niet sneller kunnen, dat is in mijn geval vaak ook een bottleneck.
Ik heb soms arrays met 100.000+ waarden, en dan wil ik snel wat opzoeken in die array, maar dan wel 1000x achter elkaar iets opzoeken. Dan is een for loop gewoon te traag. (gebruik een binary search methode).

Waar ik me nu nog aan stoor soms is langzaam inladen van data.
Een sheet met 8 kolommen en een x aantal rijen (niet van te voren bekend) wil ik dan naar 8 aparte arrays schrijven. (niet naar een X * 8 2dim array). Ik doe dat nu nog door een while loop te gebruikend die data inleest (steeds redimensionen ook) tot de arrays gevuld zijn. Dit kan dus veel sneller ralph?

Voorbeeld van bestand: hier

Ook zou ik dus graag die subclasses willen gebruiken als mogelijk.

Verder gebruik ik gelukkig wel tabs, en gebruik veel comments
Alleen zijn mijn debug technieken volgens mij niet zo best.
Error handlers inbouwen ook niet. daar zou ik wel wat beter in willen worden.

[ Bericht 8% gewijzigd door Holy_Goat op 02-03-2010 14:23:43 ]
pi_78635835
quote:
Op dinsdag 2 maart 2010 14:07 schreef ralfie het volgende:

[..]

De allerbelangrijkste eye-opener voor mij was dat een range in een keer omgezet kan worden naar een variant (als array)

Dim w as variant
w = range(a1:b2);
MsgBox w(1,1)

Wist ik niet.
  dinsdag 2 maart 2010 @ 15:06:39 #76
62215 qu63
..de tijd drinkt..
pi_78637597
quote:
Op maandag 1 maart 2010 10:36 schreef Deetch het volgende:

[..]

Helaas geen tijd om uitgebreid te coderen.

Echter een principe schetsje ziet er mi als volgt uit.
[ code verwijderd ]
Helaas is mijn kennis van VBA te klein (nihil namelijk) om dit zelf verder uit te werken

Kan iemand me op weg helpen?
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_78639036
quote:
Op dinsdag 2 maart 2010 15:06 schreef qu63 het volgende:

[..]

Helaas is mijn kennis van VBA te klein (nihil namelijk) om dit zelf verder uit te werken

Kan iemand me op weg helpen?
goedverdoemme moet kabouter wesley u dan ook alles voorkauwen
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 2 maart 2010 @ 15:47:15 #78
62215 qu63
..de tijd drinkt..
pi_78639236
quote:
Op dinsdag 2 maart 2010 15:43 schreef Deetch het volgende:

[..]

goedverdoemme moet kabouter wesley u dan ook alles voorkauwen
Ja
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_78646318
quote:
Op dinsdag 2 maart 2010 15:47 schreef qu63 het volgende:

[..]

Ja
vlats

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Sub random_x()

opnieuw:

Dim aantal As Integer
Dim lengte As Integer
Dim lowerbound As Integer
Dim upperbound As Integer
Set myRange = Range("A140:A867")

aantal = InputBox("Geef aantal x-en") '
lengte = myRange.Cells.Count - 1
lowerbound = 140
upperbound = lowerbound + lengte

ReDim myArray(aantal) As Integer

'LET OP: i betekent ( i ) zonder spaties
For i = 1 To aantal
    myArrayi = Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
Next i

'x-jes neerzetten
For j = 1 To aantal
    ActiveSheet.Cells(myArray(j), 1).Value = "X"
Next j

'check op aantal ingevulde x-en ivm rnd functie
check = Application.WorksheetFunction.CountIf(myRange, "X")
vraag = MsgBox("Wil je opnieuw laten invullen?" & vbNewLine & "Gevraagde aantal x-en: " & aantal & vbNewLine & "Aantal ingevulde x-en: " & check, vbRetryCancel)

If vraag = vbRetry Then
    Range("A140:A867").Select
    Selection.ClearContents
    Range("A139").Select
    GoTo opnieuw
End If

End Sub

Probleem met random is dat je elke keer andere getallen krijgt en je dus nooit van te voren weet hoeveel x-jes je krijgt als je om 140 x-jes vraagt. Hiervoor is de msgbox aan het einde zodat je een andere waarde voor de gevraagde hoeveelheid x-jes kunt invoeren totdat je er wel precies 140 krijgt.
Het kan vast eleganter maar daar had ik geen tijd voor.
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_78646398
Misschienw erkt deze code wel beter: http://www.ozgrid.com/VBA/RandomNumbers.htm
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 2 maart 2010 @ 19:06:21 #81
249182 Holy_Goat
mhèèhèhè
pi_78647225
**wacht op clever antwoord van ralphie op vraag**
  dinsdag 2 maart 2010 @ 21:22:28 #82
85514 ralfie
!Yvan eht nioj
pi_78655110
quote:
Op dinsdag 2 maart 2010 19:06 schreef Holy_Goat het volgende:
**wacht op clever antwoord van ralphie op vraag**
je kunt 8x een range inlezen of 1x alle kolommen en die in vba splitsen in meerdere arrays. Geen idee welke sneller is, maar ik denk dat bij vele waarden de eerste methode het beste is.
Indien je gebruik maakt van variant = range(xxx) zit je altijd met een multidimensionale array, dus als je dat niet wilt, zul je de hele reut in een keer in moeten laden en daarna in vba met een for each je arrays maken

1
2
3
4
5
6
7
8
9
10
11
dim alles = range("b3:G" & Range("B65536").End(xlup).Row) 'laatste rij opzoeken via lookup
dim a1() as string,a2() as string,a3() as string 'je arrays
redim a1(1 to ubound(alles))
redim a2(1 to ubound(alles))
redim a3(1 to ubound(alles))

for x=1 to UBound(alles)
    a1(x) = alles(x,1)
    a2(x) = alles(x,2)
    a3(x) = alles(x,3)
next x

ofzoiets
  dinsdag 2 maart 2010 @ 21:39:08 #83
85514 ralfie
!Yvan eht nioj
pi_78656249
quote:
Op dinsdag 2 maart 2010 15:47 schreef qu63 het volgende:

[..]

Ja
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Sub randomx()
    Dim rng As Range, aantal As Integer, aantalcellen As Integer, value As Integer
    
    rng = "A1:A100" 'vul hier je range in
    aantal = InputBox("Hoeveel xjes ?", "seriously", 0)
    Dim x As Variant
    x = Range("A1:A100")
    aantalcellen = UBound(x)
    If UBound(x, 2) > 1 Then
        MsgBox "Bereik is ongeldig, slechts support voor 1 kolom!"
        Exit Sub
    ElseIf aantal < 1 Or aantal >= aantalcellen Then
        MsgBox "Invoer is ongeldig, teveel of te weinig"
        Exit Sub
    End If
    Randomize
    Do
        value = Int(Rnd * aantalcellen)
        If Not x(value, 1) = "x" Then
            x(value, 1) = "x"
            aantal = aantal - 1
        End If
    Loop While aantal > 0
    Range("A1:A100") = x
End Sub



daar deze code in een loopje door blijft gaan totdat er een x aantal xjes zijn gezet, kan het zijn dat ie oneindig lang door blijft gaan. Je zou een timer of iets dergelijke hiervoor in de do while loop moeten bouwen om dit te voorkomen
  dinsdag 2 maart 2010 @ 22:09:48 #84
249182 Holy_Goat
mhèèhèhè
pi_78658352
quote:
Op dinsdag 2 maart 2010 21:22 schreef ralfie het volgende:

[..]

je kunt 8x een range inlezen of 1x alle kolommen en die in vba splitsen in meerdere arrays. Geen idee welke sneller is, maar ik denk dat bij vele waarden de eerste methode het beste is.
Indien je gebruik maakt van variant = range(xxx) zit je altijd met een multidimensionale array, dus als je dat niet wilt, zul je de hele reut in een keer in moeten laden en daarna in vba met een for each je arrays maken
[ code verwijderd ]

ofzoiets
dus dit is veel sneller als bijvoorbeeld:

1
2
3
4
5
6
7
8
9
10
11
12
13
i=2
do while cells(i,1) <>""
   redim preserve array1(i-1)
...
   redim preserve array8(i-1)
   
   array1(i-1)=cells(i,1)
...
   array8(i-1)=cells(i,8)


    i=i+1
loop
  woensdag 3 maart 2010 @ 12:45:48 #85
278786 EINZ
WHEEEH! HEHEH!
pi_78677598
Welke fomule pas ik toe voor de inverse cosinus in excel?
Deze reply is uitsluitend bestemd voor geadresseerde(n). Dit bericht kan informatie bevatten die vertrouwelijk is. Indien u niet de geadresseerde bent, wordt u er hierbij op gewezen dat u geen recht hebt kennis te nemen van deze reply.
pi_78678935
quote:
Op woensdag 3 maart 2010 12:45 schreef EINZ het volgende:
Welke fomule pas ik toe voor de inverse cosinus in excel?
http://office.microsoft.com/nl-nl/excel/HP052089811043.aspx

BOOGCOS() in NL.
ACOS() in EN.
  woensdag 3 maart 2010 @ 15:15:39 #87
278786 EINZ
WHEEEH! HEHEH!
pi_78684275
quote:
Op woensdag 3 maart 2010 13:14 schreef DaFan het volgende:

[..]

http://office.microsoft.com/nl-nl/excel/HP052089811043.aspx

BOOGCOS() in NL.
ACOS() in EN.
Neah! Inverse cosinus van 0,43 is iets van 64 graden, en boogcos geeft me als antwoord 1,12 aan.
Deze reply is uitsluitend bestemd voor geadresseerde(n). Dit bericht kan informatie bevatten die vertrouwelijk is. Indien u niet de geadresseerde bent, wordt u er hierbij op gewezen dat u geen recht hebt kennis te nemen van deze reply.
pi_78684806
quote:
Op woensdag 3 maart 2010 15:15 schreef EINZ het volgende:

[..]

Neah! Inverse cosinus van 0,43 is iets van 64 graden, en boogcos geeft me als antwoord 1,12 aan.
Geometrie-noob aan Geometrie-expert:
Ik weet weinig van cos, sin en boogcos. Ik heb wel eens gemerkt dat je de uitkomst niet in graden krijgt:
Wie weet zegt je het iets als je weet dat voor Excel het volgende geldt::

BOOGCOS(-1) = PI
BOOGCOS(0) = 0,5*PI
BOOGCOS(1) = 0

Misschien moet je de uitslag wel vermenigvuldigen met 180/pi.

boogcos(0,43)= bij Excel: 1,12630355
1,12630355 x 180/pi = 64,53243986

Klopt 't zo?


[ Bericht 17% gewijzigd door Twentsche_Ros op 03-03-2010 15:33:55 ]
Je kunt beter één kaars opsteken dan duizend maal de duisternis vervloeken.
pi_78685197
Staat ook in de voorbeelden in de link die ik heb gegeven.

BOOGCOS(0,43)*(180/PI()) geeft wel 64,53 aan.
Ook GRADEN(BOOGCOS(0,43)) geeft dat antwoord.
quote:
Als u de boogcosinus wilt uitdrukken in graden, vermenigvuldigt u het resultaat met 180/PI() of gebruikt u de functie GRADEN.
pi_78686330
Casus!

Ik heb een werkblad met drie kolommen, kolom 1 is gevuld met getal, kolom 2 met tekst en nu de crux kolom 3 ook met tekst, maar dit zijn telkens 3 woorden die met een tab gescheiden zijn.

Ik wil dus graag de cellen in kolom C splitsen naar drie cellen met één woord.

Kan dat?
I got soul, but I'm not a soldier
pi_78686487
Volgende probleem.

Principe:

Opbrengsten periode 1 t/m 3 = 1.000

Opgebouwd uit een basisopbrengst plus extra opbrengst

Periode 1: basisopbrengst
Periode 2: basisopbrengst + 20
Periode 3: basisopbrengst + 50

Weet iemand met welke excel formule ik de basisopbrengst kan berekenen (als dit überhaupt mogelijk is)?
"Sometimes you eat the bear, and sometimes the bear eats you."
pi_78686736
quote:
Op woensdag 3 maart 2010 15:58 schreef ThatsMeThatsRight het volgende:
Casus!

Ik heb een werkblad met drie kolommen, kolom 1 is gevuld met getal, kolom 2 met tekst en nu de crux kolom 3 ook met tekst, maar dit zijn telkens 3 woorden die met een tab gescheiden zijn.

Ik wil dus graag de cellen in kolom C splitsen naar drie cellen met één woord.

Kan dat?
Je kunt 1 kolom verdelen over drie via "Data" en "Tekst naar kolommen". Dan moet je de bewuste kolom selecteren. Maar:
Is dit een eenmalige exercitie, of krijg je telkens een kolom met deze 3 woorden aangeleverd?
Je kunt beter één kaars opsteken dan duizend maal de duisternis vervloeken.
pi_78686843
quote:
Op woensdag 3 maart 2010 16:01 schreef Ratjepoepe het volgende:
Volgende probleem.

Principe:

Opbrengsten periode 1 t/m 3 = 1.000

Opgebouwd uit een basisopbrengst plus extra opbrengst

Periode 1: basisopbrengst
Periode 2: basisopbrengst + 20
Periode 3: basisopbrengst + 50

Weet iemand met welke excel formule ik de basisopbrengst kan berekenen (als dit überhaupt mogelijk is)?
Is 20 en 50 altijd vast?
Dan is het simpel namelijk...

(Totaal - 70)/3
pi_78686962
quote:
Op woensdag 3 maart 2010 16:01 schreef Ratjepoepe het volgende:
Volgende probleem.

Principe:

Opbrengsten periode 1 t/m 3 = 1.000

Opgebouwd uit een basisopbrengst plus extra opbrengst

Periode 1: basisopbrengst
Periode 2: basisopbrengst + 20
Periode 3: basisopbrengst + 50

Weet iemand met welke excel formule ik de basisopbrengst kan berekenen (als dit überhaupt mogelijk is)?
3b+70=1000

3b = 930

b = 310

Of als "+ 20" eigenlijk is: "x 1,2"

b+1,2b+1,5b=1000
3,7b = 1000

b = 1000/3,7 = 270,27

Een stukje ouderwetse wiskunde-vergelijking volgens mij.
Je kunt beter één kaars opsteken dan duizend maal de duisternis vervloeken.
pi_78687075
Ja, het was ook niet helemaal goed verwoord. Het gaat namelijk alleen om het principe, dit voorbeeld lukt me ook wel

Het gaat om heel veel factoren die veranderen en over heel veel perioden dus onmogelijk om het op deze manier te doen. Ben dus eigenlijk echt op zoek naar een formule
"Sometimes you eat the bear, and sometimes the bear eats you."
  woensdag 3 maart 2010 @ 16:22:44 #96
24860 Gitarist
Ondertitel?
pi_78687523
Ik heb een Excel werkblad waarop ik gegevens wil tonen uit een ander blad. Dit doe ik d.m.v. een verwijzing.

Het zijn echter getallen per maand, dus ik wil bij januari de formule van de verwijzing erin zetten en die dan vervolgens de formule doortrekken naar december, zodat in elke cel een verwijzing komt te staan naar de corresponderende cel in het bronblad.

Nu is mijn probleem echter dat Excel er standaard een absolute verwijzing van maakt (dus met $ in de formule), maar ik wil dat hij standaard een relatieve verwijzing ervan maakt, zodat ik kan doorvoeren.
Ik kan wel telkens die $ gaan weghalen, maar dat is nogal bewerkelijk.

Ik kan er in de opties niks van vinden... iemand een idee?

Ik gebruik Office 2003 in de Nederlandse taal.
me·lo·maan\ (de ~ (m.), -manen)
1 iem. met een overdreven liefde voor muziek
  woensdag 3 maart 2010 @ 16:26:06 #97
278786 EINZ
WHEEEH! HEHEH!
pi_78687716
quote:
Op woensdag 3 maart 2010 15:37 schreef DaFan het volgende:
Staat ook in de voorbeelden in de link die ik heb gegeven.

BOOGCOS(0,43)*(180/PI()) geeft wel 64,53 aan.
Ook GRADEN(BOOGCOS(0,43)) geeft dat antwoord.
[..]


Ah okee. De afdeling feestneuzen dankt u.
Deze reply is uitsluitend bestemd voor geadresseerde(n). Dit bericht kan informatie bevatten die vertrouwelijk is. Indien u niet de geadresseerde bent, wordt u er hierbij op gewezen dat u geen recht hebt kennis te nemen van deze reply.
pi_78688050
quote:
Op woensdag 3 maart 2010 16:12 schreef Ratjepoepe het volgende:
Ja, het was ook niet helemaal goed verwoord. Het gaat namelijk alleen om het principe, dit voorbeeld lukt me ook wel

Het gaat om heel veel factoren die veranderen en over heel veel perioden dus onmogelijk om het op deze manier te doen. Ben dus eigenlijk echt op zoek naar een formule
Wederom wiskunde

Totaal = (3x) + y + z

Succes Ben ik nooit een held in geweest met 3 variabelen.
pi_78689241
quote:
Op woensdag 3 maart 2010 16:22 schreef Gitarist het volgende:
Ik heb een Excel werkblad waarop ik gegevens wil tonen uit een ander blad. Dit doe ik d.m.v. een verwijzing.

Het zijn echter getallen per maand, dus ik wil bij januari de formule van de verwijzing erin zetten en die dan vervolgens de formule doortrekken naar december, zodat in elke cel een verwijzing komt te staan naar de corresponderende cel in het bronblad.

Nu is mijn probleem echter dat Excel er standaard een absolute verwijzing van maakt (dus met $ in de formule), maar ik wil dat hij standaard een relatieve verwijzing ervan maakt, zodat ik kan doorvoeren.
Ik kan wel telkens die $ gaan weghalen, maar dat is nogal bewerkelijk.

Ik kan er in de opties niks van vinden... iemand een idee?

Ik gebruik Office 2003 in de Nederlandse taal.
F2 (edit) en daarna F4 (die elimineert stap voor stap de $-tekens)
Je kunt ook doen Ctrl-H (vervangen): vervang $ door (niks)

Maar:
Als je over de hele linie een relatieve verwijzing wil, moet je alleen de bovenste ont-$-en.
En dan copieer je de bovenste naar beneden.
Dan krijg je juist die relatieve verwijzing.
Als je eerst een hele rij absolute verwijzingen hebt (voorzien van allerlei $-tekens), en je gaat de $-tekens deleten, schiet je nog geen … op.
Dan blijft ie verwijzen naar 1 cel.
Je kunt beter één kaars opsteken dan duizend maal de duisternis vervloeken.
  woensdag 3 maart 2010 @ 17:08:42 #100
24860 Gitarist
Ondertitel?
pi_78689789
quote:
Op woensdag 3 maart 2010 16:57 schreef Twentsche_Ros het volgende:

[..]

F2 (edit) en daarna F4 (die elimineert stap voor stap de $-tekens)
Je kunt ook doen Ctrl-H (vervangen): vervang $ door (niks)

Maar:
Als je over de hele linie een relatieve verwijzing wil, moet je alleen de bovenste ont-$-en.
En dan copieer je de bovenste naar beneden.
Dan krijg je juist die relatieve verwijzing.
Als je eerst een hele rij absolute verwijzingen hebt (voorzien van allerlei $-tekens), en je gaat de $-tekens deleten, schiet je nog geen … op.
Dan blijft ie verwijzen naar 1 cel.
Top! Bedankt voor je antwoord!

Dat onderste begrijp ik, maar dat gaat helaas voor het document waar ik mee werk niet op. Maar toch bedankt voor het meedenken
me·lo·maan\ (de ~ (m.), -manen)
1 iem. met een overdreven liefde voor muziek
  donderdag 4 maart 2010 @ 17:31:05 #101
249182 Holy_Goat
mhèèhèhè
pi_78738207
testen op regiosettings

Omdat een tool die ik klus op dit moment nogal wijdverbreid gebruikt wordt (van shanghai tot nederland tot san francisco) is er na een tijdje een behoorlijk irritante feature naar boven komen drijven.

Sommige data wordt gedownload uit het administratiesysteem in een standaard tekst formaat. De ene data file heeft waarden als 1.000,00 en de andere als 1,000.00. Ofwel, punten en comma's omgedraaid. Zodra je dit vervolgens gaat inlezen (het zijn txt files) weet excel niet direct als je er een cdbl() overheen gooit of iets in het engels of in het 'nederlands' is opgezet. Zo kan 1.000,00 prima worden opgevat als 1. Maar ook als 1000000.

Anyways, ik heb er wel wat op gevonden om te kijken wat de ingestelde region is op de gebruiks pc, en dat doe ik als volgt.
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.
Kan dit ook wat netter? En eventueel: is er een manier om die waarde sowieso, onafhankelijk van de region setting, goed om te zetten? (nu laat ik even mogelijkheden als tekst vermeldingen 1000,00 1000.00 en 1000 buiten beschouwing. Wel een beetje consequentie is te eisen van de data downloaders)

Verder nog een vraagje
Is het wachten met een bep. tijd t nodig na een copy aanroep? Ik heb het idee dat het anders soms een beetjefout gaat in windows. Is dat onterecht?
ps: fncopyfile is een functie met errorhandler eromheen via
1
2
3
Dim fs
    Set fs = CreateObject("Scripting.FileSystemObject")
    fs.CopyFile Source, Destination

.
aanroep met 'wacht ding erna'
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.


[ Bericht 25% gewijzigd door Holy_Goat op 04-03-2010 20:30:50 ]
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')