abonnement Unibet Coolblue Bitvavo
  maandag 18 juni 2012 @ 13:10:11 #1
62215 qu63
..de tijd drinkt..
pi_113046937


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 meerder workbooks sheets kan selecteren voo afdrukken, een power replace die termen kan wijzigen in meerdere workbooks tegelijk en een formule vertaler, de formule in de actieve cell wordt in het engels weergegeven, je kan ook een engelse formule invoeren die dan in de actieve cell 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.

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.
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
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_113051877
quote:
0s.gif Op maandag 18 juni 2012 12:42 schreef xyntarsus het volgende:
thx voor de hulp.

kan dit trouwens ook zonder dat ik het menu krijg (dat ie automatisch cel B2 pakt?)
quote:
0s.gif Op maandag 18 juni 2012 13:09 schreef qu63 het volgende:

[..]

Dan krijg je
[code]
Sub fok()
If Range("B2").Value <> "" Then ActiveSheet.Name = Range("B2").Value
End Sub
[/code]

als ik t goed heb..
Of als je alle sheets van je workbook in 1 keer wilt doen:

1
2
3
4
5
6
7
8
Sub fok()

For Each sh In ActiveWorkbook.Worksheets
    sh.Activate
    If Range("B2").Value <> "" Then ActiveSheet.Name = Range("B2").Value
Next sh

End Sub
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_113088314
Hoe kan ik mijn grafiek aan mijn trendcurve linken, zodat ik de exacte waarde van de trend kan aflezen:



de waarde van die punten in de grafiek kan ik dus aflezen, maar hoe kan ik dus zien welke waarde die trend heeft op gelijke hoogte (heb er voor de duidelijkheid een verticaal rood lijntje doorheen getrokken)
pi_113089220
dat kan niet vanuit de ingevoegde trend.

Je kunt wel een nieuwe kolom aanmaken met daarin de vergelijking voor de trend.

stel:
A2:A20 = maanden
B2:B20 = getallen
nieuwe kolom C
in C2 zet je de formule =TREND($A$2:$A$20,$B$2;$B$20,A2)
deze formule trek je door naar beneden (tm C20)

grafiek maken met beide datasets erin en dan kun je de trendlijn wel aflezen.
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 19 juni 2012 @ 10:56:52 #5
85514 ralfie
!Yvan eht nioj
pi_113089569
hmm? je kunt toch gewoon rechtsklikken op de trendlijn en dan bij eigenschappen 'vergelijking in grafiek weergeven' aanvinken? Mocht je specifieke waarden nodig hebben gebruik je die formule om dat te berekenen
pi_113090196
quote:
0s.gif Op dinsdag 19 juni 2012 10:56 schreef ralfie het volgende:
hmm? je kunt toch gewoon rechtsklikken op de trendlijn en dan bij eigenschappen 'vergelijking in grafiek weergeven' aanvinken? Mocht je specifieke waarden nodig hebben gebruik je die formule om dat te berekenen
ja maar die formule klopt dus niet :(
pi_113091928
quote:
7s.gif Op dinsdag 19 juni 2012 11:19 schreef andreas612 het volgende:

[..]

ja maar die formule klopt dus niet :(
waarschijjnlijk moet je de datum waarvan je een waarde wilt weten nog omrekenen naar de seriele datum. Excel slaat een datum nl op als zoveel dagen na 0-januari-1900.
http://www.cpearson.com/excel/datetime.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
pi_113133482
Ik probeer de eerste positie van een getal te vinden in een string. Ik gebruik office 2007 taal = NL. Nu heb ik de volgende functie gevonden
=als(deel(vind.alles({0;1;2;3;4;5;6;7;8;9};A1&"0123456789"))>LENgte(A1);0;deel(vind.alles({0;1;2;3;4;5;6;7;8;9};A1 &"0123456789")))

op 1 of andere manier werkt die formule niet. Kunnen jullie even kijken? Ik ben al een tijdje bezig en heb ook veel gezocht op internet, vind wel dingen maar die lukken op eoa. manier niet. Thx alvast!
pi_113134444
quote:
0s.gif Op woensdag 20 juni 2012 10:32 schreef vogeltjesdans het volgende:
Het gaat om een excel document. Ik weet dat er een apart excel topic is, maar hier moet ook VBA code in dus ik post het even apart.

Waar het om gaat is het volgende. Ik heb een lijst met kolommen:
datum omschrijving behandelaar status
op deze kolommen pas ik een filter toe, waardoor ik makkelijk kan sorteren.

Wat ik wil is het volgende:
* selecteren op behandelaar
* afdrukbereik bepalen op behandelaar
* dit afdrukken

Dit heb ik in een macro gestopt (relatieve verwijzinng aangezet) met als volgend resultaat.
[ code zie onder ]

Dit werkt, maar de behandelaar heeft een telkens wisselend aantal rijen. Dus ik wil dat het afdrukbereik bepaald wordt op de rijen waar de betreffende behandelaar staat. Een soort =ALS functie, maar ik weet niet hoe ik dat in deze code moet invoeren.

Iemand?
Hier de code van vogeltjesdans

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub Sorteren()
ActiveCell.Offset(5, 4).Range("A1").Select    
ActiveWorkbook.Worksheets("blad1").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("blad1").AutoFilter.Sort.SortFields.Add Key:= _
ActiveCell.Offset(-3, 0).Range("A1"), SortOn:=xlSortOnValues, Order:= _
xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("blad1").AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply    
End With
ActiveCell.Offset(-1, -5).Range("A1:J17").Select
Selection.PrintOutCopies:=1, Collate:=True, IgnorePrintAreas:=False
End Sub

vervang Range("A1:J17").Select door
Range("A1", Range("J65536").End(xlUp)).Select en hij zou moeten werken

[ Bericht 13% gewijzigd door Deetch op 20-06-2012 11:36:47 (end sub niet gekopieerd) ]
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 20 juni 2012 @ 11:15:13 #10
85514 ralfie
!Yvan eht nioj
pi_113135088
quote:
0s.gif Op woensdag 20 juni 2012 10:32 schreef jakees het volgende:
Ik probeer de eerste positie van een getal te vinden in een string. Ik gebruik office 2007 taal = NL. Nu heb ik de volgende functie gevonden
=als(deel(vind.alles({0;1;2;3;4;5;6;7;8;9};A1&"0123456789"))>LENgte(A1);0;deel(vind.alles({0;1;2;3;4;5;6;7;8;9};A1 &"0123456789")))

op 1 of andere manier werkt die formule niet. Kunnen jullie even kijken? Ik ben al een tijdje bezig en heb ook veel gezocht op internet, vind wel dingen maar die lukken op eoa. manier niet. Thx alvast!
Het eerste probleem wat ik zie is dat deel() meerdere argumenten nodig heeft. Het tweede probleem is dat vind.alles (bij mij althans) slechts één tekst zoekt, en dus niet 1 of 2 of 3 of ...

Ik denk niet dat wat je wilt met louter excel formules te doen is (ik kan het mis hebben). Met VBA is het twee seconden werk.

Wat wel kan (maar erg omslachtig is dit):
1
2
3
B1 = A1 & "1234567890"
C1 = MIN(VIND.SPEC(1;B1);VIND.SPEC(2;B1);VIND.SPEC(3;B1);VIND.SPEC(4;B1);VIND.SPEC(5;B1);VIND.SPEC(6;B1);VIND.SPEC(7;B1);VIND.SPEC(8;B1);VIND.SPEC(9;B1);VIND.SPEC(0;B1))
D1 = ALS(C1>LENGTE(A1);-1;C1)
Iets korters zie ik zogauw niet in excel
pi_113135202
quote:
0s.gif Op woensdag 20 juni 2012 10:32 schreef jakees het volgende:
Ik probeer de eerste positie van een getal te vinden in een string. Ik gebruik office 2007 taal = NL. Nu heb ik de volgende functie gevonden
=als(deel(vind.alles({0;1;2;3;4;5;6;7;8;9};A1&"0123456789"))>LENgte(A1);0;deel(vind.alles({0;1;2;3;4;5;6;7;8;9};A1 &"0123456789")))

op 1 of andere manier werkt die formule niet. Kunnen jullie even kijken? Ik ben al een tijdje bezig en heb ook veel gezocht op internet, vind wel dingen maar die lukken op eoa. manier niet. Thx alvast!
Eerste positie van een getal (onderstaande functie bevestigen met CTRL+SHIFT+ENTER)
=MATCH(TRUE,ISNUMBER(-MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)),0)

Alle getallen uit een string (onderstaande functie bevestigen met CTRL+SHIFT+ENTER)
=--MID(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&{0,1,2,3,4,5,6,7,8,9})),SUM((LEN(A1)-LEN(SUBSTITUTE(A1,{0,1,2,3,4,5,6,7,8,9},"")))))

Let op dat je de CTRL+SHIFT+ENTER gebruikt ipv gewone enter anders werken bovenstaande functies niet

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 16% gewijzigd door Deetch op 20-06-2012 11:23:49 ]
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 20 juni 2012 @ 11:34:41 #12
112333 vogeltjesdans
cry me a river
pi_113135842
quote:
3s.gif Op woensdag 20 juni 2012 10:58 schreef Deetch het volgende:

[..]

Hier de code van vogeltjesdans
[ code verwijderd ]

vervang Range("A1:J17").Select door
Range("A1", Range("J65536").End(xlUp)).Select en hij zou moeten werken
Thanks! Maar als ik hem aanpas en uitvoer geeft hij een fout op de onderste regel, deze wordt geel:
Selection.PrintOutCopies:=1, Collate:=True, IgnorePrintAreas:=FalseEnd Sub.
Op vrijdag 14 mei 2021 @ 23:33 schreef Joopklepzeiker: Zonder twijfel is @vogeltjesdans de grootste smaakmaker en intelligentste persoon van heel KLB.
pi_113135906
quote:
0s.gif Op woensdag 20 juni 2012 11:34 schreef vogeltjesdans het volgende:

[..]

Thanks! Maar als ik hem aanpas en uitvoer geeft hij een fout op de onderste regel, deze wordt geel:
Selection.PrintOutCopies:=1, Collate:=True, IgnorePrintAreas:=FalseEnd Sub.
tussen False en End Sub moet een ENTER (foutje bij kopieren van jouw code)
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_113137742
quote:
3s.gif Op woensdag 20 juni 2012 11:18 schreef Deetch het volgende:

[..]

Eerste positie van een getal (onderstaande functie bevestigen met CTRL+SHIFT+ENTER)
=MATCH(TRUE,ISNUMBER(-MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)),0)

Alle getallen uit een string (onderstaande functie bevestigen met CTRL+SHIFT+ENTER)
=--MID(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&{0,1,2,3,4,5,6,7,8,9})),SUM((LEN(A1)-LEN(SUBSTITUTE(A1,{0,1,2,3,4,5,6,7,8,9},"")))))

Let op dat je de CTRL+SHIFT+ENTER gebruikt ipv gewone enter anders werken bovenstaande functies niet

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.
[ afbeelding ]
Deetch, zit jij op Excel of zo. 1 minpuntje aan je post. Het is niet duidelijk dat je op CTRL-SHIFT-ENTER moet drukken maar dat vergeef ik je ;-)

Toch nog een paar vraagjes. De eerste heb ik vertaald naar:
=VERGELIJKEN(WAAR;ISGETAL(-DEEL(A1;RIJ(INDIRECT("1:"&LENGTE(A1)));1));0) ik snap niet zo goed wat die doet.

Die 2e retourneert bij alle getallen in de string. Hartstikke mooi maar ik ben op zoek naar de 1e positie van het getal. Is daar nog makkelijk achter te komen. Bijvoorbeeld in de string. Oranjenummer1inBrazilie2014 wil ik als resultaat 13 terugkrijgen omdat daar de eerste string staat. Thx alvast weer!
pi_113138437
Die eerste functie geeft aan op welke positie het eerste getal staat, precies wat je zocht.
Ik weet alleen niet zeker of ISGETAL wel een excel 2007 functie is of dat die nieuw is in 2010. Krijg je daar een foutmelding? ook als je wel ctrl+shift+enter doet
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 20 juni 2012 @ 12:43:34 #16
62215 qu63
..de tijd drinkt..
pi_113138666
quote:
3s.gif Op woensdag 20 juni 2012 12:38 schreef Deetch het volgende:
Die eerste functie geeft aan op welke positie het eerste getal staat, precies wat je zocht.
Ik weet alleen niet zeker of ISGETAL wel een excel 2007 functie is of dat die nieuw is in 2010. Krijg je daar een foutmelding? ook als je wel ctrl+shift+enter doet
=ISGETAL() is ook een 2007-functie :)
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
  woensdag 20 juni 2012 @ 12:43:41 #17
62215 qu63
..de tijd drinkt..
pi_113138671
-crap-

Quote ipv edit.. Zelfs na 9 jaar fok heb ik dat trucje niet door..
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
  woensdag 20 juni 2012 @ 13:27:35 #18
112333 vogeltjesdans
cry me a river
pi_113140280
quote:
3s.gif Op woensdag 20 juni 2012 11:36 schreef Deetch het volgende:

[..]

tussen False en End Sub moet een ENTER (foutje bij kopieren van jouw code)
Kut :@ :')

edit: in de code staat hij goed. Help ;(
Op vrijdag 14 mei 2021 @ 23:33 schreef Joopklepzeiker: Zonder twijfel is @vogeltjesdans de grootste smaakmaker en intelligentste persoon van heel KLB.
  woensdag 20 juni 2012 @ 13:55:43 #19
148823 znarch
ondertitel
pi_113141406
Een hopelijk niet al te moeilijke vraag.

Ik heb in een sheet een formule:

1=EXP(((-1*VB1)*VB2))*NORMSDIST(C24)

VB1 en VB2 zijn cellen met een naam en dus een vaste waarde. C24 wijzigt steeds.

Hoe kan ik nu (in VB) zelf een formule maken waarbij ik alleen als ik: =formule typ alleen C24 zelf hoef in te vullen?
"AAAAAHH ZENNE MOAT, WOARST VLEISCH"
pi_113142185
Dat heet een User Defined Function. Ga je zelf proberen of heb je hulp nodig?
  woensdag 20 juni 2012 @ 18:01:44 #21
148823 znarch
ondertitel
pi_113152284
quote:
0s.gif Op woensdag 20 juni 2012 14:16 schreef DaFan het volgende:
Dat heet een User Defined Function. Ga je zelf proberen of heb je hulp nodig?
Ik faal, hard :'(
"AAAAAHH ZENNE MOAT, WOARST VLEISCH"
pi_113160425
quote:
3s.gif Op woensdag 20 juni 2012 12:38 schreef Deetch het volgende:
Die eerste functie geeft aan op welke positie het eerste getal staat, precies wat je zocht.
Ik weet alleen niet zeker of ISGETAL wel een excel 2007 functie is of dat die nieuw is in 2010. Krijg je daar een foutmelding? ook als je wel ctrl+shift+enter doet
quote:
0s.gif Op woensdag 20 juni 2012 12:20 schreef jakees het volgende:

[..]

Deetch, zit jij op Excel of zo. 1 minpuntje aan je post. Het is niet duidelijk dat je op CTRL-SHIFT-ENTER moet drukken maar dat vergeef ik je ;-)

Toch nog een paar vraagjes. De eerste heb ik vertaald naar:
=VERGELIJKEN(WAAR;ISGETAL(-DEEL(A1;RIJ(INDIRECT("1:"&LENGTE(A1)));1));0) ik snap niet zo goed wat die doet.

Die 2e retourneert bij alle getallen in de string. Hartstikke mooi maar ik ben op zoek naar de 1e positie van het getal. Is daar nog makkelijk achter te komen. Bijvoorbeeld in de string. Oranjenummer1inBrazilie2014 wil ik als resultaat 13 terugkrijgen omdat daar de eerste string staat. Thx alvast weer!
Ik heb het vertaald naar:
=VERGELIJKEN(WAAR;ISGETAL(-DEEL(A1+RIJ(INDIRECT("1:"&LENGTE(A1)));1));0) Ik snap totaal niet wat er gebeurt maar er staat ook dat ik een argument te weinig hebt bij de functie DEEL. Nog een tip over wat ik verkeerd doe?
pi_113161856
=VERGELIJKEN(WAAR;ISGETAL(-DEEL(A1;RIJ(INDIRECT("1:"&LENGTE(A1)));1));0)
is juist (had Deetch gezegd CTRL SHIFT ENTER?) :P

Je hebt in jouw formule bij de A1 een + staan ipv een ;

Wat het eigenlijk doet is dat het in de cel zelf een nieuwe matrix aanmaakt (genaamd array). In deze matrix wordt op elke regel 1 karakter geplaatst. Vervolgens wordt van dit karakter bepaald of het een getal is of niet. Deze uitkomst (WAAR of ONWAAR) wordt opgeslagen op deze regel en daarna wordt de eerste regel met een WAAR teruggeven.

Het gebruik van de CTRL SHIFT ENTER zorgt ervoor dat je de array functie in de cel gebruikt. Dit kan je ook zien aan je formule doordat de formule tussen { } accolades worden weergegeven.

[ Bericht 30% gewijzigd door snabbi op 20-06-2012 21:40:09 ]
pi_113176009
quote:
0s.gif Op woensdag 20 juni 2012 21:33 schreef snabbi het volgende:
=VERGELIJKEN(WAAR;ISGETAL(-DEEL(A1;RIJ(INDIRECT("1:"&LENGTE(A1)));1));0)
is juist (had Deetch gezegd CTRL SHIFT ENTER?) :P

Je hebt in jouw formule bij de A1 een + staan ipv een ;

Wat het eigenlijk doet is dat het in de cel zelf een nieuwe matrix aanmaakt (genaamd array). In deze matrix wordt op elke regel 1 karakter geplaatst. Vervolgens wordt van dit karakter bepaald of het een getal is of niet. Deze uitkomst (WAAR of ONWAAR) wordt opgeslagen op deze regel en daarna wordt de eerste regel met een WAAR teruggeven.

Het gebruik van de CTRL SHIFT ENTER zorgt ervoor dat je de array functie in de cel gebruikt. Dit kan je ook zien aan je formule doordat de formule tussen { } accolades worden weergegeven.
Thx!!!! Ik wist niet dat je CTRL SHIFT ENTER moest gebruiken. Had hij wel even kunnen zeggen ;-) Maar die + deed het hem. Ik denk ook wel dat ik de formule ongeveer snap (een klein beetje iig).
  donderdag 21 juni 2012 @ 11:11:50 #25
377809 xyntarsus
ex nihi omnia creata est
pi_113180603
en ik ben er weer met een vraag :P

ik heb een userform gemaakt om een aantal cellen in te voeren.
bij 'ok' voert excel uit, bij 'cancel' annuleert hij en verwijdert automatisch het nieuw aangemaakte blad.

nu heb ik hierbij nog 3 dingen die ik graag wil toevoegen:

1. als ik cancel doe, wil ik graag de standaardmelding van excel (weet u zeker blablabla) overslaan
edit:
1
2
3
4
5
6
7
8
9
 Private Sub CommandButton2_Click()

UserForm1.Hide
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
Sheets("TOTAAL").Select

End Sub 

is de oplossing die ik hiervoor gevonden heb :)

2. als ik op het kruisje klik ipv cancel, moet hij hetzelfde doen als met de cancelknop

3. via het form doe ik ook tabnaam aanpassen, maar ik wil graag een controle of de naam al bestaat
zo nee, mag hij doorgaan, zo ja moet er een pop-up met foutmelding komen

Is dit mogelijk in een VBA script?
(en zo ja, hoe natuurlijk ;) )

[ Bericht 25% gewijzigd door xyntarsus op 21-06-2012 12:58:44 (deeloplossing gevonden) ]
pi_113205522
Ik ben geen held met user forms (en vind dit eigenlijk een oneigenlijk element in Excel)

Vraag 2)
Volgens mij moet je iets maken in de trant van:
quote:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
'xxx
End If
End Sub
CloseMode is een 1 wanneer je zelf gebruik maakt van Unload Me
CloseMode is een 0 wanneer je bijvoorbeeld het kruisje gebruikt.

Via deze wijze kan je hem leiden naar je routine die je gebruikt voor Cancel.

3)
quote:
Public Function BladBestaat(ByVal myName As String) As Boolean
On Error Resume Next
Bladbestaat = (Sheets(myName).Name <> "")
On Error GoTo 0
End Function
Nu kan je gewoon iets doen als:
quote:
Dim MyNewName As String
naamwerkblad:
MyNewName = InputBox("Hoe moet het tabblad heten")
If BladBestaat(MyNewName) Then
MsgBox ("Deze naam bestaat al")
GoTo naamwerkblad
End If
ActiveSheet.Name = MyNewName
pi_113210757
quote:
0s.gif Op woensdag 20 juni 2012 18:01 schreef znarch het volgende:

[..]

Ik faal, hard :'(
Ok :)

Open VBA editor met Alt-F11.
Voeg een nieuwe Module toe door rechtermuisknop te klikken je filename (VBAProject (xxx) en te kiezen voor Insert -> Module

Plak deze code erin:
1
2
3
4
5
Public Function ExpNormSDist(x As Double, y As Double, z As Double) As Double

    ExpNormSDist = Exp(((-1 * x) * y)) * Application.WorksheetFunction.NormSDist(z)

End Function

Dan sluit je de editor.
Nu kan je in Excel dmv
1=ExpNormSDist(VB1;VB2;C24)
de uitslag bepalen.
Omdat VB1 en VB2 gelijk zijn kan je ook gebruik maken van:
1
2
3
4
5
Public Function ExpNormSDist(z As Double) As Double

    ExpNormSDist = Exp(((-1 * Range("VB1").Value) * Range("VB2").Value)) * Application.WorksheetFunction.NormSDist(z)

End Function
En dan de uitkomst ophalen met
1=ExpNormSDist(C24)

Succes!
Kijk even of je eruitkomt hoé het werkt, en niet óf het werkt :)
  vrijdag 22 juni 2012 @ 08:28:24 #28
377809 xyntarsus
ex nihi omnia creata est
pi_113223026
thx voor de info wederom :)

ik heb voor de foutcontrole (bestaat de bladnaam al, zo ja geef een melding)
de volgende code

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
Private Sub CommandButton1_Click()

Item = TextBox1
ActiveSheet.Range("b2").Value = Item

Item = TextBox2
ActiveSheet.Range("b3").Value = Item

Item = TextBox3
ActiveSheet.Range("b4").Value = Item

Item = TextBox4
ActiveSheet.Range("b5").Value = Item

Item = TextBox5
ActiveSheet.Range("f2").Value = Item

Item = TextBox6
ActiveSheet.Range("f3").Value = Item

On Error GoTo fout

ActiveSheet.Name = ActiveSheet.Range("B2")

fout:
     MsgBox ("het nummer bestaat al, voer een nieuw nummer in")
     UserForm1.Hide
     Application.DisplayAlerts = False
     ActiveSheet.Delete
     Application.DisplayAlerts = True
     Sheets("basis").Unprotect
     Sheets("basis").Copy Before:=Sheets("basis")
     Sheets("basis").Protect
     Sheets("basis (2)").Select
     UserForm1.Show

UserForm1.Hide

End Sub

Deze gaat dus lopen als ik op OK klik
Als ik nu een al bestaand project heb geeft hij ook de juiste foutmelding, en hij opent ook netjes
het userform opnieuw.
Hierna gaat het mis, alle nummers die ik invoer neemt hij als 'al bestaand' en ik kom er niet meer uit.

Als ik nu de functie beeindig en opnieuw opstart, blijft hij de fout loopen en kan ik geen nieuwe bladen maken.

Wie kan mij vertellen wat ik fout doe??
pi_113256679
quote:
0s.gif Op vrijdag 22 juni 2012 08:28 schreef xyntarsus het volgende:
thx voor de info wederom :)

ik heb voor de foutcontrole (bestaat de bladnaam al, zo ja geef een melding)
de volgende code
[ code verwijderd ]

Deze gaat dus lopen als ik op OK klik
Als ik nu een al bestaand project heb geeft hij ook de juiste foutmelding, en hij opent ook netjes
het userform opnieuw.
Hierna gaat het mis, alle nummers die ik invoer neemt hij als 'al bestaand' en ik kom er niet meer uit.

Als ik nu de functie beeindig en opnieuw opstart, blijft hij de fout loopen en kan ik geen nieuwe bladen maken.

Wie kan mij vertellen wat ik fout doe??
Ok, laten we beginnen met een stukje voor de leesbaarheid van je code. Hiermee bedoel ik ook voorkomen dat je onnodig variabelen aanmaakt, danwel de code heel lang maakt :P

Een verwijziging naar Activesheet is niet nodig, ook is het eigenlijk niet nodig met de range te werken (al vinden veel mensen dit wel zo netjes. Je eerste deel kan je in feite beperken tot:
quote:
[b2] = textbox1
[b3] = textbox2
[b4] = textbox3
[b5] = textbox4
[f2] = textbox5
[f3] = textbox6
Nu naar je echte probleem. Hij loopt je code van boven tot beneden door. Dit houdt in dat hij je code van "fout" altijd uitvoert, ongeacht of het nu goed of fout gaat. Wat je dus moet doen is zorgen dat je code stopt, wanneer het niet fout gaat. In jouw geval krijg je dan zoiets:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub CommandButton1_Click()
 On Error GoTo fout
 [b2] = textbox1
 [b3] = textbox2
 [b4] = textbox3
 [b5] = textbox4
 [f2] = textbox5
 [f3] = textbox6
 ActiveSheet.Name = Range("B2")
 'mag overigens ook zijn ActiveSheet.Name = [b2]
 'wanneer het goed gaat moet hij nu stoppen, daarom zet ik hieronder End neer, je kan bijvoorbeeld ook een Goto Einde maken ofzo
 On Error GoTo 0
 'Wanneer je iets met error handling doet, is het goed om wanneer je klaar bent met het afvangen van je error weer terug te verwijzen naar goto 0 zodat weer de normale Excel error naar voren kan komen.

 End
 fout:     
'en hier je fout handling zoals je dat wil
end sub
  maandag 25 juni 2012 @ 13:39:54 #30
377809 xyntarsus
ex nihi omnia creata est
pi_113360790
Thx :) ik heb het zo opgebouwd, en t lijkt zelfs soepeler te lopen.

nu voel ik me nog meer een amateur :P

Maar goed, op naar de volgende te bouwen onderdelen
(lijsten genereren, zoekfunctie bouwen en automatisch gegevens invoeren vanuit cellen)
  donderdag 28 juni 2012 @ 16:31:18 #31
377809 xyntarsus
ex nihi omnia creata est
pi_113516618
en wederom ben ik er met een vraag.

Ik wil in het bestand dat ik aan het bouwen ben nog 2 extra dingen toevoegen.
1. een lijst van alle tabbladen (in mijn geval projectnummers)
waarbij dan een aantal gegevens uit het tabblad worden gezet in een lijst

2. een zoekfunctie waarbij ik een artikelnummer opgeef en die door meerdere tabbladen heen zoekt en kijkt of er in een bepaalde range cellen
(gedefinieerd door een artikelnummer aan het begin van de regel) niet lege cellen zijn.
deze regels met gegevens (dus de regels waarin in gegevens zijn ingevoerd) moet dan in een lijst
komen die weer begint met het projectnummer en dan de rest van de regel erachter zet
(en voor elk product in de zoekopdracht een lijst maakt)

Ik heb bij deze twee echter geen idee hoe ik moet beginnen :(

Wie helpt mij???
pi_113534381
quote:
0s.gif Op donderdag 28 juni 2012 16:31 schreef xyntarsus het volgende:
en wederom ben ik er met een vraag.

Ik wil in het bestand dat ik aan het bouwen ben nog 2 extra dingen toevoegen.
1. een lijst van alle tabbladen (in mijn geval projectnummers)
waarbij dan een aantal gegevens uit het tabblad worden gezet in een lijst

2. een zoekfunctie waarbij ik een artikelnummer opgeef en die door meerdere tabbladen heen zoekt en kijkt of er in een bepaalde range cellen
(gedefinieerd door een artikelnummer aan het begin van de regel) niet lege cellen zijn.
deze regels met gegevens (dus de regels waarin in gegevens zijn ingevoerd) moet dan in een lijst
komen die weer begint met het projectnummer en dan de rest van de regel erachter zet
(en voor elk product in de zoekopdracht een lijst maakt)

Ik heb bij deze twee echter geen idee hoe ik moet beginnen :(

Wie helpt mij???
Voor het eerste deel is er zover ik weet geen normale formule die je daar bij kunt helpen en moet je dus naar VBA en krijg je iets in de trant van:
1
2
3
For i = 1 To Sheets.Count
ActiveCell.Offset(i - 1, 0).Value = Sheets(i).Name
Next i
Het eerste deel is gewoon een loop maken van 1 tot het aantal sheets dat je hebt. Vervolgens ga je voor elke sheet vanaf je huidige cel de namen onder elkaar opslaan. (De offset zorgt ervoor dat je i-cellen naar beneden vanaf de huidige cel iets wegschrijft).

Het tweede deel van je vraag begrijp ik niet helemaal. Kan je niet beter alle activiteiten op 1 tabblad opslaan en wanneer je iets voor een specifiek project wilt zien daar op filteren of een view daarvoor maken. Het verspreiden over al die tabbladen lijkt me eigenlijk niet handig.
  vrijdag 29 juni 2012 @ 10:00:44 #33
377809 xyntarsus
ex nihi omnia creata est
pi_113547228
dank je, dat eerste deel is al erg nuttig,
kan ik daar dan ook, als ik die lijst eenmaal gegenereerd heb, gegevens uit dat specifieke blad achter hangen op een geautomatiseerde manier

de code die ik nu heb:
1
2
3
4
5
6
7
8
Private Sub CommandButton4_Click()

  Sheets.Add Before:=Sheets("totaal")
  ActiveSheet.Name = "Projectenlijst"
    
For i = 4 To Sheets.Count -1
ActiveCell.Offset(i - 1, 1).Value = Sheets(i).Name
Next i

Wat ik ook graag wil is een aantal bladen uitsluiten in de lijst (totaalblad en 'basis'tabel)
Kan dat ook?
boerenlogica zegt: als bladnaam = totaal, dan niets doen en doorgaan met de volgende
edit: ik heb hem nu in het 4e blad laten beginnen en het laatste niet meenemen, dan krijg ik in ieder geval te zien wat ik wil. Weet alleen niet of dit de beste oplossing is

voor het tweede deel van mijn vraag:
omdat ik ook een lijst per project wil kunnen uitdraaien, en ik iedere keer dezelfde tabel heb
voor een project (in de rijen de producten en in de kolommen 52 weken) wordt het heel onoverzichtelijk om dat in 1 blad te doen.
vandaar de keuze om voor elk project (pakweg 50 tegelijk meestal) een apart tabblad te maken, mijn 1e blad is dan een totaalblad dat optelt door de bladen heen.

Ik heb laatst een vergelijkbare opzet gezien, maar helaas krijg ik daar de code niet van :S

[ Bericht 7% gewijzigd door xyntarsus op 29-06-2012 10:10:59 (trial and error werkt :P) ]
pi_113551142
Zoiets? Je moet zelf nog even met de variabele j puzzelen om de lijst op de goeie plek te krijgen.
Waarom begin je trouwens pas vanaf sheet 4 te tellen?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub test()

j = 0

For i = 4 To Sheets.Count -1
    If Sheets(i).Name = "totaalblad" Or Sheets(i).Name = "basistabel" Then
    j = j
    Else
    ActiveCell.Offset(j, 1).Value = Sheets(i).Name
    j = j + 1
    End If
Next i

End Sub
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 29 juni 2012 @ 13:15:53 #35
377809 xyntarsus
ex nihi omnia creata est
pi_113554205
omdat de eerste drie bladen de bladen zijn die ik niet wil mee tellen, dus ik had het eigenlijk omzeild :P
dat stukje 'if' functie is denk ik de nette manier ;)

zo lukt het in ieder geval wel :P

blijven de punten van het invullen van andere gegevens uit de betreffende bladen en de zoekfunctie over...
na wat zoek en stoeiwerk denk ik dat ik met vert.zoeken een eind moet kunnen komen,
maar dan moet ik dat over meerdere bladen trekken en vervolgens van de gevonden regels een kopie in een nieuw blad zetten (en dan alle gevonden regels in hetzelfde blad onder elkaar)
pi_113555019
Maar als iemand dan je bladen husselt dan gaat dat dus wel mis.

Als je veel uitzonderingen hebt is het misschin mooier om met case select te werken in plaats van de If....then...else
Dus in plaats van het hele stuk code tusen IF en END IF doe je onderstaande code
1
2
3
4
5
6
7
Select Case Sheets(i).Name
Case "totaal", "test"
j = j
Case Else
ActiveCell.Offset(j, 1).Value = Sheets(i).Name
j = j + 1
End Select

Aangezien je een lijst wilt op basis van projectnummer en alle tabbladen projectnumemrs zijn zou je een vert.zoeken kunnen combineren met indirect?
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 29 juni 2012 @ 13:46:10 #37
377809 xyntarsus
ex nihi omnia creata est
pi_113555587
met indirect?
nu ben ik overvraagd....
pi_113555910
Stel naam van tabblad is "project1"
Om nu een waarde uit dat tabblad te halen doe je ='project1'!C2

Echter als je nou de naam van het tabblad variabel wilt maken omdat je al een lijst hebt met alle tabbladnamen dan kun je met INDIRECT dat bereiken.

Voorbeeld:
zet de naam van het tabblad op een ander blad in cel A1 (bijvoorbeeld)
en zet in de cel eronder de volgende formule

=indirect("'"& A1 &"'!C2") (let op alle leestekens)

deze haalt de waarde uit cel C2 van het tabblad waarvan de naam in A1 staat.

met het & teken kun je tekststrings aan elkaar plakken. Je plakt hier dus een ' voor de naam van het tabblad (A1) en erachter '!C2 voor het afsluiten van de tabblad naam en de verwijzing naar de cel.
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 29 juni 2012 @ 14:15:30 #39
377809 xyntarsus
ex nihi omnia creata est
pi_113556927
ok thx, dit werkt, ik kan nu een projectenlijst maken en updaten :D

enige wat hij nu niet doet, is projecten die er niet meer zijn weghalen,
is er een mogelijkheid dat ik dta kan invoegen?
pi_113558414
quote:
0s.gif Op vrijdag 29 juni 2012 14:15 schreef xyntarsus het volgende:
ok thx, dit werkt, ik kan nu een projectenlijst maken en updaten :D

enige wat hij nu niet doet, is projecten die er niet meer zijn weghalen,
is er een mogelijkheid dat ik dta kan invoegen?
Ik ben er van uitgegaan dat de sheetnamenlijst in b1 en daaronder staat, anders in de activesheet regel b1 veranderen in de gewenste cel
De hele regel van de sheet die niet meer bestaat wordt verwijderd

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

On Error Resume Next

ActiveSheet.Range("b1", ActiveSheet.Range("b1").End(xlDown)).Select

For Each c In Selection
If Sheets(c.Value).Name = "" Then c.EntireRow.Delete
Next c
On Error GoTo 0

End Sub
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_113573715
quote:
0s.gif Op vrijdag 29 juni 2012 10:00 schreef xyntarsus het volgende:
voor het tweede deel van mijn vraag:
omdat ik ook een lijst per project wil kunnen uitdraaien, en ik iedere keer dezelfde tabel heb
voor een project (in de rijen de producten en in de kolommen 52 weken) wordt het heel onoverzichtelijk om dat in 1 blad te doen.
vandaar de keuze om voor elk project (pakweg 50 tegelijk meestal) een apart tabblad te maken, mijn 1e blad is dan een totaalblad dat optelt door de bladen heen.

Ik heb laatst een vergelijkbare opzet gezien, maar helaas krijg ik daar de code niet van :S
Tja eigenlijk blijf ik wel van mening dat je eigenlijk al je data in 1 tabblad moet zetten. Wanneer je verschillende dwarsdoorsnedes wilt maken van je gegevens set kan je dat veel makkelijker via een pivot tabel regelen. Dan kan je tenminste zeggen ik wil alles van 1 project zien, of 1 product over alle projecten heen.

Ook scheelt dit heel veel macro gedoe, wat in mijn ogen er alleen maar voor zorgt dat je programma onbeheersbaar wordt.
pi_113590478
Access
pi_113661959
quote:
0s.gif Op zaterdag 30 juni 2012 12:54 schreef DaFan het volgende:
Access
Dat is eigenlijk wel beter voor xyntarsus' gebruik. Maar ja, access is eng :@
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_113662787
quote:
3s.gif Op maandag 2 juli 2012 08:20 schreef Deetch het volgende:

[..]

Dat is eigenlijk wel beter voor xyntarsus' gebruik. Maar ja, access is eng :@
Faler :P
  maandag 2 juli 2012 @ 10:43:22 #45
377809 xyntarsus
ex nihi omnia creata est
pi_113664076
access is niet eng hoor :P

maar acces is niet beschikbaar op het netwerk hier :P
moet het doen met word en excel....
en wat betreft de aparte tabbladen, ook dat is een soort van
'opgelegde eis' :S

pivot tables zouden inderdaad kunnen als alles in 1 blad stond.
pi_113664435
quote:
0s.gif Op maandag 2 juli 2012 10:43 schreef xyntarsus het volgende:
access is niet eng hoor :P

maar acces is niet beschikbaar op het netwerk hier :P
moet het doen met word en excel....
en wat betreft de aparte tabbladen, ook dat is een soort van
'opgelegde eis' :S

pivot tables zouden inderdaad kunnen als alles in 1 blad stond.
zucht, IT op de werkplek :X }:|
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 2 juli 2012 @ 11:07:58 #47
377809 xyntarsus
ex nihi omnia creata est
pi_113664551
idd, maja, ik zal t moeten doen met wat we hebben :P

kan thuis wel een Access dbase bouwen in office 2010, maar daar gaan we in
excel 2003 weinig aan hebben :P:P

zal dus wat meer moeite moeten doen, maar heb er wel vertrouwen is dat t gaat lukken...

(denk ik....)
pi_113693461
Mwa je kan vanuit Excel gewoon een koppeling maken naar je Access database.
Daarnaast kan je bij het dubbel-klikken in je pivot tabel je betreffende benodigde tabblad creëren. Het maakt in ieder geval die zoekfunctie makkelijker (query) ipv via vertikaal zoeken over alle tabbladen of een ctrl f functie via macro's.
  dinsdag 3 juli 2012 @ 08:08:35 #49
377809 xyntarsus
ex nihi omnia creata est
pi_113704513
Dat klopt, maar blijf het probleem bestaan dat op t netwerk hier geen access beschikbaar is :'(


Is die zoekfunctie overigens wel mogelijk??

[ Bericht 15% gewijzigd door xyntarsus op 03-07-2012 08:48:05 ]
  dinsdag 3 juli 2012 @ 13:32:08 #50
85514 ralfie
!Yvan eht nioj
pi_113712556
Zoiets voor de zoekfunctie?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub zoek(ByRef Sheet As Worksheet, ByRef Targetcell As Range, ByRef qrySearch As String, ByRef numcolumns As Integer)
    Dim zoekrange As Range, lastrow As Integer, cell As Range
    Set zoekrange = Sheet.Range("A:A")'Waar gaan we zoeken?
    Set cell = Sheet.Cells(1, 1)'De eerste cell in de kolom
    lastrow = 0
    Do
        Set cell = zoekrange.Find(qrySearch, cell, xlValues, xlPart, xlByColumns, xlNext)
        If cell Is Nothing Then Exit Sub'zoekopdracht nergens gevonden
        If cell.Row < lastrow Then Exit Sub'voorbij einde van kolom
        lastrow = cell.Row
        Targetcell.Value = Sheet.Name
        If WorksheetFunction.CountA(Sheet.Rows(lastrow)) > 1 Then'Er zitten niet-lege cellen in deze rij
            Sheet.Range("A" & lastrow).Resize(ColumnSize:=numcolumns).Copy Targetcell.Offset(ColumnOffset:=1).Resize(ColumnSize:=numcolumns)
            Set Targetcell = Targetcell.Offset(Rowoffset:=1)
        End If
    Loop
End Sub
Je zoekt dan bijvoorbeeld:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub test()
dim rngDoelwit as Range
dim strQry as string
dim numCols as integer

'hoeveel kolommen moeten er gekopieerd worden
numCols = 10
'Je zoekopdracht
strQry = "1*"
'Waar moeten de resultaten komen
set rngDoelwit = ActiveCell

For i = 4 To Sheets.Count -1
    If Sheets(i).Name <> "totaalblad" And Sheets(i).Name <> "basistabel" Then
        zoek Sheets(i), rngDoelwit, strQry, numCols
    End if
Next i
End Sub
  dinsdag 3 juli 2012 @ 16:29:51 #51
377809 xyntarsus
ex nihi omnia creata est
pi_113719551
ik denk dat dit een heel eind doet wat ik in gedachten had,
maar wat ik even niet kan zien in de gauwigheid is of hij een nieuw blad aanmaakt
waarin hij alle gevonden regels als kopie zet (met als naam: 'art "ingegeven nummer" '.
(dit laatste lijkt me de regel:
1
2
item = textbox
activesheet.name = ' "art"' &item'

tenminste zo had ik het zelf verzonnen :P)

Van de (artikel)nummers waarop ik ga zoeken weet ik overigens zeker dat ze bestaan en gevonden zullen worden.
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')