abonnement Unibet Coolblue
  donderdag 26 februari 2009 @ 21:01:07 #1
62215 qu63
..de tijd drinkt..
pi_66495301
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

Nieuw topic? Haal de OP bij de wiki
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
  Heeft over alles een mening 2022 donderdag 26 februari 2009 @ 21:02:07 #2
31936 Dr_Flash
CubeMeister
pi_66495363
Quuuuu

Vooral namens Marcb1974 overigens, het was ZIJN probleem wat je hiermee oplost
Salivili hipput tupput tapput äppyt tipput hilijalleen
  donderdag 26 februari 2009 @ 21:02:22 #3
62215 qu63
..de tijd drinkt..
pi_66495373
quote:
Op donderdag 26 februari 2009 21:02 schreef Dr_Flash het volgende:
Quuuuu

Vooral namens Marcb1974 overigens, het was ZIJN probleem wat je hiermee oplost
Ohja
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_66497149
Thx qu
stupidity has become as common as common sense was before
  Heeft over alles een mening 2022 donderdag 26 februari 2009 @ 22:14:20 #5
31936 Dr_Flash
CubeMeister
pi_66499338
Leerzaam avondje dit
Salivili hipput tupput tapput äppyt tipput hilijalleen
  vrijdag 27 februari 2009 @ 09:24:19 #6
134944 Hi_flyer
Van alles te melden
pi_66509987
Vraagje: uit een lijst met zo'n 6000 getallen wil ik de 10 grootste en 10 kleinste halen. Hoe krijg ik dat voor elkaar? Met de max-functie kom je niet ver....
pi_66510287
tvp
pi_66511081
quote:
Op vrijdag 27 februari 2009 09:24 schreef Hi_flyer het volgende:
Vraagje: uit een lijst met zo'n 6000 getallen wil ik de 10 grootste en 10 kleinste halen. Hoe krijg ik dat voor elkaar? Met de max-functie kom je niet ver....
In een andere kolom ernaast de formule rang() gebruiken. En dan sorteren op die kolom.

Of even een top 10 rij maken en dan met rang() en vert.zoeken() vullen
stupidity has become as common as common sense was before
  vrijdag 27 februari 2009 @ 11:18:07 #9
62215 qu63
..de tijd drinkt..
pi_66512960
quote:
Op vrijdag 27 februari 2009 09:24 schreef Hi_flyer het volgende:
Vraagje: uit een lijst met zo'n 6000 getallen wil ik de 10 grootste en 10 kleinste halen. Hoe krijg ik dat voor elkaar? Met de max-functie kom je niet ver....
Je kan ook met voorwaardelijke opmaak werken, dan krijgen de hoogste 10 een groene kleur, en de laagste 10 een rode (bijvoorbeeld)
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_66514902
TVP

Over het max / min verhaal:
Ik zou gewoon resp. oplopend en aflopend sorteren.
pi_66515380
quote:
Op vrijdag 27 februari 2009 12:16 schreef Metal_Jag het volgende:
TVP

Over het max / min verhaal:
Ik zou gewoon resp. oplopend en aflopend sorteren.
Nee dat is toch geen oplossing man. Beetje in aanpasbare ranges denken

Rang(x;8) geeft de 8e grootste waarde.
De 7-na laagste kan je vinden met RANG(x;AANTAL(x)-8)

x = je range, bijvoorbeeld B1:B10 oid.
pi_66592271
Hallo, ik hoop dat jullie mij met het volgende kunnen helpen:

Ik heb een sheet met gegevens, oplopend gesorteerd per week.
In kolom A staat het weeknummer in format 0906, zijnde de 6e week uit het jaar 2009.
Per week gaat het om meerdere regels, soms 8, soms 9, soms 6.

Bepaalde gegevens zijn gedurende een aantal weken gelijk.
Nu lijkt het mij handig een macro te hebben die de gegevens van de laatste week kopieert en onder de vorige week zet, liefst met wijziging van het weeknummer.

Voorbeeld:
De laatst ingevoerde week is 0906. Deze staat in de regels 200 t/m 208.
De kolommen A t/m F bevatten informatie over de betreffende week.
In dit geval zou de macro de laatst gevulde range van één week (A200:F208) moeten selecteren en plakken in cel A209, liefst met automatische wijziging van het weeknummer (0907).

Wie kan en wil mij hiermee helpen?

Alvast bedankt.

Groet,
Hendrik
pi_66592348
Maar je wil dus week 6 in de lijst voor week 7? Waarom zou je dat doen dan moet je dat weer aanpassen of denk ik nou krom?
  zondag 1 maart 2009 @ 20:31:47 #14
158136 Joooo-pi
Do you want a balloon...
pi_66593465
quote:
Op zondag 1 maart 2009 19:55 schreef hendrik2009 het volgende:
Hallo, ik hoop dat jullie mij met het volgende kunnen helpen:

Ik heb een sheet met gegevens, oplopend gesorteerd per week.
In kolom A staat het weeknummer in format 0906, zijnde de 6e week uit het jaar 2009.
Per week gaat het om meerdere regels, soms 8, soms 9, soms 6.

Bepaalde gegevens zijn gedurende een aantal weken gelijk.
Nu lijkt het mij handig een macro te hebben die de gegevens van de laatste week kopieert en onder de vorige week zet, liefst met wijziging van het weeknummer.

Voorbeeld:
De laatst ingevoerde week is 0906. Deze staat in de regels 200 t/m 208.
De kolommen A t/m F bevatten informatie over de betreffende week.
In dit geval zou de macro de laatst gevulde range van één week (A200:F208) moeten selecteren en plakken in cel A209, liefst met automatische wijziging van het weeknummer (0907).

Wie kan en wil mij hiermee helpen?

Alvast bedankt.

Groet,
Hendrik
Selecteer de regels. Kopieren. Selecteer de eerste cel van je nieuwe bereik. Plakken.

Daar hoef je geen macro voor toch?

Dan kun je ook nog zoeken/vervangen doen om de week aan te passen.

heitieh
pi_66594723
quote:
Op zondag 1 maart 2009 19:58 schreef DaFan het volgende:
Maar je wil dus week 6 in de lijst voor week 7? Waarom zou je dat doen dan moet je dat weer aanpassen of denk ik nou krom?
Week 6 voor week 7? Gewoon oplopende volgorde en historie blijft bewaard.
Of misschien begrijpen we elkaar verkeerd.
quote:
[..]

Selecteer de regels. Kopieren. Selecteer de eerste cel van je nieuwe bereik. Plakken.

Daar hoef je geen macro voor toch?

Dan kun je ook nog zoeken/vervangen doen om de week aan te passen.


De macro is natuurlijk geen noodzaak. Ik vind het gewoon leuk en handig om zoveel mogelijk te automatiseren en daarmee de mogelijkheden van excel te benutten.
De macro zou dan onderdeel van een bestaande macro kunnen worden, die de webquery ververst, formules doortrekt tot de laatst gevulde rij, de pivot ververst en de grafiek met dynamisch bereik vernieuwd.

Nu moeten sommige delen hard en sommige delen als formule worden geplakt.
pi_66618157
Hallo,

kunnen jullie me helpen met het volgende probleem in excel 2003.

Ik heb een rijtje namen en daarbij een datum:
1
2
3
4
5
6
Naam   Laatste update
Jan   23-02-2009
Piet   11-01-2009
Klaas   26-02-2009
Leo   09-02-2009
Henk   19-01-2009


Nu wil ik op een ander blad alleen de namen hebben, waarvan de datum langer dan 30 dagen geleden is
Dus ik moet als uitkomst Piet en Henk hebben.

het lukt me wel om de vergelijking te maken, maar ik wil eigenlijk een variabele lijst met alleen de namen die ik nodig heb
1=IF(B2<TODAY()-30;A2;0)

en dat lukt met bovenstaande code niet, want dan krijg ik er nul waardes tussen, weet iemand een oplossing?


PS: (de variabele lijst moet automatisch updaten als de data's veranderen)
  maandag 2 maart 2009 @ 15:45:29 #17
234506 Metal_Jag
MMM van metal
pi_66619640
quote:
Op maandag 2 maart 2009 15:07 schreef FunnyDealer het volgende:
Hallo,

kunnen jullie me helpen met het volgende probleem in excel 2003.

Ik heb een rijtje namen en daarbij een datum:
[ code verwijderd ]

Nu wil ik op een ander blad alleen de namen hebben, waarvan de datum langer dan 30 dagen geleden is
Dus ik moet als uitkomst Piet en Henk hebben.

het lukt me wel om de vergelijking te maken, maar ik wil eigenlijk een variabele lijst met alleen de namen die ik nodig heb
[ code verwijderd ]

en dat lukt met bovenstaande code niet, want dan krijg ik er nul waardes tussen, weet iemand een oplossing?


PS: (de variabele lijst moet automatisch updaten als de data's veranderen)
Als je in Blad2 in B1 jouw formule zet, dan kun je met de volgende macro werken. Zet deze code achter Blad1 in de script-editor (ivm de event Change).

1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Worksheet_Change(ByVal Target As Range)
    Sheets("Blad2").Select
    ActiveSheet.Range("B1").Select
    ActiveCell.FormulaR1C1 = "=IF(Blad1!RC<TODAY()-30,Blad1!RC[-1],"""")"
    Selection.AutoFill Destination:=ActiveSheet.Range("B1:B40"), Type:=xlFillDefault
    ActiveSheet.Columns("B:B").Select
    Selection.Sort Key1:=ActiveSheet.Range("B1"), Order1:=xlDescending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    DataOption1:=xlSortNormal
    ActiveSheet.Range("B2").Select
    Sheets("Blad1").Select
End Sub


Dit is een snel in elkaar gezet macro'tje en het past Blad2 aan op het moment dat je Blad1 wijzigt. Het gebruikt jouw formule en sorteert de hele kolom vervolgens, zodat de namen bovenaan komen.

Het is geen meesterwerk, maar het werkt wel.


Ohja, het gaat tot 40 namen, maar dat kun je simpel aanpassen tot meer, door de range in het script aan te passen.

[ Bericht 2% gewijzigd door Metal_Jag op 02-03-2009 16:34:51 (extra regel in script gezet !!) ]
  maandag 2 maart 2009 @ 16:15:15 #18
134944 Hi_flyer
Van alles te melden
pi_66620789
Beste medeforummers. Stel dat je een userform hebt met heeeel veel tekstvakken. Is het mogelijk om al die tekstvakken in een loopje te vullen, ongeveer zoals onderstaande code?

1
2
3
For i = 1 To 67 Step 1
     TextBox& i&.Text = Sheet7.Range("B" & i).Value
Next i


Dit lukt dus niet, weet iemand een manier die wel lukt? Anders moet ik iets van 100 tekstvakjes per stuk gaan aanspreken.
  maandag 2 maart 2009 @ 16:54:00 #19
85514 ralfie
!Yvan eht nioj
pi_66622295
je kunt ze lang lopen via Form.controls( x )

ik weet zo niet zeker of x hier de naam van je control is of een index waarde, maar daar ben je zelf snel achter.
pi_66623505
Ik denk de index waarde trouwens maar als het de naam van je control is kan je een tijdelijke string maken met TempStr = "Label" & i
Dat werkt beter dan het in de haakjes zelf doen denk ik. Ik heb zelf ook gezocht maar kon alleen iets soortgelijks vinden als ralfie. Al denk ik dat je ipv Form -> Sheets(sheetnaam).Controls moet gebruiken?
pi_66646918
quote:
Op maandag 2 maart 2009 15:45 schreef Metal_Jag het volgende:

[..]

Als je in Blad2 in B1 jouw formule zet, dan kun je met de volgende macro werken. Zet deze code achter Blad1 in de script-editor (ivm de event Change).
[ code verwijderd ]

Dit is een snel in elkaar gezet macro'tje en het past Blad2 aan op het moment dat je Blad1 wijzigt. Het gebruikt jouw formule en sorteert de hele kolom vervolgens, zodat de namen bovenaan komen.

Het is geen meesterwerk, maar het werkt wel.


Ohja, het gaat tot 40 namen, maar dat kun je simpel aanpassen tot meer, door de range in het script aan te passen.

Het werkt! Al had ik het liever wel gezien zonder script editor, maar het updaten maakt het ook lastig
pi_66653519
quote:
Op maandag 2 maart 2009 16:15 schreef Hi_flyer het volgende:
Beste medeforummers. Stel dat je een userform hebt met heeeel veel tekstvakken. Is het mogelijk om al die tekstvakken in een loopje te vullen, ongeveer zoals onderstaande code?
[ code verwijderd ]

Dit lukt dus niet, weet iemand een manier die wel lukt? Anders moet ik iets van 100 tekstvakjes per stuk gaan aanspreken. ;(
Onderstaande code zou het moeten doen, de "step 1" kun je weglaten want excel vba gaat standaard uit van een stap van 1
1
2
3
4
5
6
7
8
Private Sub UserForm_Activate()

For i = 1 To 67
   sName = "TextBox" & i
   Me.Controls(sName).Text = Sheet7.Range("B" & i).Value
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
pi_66654554
Ah vandaar dat het me niet lukte. Dit werkt alleen in een form, blijkbaar niet in een sheet.
  dinsdag 3 maart 2009 @ 17:11:52 #24
134944 Hi_flyer
Van alles te melden
pi_66658416
quote:
Op dinsdag 3 maart 2009 15:10 schreef Deetch het volgende:

[..]

Onderstaande code zou het moeten doen, de "step 1" kun je weglaten want excel vba gaat standaard uit van een stap van 1
[ code verwijderd ]
Thanks, ziet er werkbaar uit, morgen zal ik het eens proberen. Step 1 is inderdaad overbodig, ik gebruik het omdat vroegah in C++ het wel verplicht was (als ik het goed heb).
pi_66708060
Excel 2003 NL
Ik heb een spreidingsgafriek met 100 waarden en heb hier een trendlijn door excel over laten zetten.
Is er een manier om deze trendlijn af te lezen in formule vorm?
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')