abonnement Unibet Coolblue
  dinsdag 26 april 2011 @ 21:39:23 #1
62215 qu63
..de tijd drinkt..
pi_96016367


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

Alle vorige topics zijn hier terug te vinden.

Nieuw topic? Haal de OP bij de wiki ;)
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_96016597
En ja hij stond er al bij ;)
pi_96033772
jah hoor werkt als een tiet!
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
  donderdag 28 april 2011 @ 00:12:40 #4
38651 yozd
FR1908 Vakkie R
pi_96074114
Ik heb een excel sheet (sheet 2) met in rij 1 allemaal jaartallen (voor de X-as) en op rij 2 t/m 5 gegevens voor in een grafiek A. Elk van die rijen vormt een aparte reeks.

Op rij 6 tot en met 9 heb ik weer 4 reeksen, nu voor grafiek B (X-as blijft altijd rij 1). Via deze macro krijg ik de goede grafieken:

1
2
3
4
5
6
7
8
9
10
Sub Macro1()

    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.SetSourceData Source:=Range("'Sheet2'!$A$2:$R$5,'Sheet2'!$A$1:$R$1")
    ActiveChart.ChartType = xlLine

    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.SetSourceData Source:=Range("'Sheet2'!$A$6:$R$9,'Sheet2'!$A$1:$R$1")
    ActiveChart.ChartType = xlLine
End Sub

Mijn data loopt echter door op heel veel rijen, dus ik wil er een loop van maken. Dit werkt echter niet:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub Macro2()
'
Dim rij1 As Integer
Dim rij2 As Integer

rij1 = 2
rij2 = 5

For i = 1 To 999

    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.SetSourceData Source:=Range("'Sheet2'!$A$rij1:$R$rij2,'Sheet2'!$A$1:$R$1")
    ActiveChart.ChartType = xlLine

rij1 = rij1 + 4
rij2 = rij2 + 4

Next i

End Sub

Heeft iemand enig idee waarom niet?

O ja, ik zou ook graag steeds de 2e rij data van elke grafiek (voor grafiek A rij 3, grafiek B rij 7 etc.) ipv een lijn alleen maar punten zien. Kan dat ook mbv de macro?
"On a good day, when I run, the voices in my head get quieter until it’s just me, my breath and my feet on the sand (Dexter, E5x09)."
pi_96080141
Je probeert nu in een Range een integer te stoppen (rij1, rij2), maar dat gaat niet: hier gaan alleen strings in. Om een variabele Range aan te roepen zul je dus iets als

ActiveChart.SetSourceData Source:=Range("'Sheet2'!$A$" & rij1 & ":$R$" & rij2 & ",'Sheet2'!$A$1:$R$1")
pi_96080283
vervang Range("'Sheet2'!$A$rij1:$R$rij2,'Sheet2'!$A$1:$R$1")
door Range("'Sheet2'!$A$" & rij1 & ":$R$" & rij2 & ",'Sheet2'!$A$1:$R$1")

spuit 11 }:|
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_96113346
Hey,

Ik wil een van aantal geluidsniveaus het gemiddelde berekenen. Dit met de volgende formule:

1=10*LOG((10^(GELUIDSNIVEAU1/10)+10^(GELUIDSNIVEAU2/10)+10^(GELUIDSNIVEAU.../10))/Aantal geluidsniveaus)

Ik heb hier een hele lange lijst van, maar het lukt me niet om deze makkelijk in een formule te krijgen.

Deze formule heb ik geprobeert:

1=10*LOG((10^(B1:B20/10))/20)

Maar zo werkt het helaas niet. Iemand suggesties?
pi_96124303
SOM eromheen en bevestigen met Ctrl-Shift-Enter
  vrijdag 29 april 2011 @ 09:09:12 #9
61284 Folkwin
Muisje op het kruisje!
pi_96125703
Ik ben bezig met een soort logboek in Excel.

Is het mogelijk om het volgende te creeren:
dat degene die de actie logt automatisch leeg veld krijgt met nieuwe opvolgende lognummer aan de bovenkant van de sheet?
"I don't know things I'm supposed to know, but I do know things I'm not supposed to know"
pi_96144410
Ik heb een grote lijst in Excel 2007 (NL) waarin veel kolommen staan. Graag wil ik alternerend een kleurtje geven aan bepaalde cellen. Ik kan geen screenshot maken want ik kan niet uploaden hier.

1
2
3
4
5
6
7
8
9
22 A B
22 C D
23 E F
23 G H
24 I J
24 K L
25 M N
25 O P
25 Q R
Ik wil hier de cellen met de getallen alternerend een kleur geven. Bijvoorbeeld 22 rood, 23 geel, 24 rood en 25 geel. Iemand een idee?
  vrijdag 29 april 2011 @ 16:33:02 #11
15967 Frollo
You know I am a righteous man
pi_96144816
quote:
0s.gif Op vrijdag 29 april 2011 16:23 schreef geelkuikentje het volgende:
Ik heb een grote lijst in Excel 2007 (NL) waarin veel kolommen staan. Graag wil ik alternerend een kleurtje geven aan bepaalde cellen. Ik kan geen screenshot maken want ik kan niet uploaden hier.
[ code verwijderd ]

Ik wil hier de cellen met de getallen alternerend een kleur geven. Bijvoorbeeld 22 rood, 23 geel, 24 rood en 25 geel. Iemand een idee?
Dat kan gewoon standaard in Excel 2007, ik heb deze versie alleen niet bij de hand. Maar zoek maar eens bij voorwaardelijke opmaak en zo.
pi_96158681
Hey all,

Ben aan het stoeien met een macro (newb), maar ik kom er niet uit. Wie kan mij vertellen hoe ik een macro maak die de rij waar ik in sta een kleur geeft.

Voorbeeld:
Ik heb een checkbox/button in A10, en wil zodra ik deze aanklik dat a1 t/m a10 een kleurtje krijg.

Kom er maar niet uit. thanks
pi_96228309
quote:
0s.gif Op vrijdag 29 april 2011 07:06 schreef DaFan het volgende:
SOM eromheen en bevestigen met Ctrl-Shift-Enter
Hoe bedoel je?

Ik heb dit geprobeerd:

1=10*LOG((10^(SUM(B1:B20)/10))/20)

&

1=SUM(10*LOG((10^(B1:B20/10))/20))

Beide levert niks op.

Het is dus niet de bedoeling dat er normaal wordt opgeteld, maar volgens deze formule:

1=10*LOG((10^(GELUIDSNIVEAU1/10)+10^(GELUIDSNIVEAU2/10)+10^(GELUIDSNIVEAU.../10))/Aantal geluidsniveaus)
  zondag 1 mei 2011 @ 23:32:26 #14
62215 qu63
..de tijd drinkt..
pi_96229755
quote:
0s.gif Op zondag 1 mei 2011 23:05 schreef Zalgo het volgende:

[..]

Hoe bedoel je?

Ik heb dit geprobeerd:
[ code verwijderd ]

&
[ code verwijderd ]

Beide levert niks op.

Het is dus niet de bedoeling dat er normaal wordt opgeteld, maar volgens deze formule:
[ code verwijderd ]

Heb je bij die 2e wel bevestigd met ctrl+shift+enter ipv enter?
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_96258143
quote:
0s.gif Op zondag 1 mei 2011 23:05 schreef Zalgo het volgende:

[..]

Hoe bedoel je?

Ik heb dit geprobeerd:
[ code verwijderd ]

&
[ code verwijderd ]

Beide levert niks op.

Het is dus niet de bedoeling dat er normaal wordt opgeteld, maar volgens deze formule:
[ code verwijderd ]

Sorry je hebt gelijk. Ik zat op mn telefoon te kijken en daar zag ik maar een piepklein deel van je formule.

Ik kom e rook niet helemaal uit maar dat komt meer omdat ik de formule niet begreep.
Wat is het gemiddelde van 1,2,3,4,5,6,7,8,9,10 als we het over geluidsniveau hebben?
Volgens mij dan 6,41 ?

Dan zou het dit moeten worden:
=10*LOG(SUM(10^(B1:B20/10))/20)

of fraaier nog denk ik:
=10*LOG(SUM(10^(B1:B20/10))/ROWS(B1:B20)

Bevestigen met Ctrl-Shift-Enter.
pi_96266221
quote:
0s.gif Op vrijdag 29 april 2011 21:58 schreef Regenbui het volgende:
Hey all,

Ben aan het stoeien met een macro (newb), maar ik kom er niet uit. Wie kan mij vertellen hoe ik een macro maak die de rij waar ik in sta een kleur geeft.

Voorbeeld:
Ik heb een checkbox/button in A10, en wil zodra ik deze aanklik dat a1 t/m a10 een kleurtje krijg.

Kom er maar niet uit. thanks
1
2
3
4
5
6
7
8
9
Private Sub CheckBox1_Click()

If CheckBox1.Value = True Then
    Range("A1:A10").Interior.ColorIndex = 3
Else
    Range("A1:A10").Interior.ColorIndex = xlNone
End If

End Sub
pi_96291329
quote:
7s.gif Op maandag 2 mei 2011 17:53 schreef DaFan het volgende:

[..]

Sorry je hebt gelijk. Ik zat op mn telefoon te kijken en daar zag ik maar een piepklein deel van je formule.

Ik kom e rook niet helemaal uit maar dat komt meer omdat ik de formule niet begreep.
Wat is het gemiddelde van 1,2,3,4,5,6,7,8,9,10 als we het over geluidsniveau hebben?
Volgens mij dan 6,41 ?

Dan zou het dit moeten worden:
=10*LOG(SUM(10^(B1:B20/10))/20)

of fraaier nog denk ik:
=10*LOG(SUM(10^(B1:B20/10))/ROWS(B1:B20)

Bevestigen met Ctrl-Shift-Enter.
Hm. Ik heb het op een andere manier opgelost. Gewoon in gedeeltes gedaan. :)

Dus eerst alle resultaten 10^(resultaat/10)

Daarna de 10log van deze opgeteld gepakt. :) Ik zal jouw manier nog eens proberen, dat zou nl. wat compacter zijn. :P

In ieder geval; bedankt. :)
pi_96331818
Wat is de makkelijkste manier om formules te beveiligen in Excel2007-NL? Ik heb een bestand met heel veel kolommen met formules, en ik wil niet dat mensen daar per ongeluk of bewust waardes invullen.
Maar het moet wel makkelijk uit te zetten zijn, als er dingen veranderd moeten worden (dus niet per cel ofzo) :P
Kan dat in 1 keer op totaalniveau?
pi_96333771
Oh, en nog een wat lastigere vraag. Ik heb de volgende matrix:

1
2
3
Onderdeel 1     waarde 1      waarde 2     waarde 3
Onderdeel 2     waarde 1      waarde 2     waarde 3 
Onderdeel 3     waarde 1      waarde 2     waarde 3 
Die wil ik (automatisch) converteren naar:
1
2
3
4
5
6
Onderdeel 1   waarde 1
Onderdeel 1   waarde 2
Onderdeel 1   waarde 3
Onderdeel 2   waarde 1
Onderdeel 2   waarde 2
Onderdeel 2   waarde 3
Het aantal kolommen (waardes) kan variëren, om het nog leuker te maken :')
En het gaat om nogal wat gegevens :P Ik hoop dat iemand er een handigheidje voor heeft, ik kan het zo even niet bedenken.
pi_96340038
quote:
0s.gif Op woensdag 4 mei 2011 10:18 schreef Piles het volgende:
Wat is de makkelijkste manier om formules te beveiligen in Excel2007-NL? Ik heb een bestand met heel veel kolommen met formules, en ik wil niet dat mensen daar per ongeluk of bewust waardes invullen.
Maar het moet wel makkelijk uit te zetten zijn, als er dingen veranderd moeten worden (dus niet per cel ofzo) :P
Kan dat in 1 keer op totaalniveau?
In het menu "Review" heb je de opties "Protect Sheet" en "Protect workbook", daarin kun je aangeven wat er wel en niet mag.
Vervolgens kies je de opties "allow users to edit ranges". Daar kies je het gebied waar gebruikers wel dingen mogen veranderen en kies je protect sheet. Als het goed is is je geselecteerde range dan vrijgegeven om te bewerken en is de rest geblokkeerd met een password.

[ Bericht 9% gewijzigd door Deetch op 04-05-2011 14:01:19 ]
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_96340189
quote:
0s.gif Op woensdag 4 mei 2011 13:45 schreef Deetch het volgende:

[..]

In het menu "Review" heb je de opties "Protect Sheet" en "Protect workbook", daarin kun je aangeven wat er wel en niet mag. Vervolgens kun je gebruikers bepaalde cellen wel laten bewerken (de invulcellen) en de rest dan dus niet. Let op deze werkt met een password dus die moet je niet kwijtraken.
Gewoon geen wachtwoord invullen is goed genoeg :P Jammer dat je wel de uitzondering aan moet geven. Ik heb liever dat men formules niet mag bewerken/verwijderen en de rest wel, maar dat kan dus niet automatisch. Bedankt iig :)
pi_96340790
quote:
0s.gif Op woensdag 4 mei 2011 13:48 schreef Piles het volgende:

[..]

Gewoon geen wachtwoord invullen is goed genoeg :P Jammer dat je wel de uitzondering aan moet geven. Ik heb liever dat men formules niet mag bewerken/verwijderen en de rest wel, maar dat kan dus niet automatisch. Bedankt iig :)
zonder password kan wel iedereen die "beveiliging" uitzetten. Maar ik denk dat jouw gebruikers allemaal ID-10T zijn?
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_96340830
quote:
0s.gif Op woensdag 4 mei 2011 14:02 schreef Deetch het volgende:

[..]

zonder password kan wel iedereen die "beveiliging" uitzetten. Maar ik denk dat jouw gebruikers allemaal ID-10T zijn?
:Y :')
Vandaar de beveiliging, voor ze m'n formules weer slopen :P
Heb je toevallig ook nog een oplossing voor mijn 2e vraag? O-)
pi_96342671
quote:
0s.gif Op woensdag 4 mei 2011 14:03 schreef Piles het volgende:

[..]

:Y :')
Vandaar de beveiliging, voor ze m'n formules weer slopen :P
Heb je toevallig ook nog een oplossing voor mijn 2e vraag? O-)
Nog even terug naar je eerste vraag. Het kan wel wat geautomatiseerder. Beschouw de volgende macro:

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

Sheet1.Unprotect
Sheet1.Cells.Locked = True

For i = 1 To 100
 If Left(Sheet1.Cells(i, 1).Formula, 1) <> "=" Then Sheet1.Cells(i, 1).Locked = False
Next i

Sheet1.Protect

End Sub

* Haal de beveiliging van het bald
* Zet alle cellen 'op slot'
* Haal vervolgens 'het slot' af van alle cellen waarin GEEN formule staat (in dit geval worden de cellen A1 t/m A100 gecheckt, maar je kan ook simpelweg loopen door alle (benodige) cellen)
* En zet de beveiliging er weer op

Dan zijn alle formule-cellen beveiligd.
pi_96343943
Macro's, die moet ik echt nog eens gaan leren :P Bedankt, ik ga m bewaren ^O^
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')