abonnement Unibet Coolblue
  zaterdag 28 januari 2012 @ 20:19:17 #1
62215 qu63
..de tijd drinkt..
pi_107337722


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.
Verder
Alle vorige topics zijn hier terug te vinden.

Nieuw topic? Haal de OP uit de wiki

[ Bericht 28% gewijzigd door qu63 op 30-01-2012 15:01:43 ]
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_107337810
quote:
0s.gif Op vrijdag 27 januari 2012 15:37 schreef qu63 het volgende:

[..]

Ik weet niet of dat ook werkt met je grafieklijn..
Oh, helemaal overheen gelezen :@ .
pi_107351593
Je kan eventueel wel de labels kleuren als je deze weergeeft in de grafiek.

Mijn eerste oplossing werkt trouwens wel als je geen lijn maar een staafdiagram maakt.

op deze site http://peltiertech.com/Excel/ChartsHowTo/ zie je een aantal voorbeelden van grafiek mogelijkheden.

van die site:



[ Bericht 10% gewijzigd door #ANONIEM op 29-01-2012 07:59:24 ]
pi_107364610
Wazaa

Tja mijn oplossing is uiteindelijk uitgebreide VBA maar goed

Dit is het resultaat:


De sheet is hier te vinden (draai macro PoseNegChart)

en dit is mijn 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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
Sub PosNegChart()
    Dim i       As Integer
    Dim j       As Integer
    Dim x       As Range
    Dim y       As Range
    Dim xnew()  As Double
    Dim ynew()  As Double

    'User input x en y waarden
    Set x = Application.InputBox("Kies range X-as", "FOK! Excel Help", , , , , , 8)
    Set y = Application.InputBox("Kies range Y-as", "FOK! Excel Help", , , , , , 8)
    
    ReDim xnew(0)
    ReDim ynew(0)

    For i = 1 To x.Rows.Count
        'Arrays uitbreiden
        ReDim Preserve xnew(UBound(xnew) + 1)
        ReDim Preserve ynew(UBound(ynew) + 1)
        'x en y waarden aan nieuw array toevoegen
        xnew(UBound(xnew)) = x(i, 1)
        ynew(UBound(ynew)) = y(i, 1)
                'Bekende (x1,y1) en (x2,y2) voor bepaling
                'Richtingscoëfficient en B uit y = ax + b
                
                A1 = x(i, 1)
                B1 = y(i, 1)
                
                A2 = x(i + 1, 1)
                B2 = y(i + 1, 1)
                
                'berekening y = 0 (snijdpunt x-as)
                SP = -1 * (B2 - (A2 * (B2 - B1) / (A2 - A1))) / (B2 - B1) / (A2 - A1)
                    
                    'test of snijden x-as plaatsvindt in deze verzameling
                    If SP > A1 And SP < A2 Then
                    
                        'uitbreiden nieuwe arrays en toevoegen y=0 snijpunten x as
                        ReDim Preserve xnew(UBound(xnew) + 1)
                        ReDim Preserve ynew(UBound(ynew) + 1)
                        ynew(UBound(ynew)) = 0
                        xnew(UBound(xnew)) = SP
                        
                    End If
        
    Next
    
    'actieve sheetnaam onthouden
    Dim Naam As String
    Naam = ActiveSheet.Name
    
    'Geheime sheet aanmaken (eerst verwijderen)
    On Error Resume Next
        Application.DisplayAlerts = False
        Sheets("FOK").Delete
        Application.DisplayAlerts = True
    On Error GoTo 0
        ActiveWorkbook.Sheets.Add
        ActiveSheet.Name = ("FOK")
        Sheets("FOK").Visible = False
    
    'Nieuwe serie x en y waarden plaatsen in geheime sheet
    For i = 1 To UBound(xnew)
        Sheets("FOK").Cells(i, 1) = xnew(i)
        Sheets("FOK").Cells(i, 2) = ynew(i)
    Next
    
    'Grafiek toevoegen
    Charts.Add
    ActiveChart.SeriesCollection.NewSeries
    ActiveChart.SeriesCollection(1).XValues = Sheets("FOK").Range(Sheets("FOK").Cells(LBound(xnew) + 1, 1), Sheets("FOK").Cells(UBound(xnew), 1))
    ActiveChart.SeriesCollection(1).Values = Sheets("FOK").Range(Sheets("FOK").Cells(LBound(xnew) + 1, 2), Sheets("FOK").Cells(UBound(xnew), 2))
    ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
    ActiveChart.Location Where:=xlLocationAsObject, Name:=Naam
  
    For i = 1 To UBound(xnew)
        On Error Resume Next
        If ynew(i) <= 0 And ynew(i + 1) <= 0 Then
            ActiveChart.SeriesCollection(1).Points(i + 1).Border.ColorIndex = 3
        End If
    Next
    
    
    ActiveChart.Legend.Delete

    
End Sub


[ Bericht 0% gewijzigd door #ANONIEM op 29-01-2012 16:00:32 ]
  zondag 29 januari 2012 @ 18:05:02 #5
85514 ralfie
!Yvan eht nioj
pi_107369301
@KritischeMassa
1
2
3
4
Dim x As Variant
x = Range("A1:B4")
MsgBox x(2,2)  'geeft waarde cell B2
Range("A12:B15") = x
Ranges kun je makkelijk converteren naar Variants, en omgekeerd. Gebruik is weinig anders als cells(2 argumenten, rij en kolom), maar snelheid is honderden malen sneller.
pi_107370529
quote:
0s.gif Op zondag 29 januari 2012 18:05 schreef ralfie het volgende:
@KritischeMassa
[ code verwijderd ]

Ranges kun je makkelijk converteren naar Variants, en omgekeerd. Gebruik is weinig anders als cells(2 argumenten, rij en kolom), maar snelheid is honderden malen sneller.
ok, dank je, ik zal het meenemen, ik dacht dat ik range moest gebruiken ivm met de input van user, ik had in het begin steeds fouten in de de uitvoering van code en kon niet vinden waar het lag. Uiteindelijk lag het niet aan de ranges maar heel ergens anders...

Ach ja, het is maar zondagmiddag code ;)
pi_107392878
Ik heb een excel overzicht met daarin in een kolom meetwaarden (getallen) per datum (andere kolom). Ik zou graag willen dat de laagste waarde uit de meetwaardenkolom automatisch een kleurtje krijgt.
Via voorwaardelijke opmaak een functie gehangen aan de kolom:
="min($C$3:$C$28)"
Deze functie heeft echter geen resultaat, geen enkele cel krijgt het gewenste kleurtje. Daarnaast heeft "min" een beperking tot maximaal 30 waarden terwijl ik er veel meer heb staan.

Ik gebruik duidelijk de verkeerde functie, maar welke moet ik dan wel hebben?

Excel 2003.
I removed all the bad food from my house.
It was delicious.
pi_107394852
Maak een cel waarin je zet =min(c:c)

vervolgens doe je voorwaardelijke opmaak vergelijken met die celwaarde

[ Bericht 1% gewijzigd door #ANONIEM op 30-01-2012 11:08:30 ]
  maandag 30 januari 2012 @ 11:24:58 #9
49641 Individual
Meet John Doe...
pi_107395271
Mooi, dankjewel KM, ik heb hem in m'n Excelbieb geplakt. ^O^
reset
pi_107397641
@Qu63, hoe maak je zo'n extra menu? en kun je die ook installeerbaar maken?
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_107397897
Kan de handige sheet met macros (tip 4) ergens anders geupload worden, de mediafire link werkt niet meer. ^O^
pi_107398690
quote:
6s.gif Op maandag 30 januari 2012 13:04 schreef Basp1 het volgende:
Kan de handige sheet met macros (tip 4) ergens anders geupload worden, de mediafire link werkt niet meer. ^O^
http://www.mediafire.com/?8kbsfc8v0mjyiff

Gek in de OP wiki had ik sowieso ook een ander link geplakt (ik had de OP geheel herschreven)
pi_107399347
quote:
4s.gif Op maandag 30 januari 2012 11:07 schreef KritischeMassa het volgende:
Maak een cel waarin je zet =min(c:c)

vervolgens doe je voorwaardelijke opmaak vergelijken met die celwaarde
^O^

Bedankt! Werkt perfect.
I removed all the bad food from my house.
It was delicious.
pi_107399552
quote:
3s.gif Op maandag 30 januari 2012 12:55 schreef Deetch het volgende:
@Qu63, hoe maak je zo'n extra menu? en kun je die ook installeerbaar maken?
zie de link aan Basp, het menu zit hierin met verklaringen

je kan het helemaal naar je hand zetten

Tip van mij, sla de sheet uiteindelijk op als .xla en zet hem als invoegtoepassing vast

vereist wel een goede verwijzing naar workbooks in je macro's (thisworkbook verwijst dan namelijk naar de .xla bijvoorbeeld)

quote:
0s.gif Op maandag 30 januari 2012 13:48 schreef Sometimes het volgende:

[..]

^O^

Bedankt! Werkt perfect.
:) geen probleem

[ Bericht 29% gewijzigd door #ANONIEM op 30-01-2012 13:53:40 ]
  maandag 30 januari 2012 @ 15:01:12 #15
62215 qu63
..de tijd drinkt..
pi_107401967
quote:
0s.gif Op maandag 30 januari 2012 13:30 schreef KritischeMassa het volgende:

[..]

http://www.mediafire.com/?8kbsfc8v0mjyiff

Gek in de OP wiki had ik sowieso ook een ander link geplakt (ik had de OP geheel herschreven)
Oeps, dan heb ik niet de goeie gepakt.. Ga em ff updaten!

quote:
3s.gif Op maandag 30 januari 2012 12:55 schreef Deetch het volgende:
@Qu63, hoe maak je zo'n extra menu? en kun je die ook installeerbaar maken?
Geen idee, dat was een screenshot van KritischeMassa :P
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
  maandag 30 januari 2012 @ 15:03:08 #16
62215 qu63
..de tijd drinkt..
pi_107402030
OP is geüpdatet, met dank aan KritischeMassa voor het herschrijven en uploaden van het excelbestand! *O*
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
  maandag 30 januari 2012 @ 15:05:54 #17
49641 Individual
Meet John Doe...
pi_107402134
reset
pi_107402149
Wat zitten er eigenlijk voor macro's in het macro bestand?
Het is geel en staat in mijn ondertitel!
3DS friend code: 2191-7623-9035
pi_107402366
quote:
7s.gif Op maandag 30 januari 2012 15:06 schreef Jesse_ het volgende:
Wat zitten er eigenlijk voor macro's in het macro bestand?
Zie OP

Een printertool waarmee je sheets uit alle openstaande workbooks kunt selecteren voor uitprinten
Een powerreplace waarmee je een term in alles openstaande workbooks in alle sheets kan vervangen
Een functievertaler, de functie in de actieve cel wordt in het engels weergegeven, ook kun je een functie in het engels ingeven en deze wordt dan in de juiste taal geplaatst
  maandag 30 januari 2012 @ 15:14:34 #20
28946 mirelia
Neehee ik ben geen vrouw!!
pi_107402446
quote:
0s.gif Op maandag 30 januari 2012 13:30 schreef KritischeMassa het volgende:

[..]

http://www.mediafire.com/?8kbsfc8v0mjyiff

Gek in de OP wiki had ik sowieso ook een ander link geplakt (ik had de OP geheel herschreven)
NOD32 gaat helemaal over zijn gerrit van deze link
Shuffle up and deal!!!
pi_107402746
quote:
0s.gif Op maandag 30 januari 2012 15:14 schreef mirelia het volgende:

[..]

NOD32 gaat helemaal over zijn gerrit van deze link
Dat is gek... er zit niets bijzonders in namelijk

Maar misschien worden VBA macro's per definitie als riskant beoordeeld?

Het is gewoon een zip file met hierin een sheet met macro's

Als je het niet vertrouwd kun je de sheet openen zonder macro's te activeren en de code bekijken

Ik kan leuk programmeren, maar een virus schrijven is een level of 100 te hoog gegrepen voor mij
pi_107404064
quote:
0s.gif Op maandag 30 januari 2012 15:23 schreef KritischeMassa het volgende:

[..]

Dat is gek... er zit niets bijzonders in namelijk

Maar misschien worden VBA macro's per definitie als riskant beoordeeld?

Het is gewoon een zip file met hierin een sheet met macro's

Als je het niet vertrouwd kun je de sheet openen zonder macro's te activeren en de code bekijken

Ik kan leuk programmeren, maar een virus schrijven is een level of 100 te hoog gegrepen voor mij
Je kan vast wel een excel bestand koppelen aan een simpel batch filetje dat even een deltree doet oid :P
Het is geel en staat in mijn ondertitel!
3DS friend code: 2191-7623-9035
pi_107405221
Je kan een macro een willekeurig bestand laten uitvoeren, dus ja niet echt lastig :)
Gebruik ik hier ook, maakt bij afsluiten van een master een kopie naar een Alleen-lezen map zodat de andere gebruikers niks kunnen verwijderen.
pi_107409577
quote:
7s.gif Op maandag 30 januari 2012 15:59 schreef Jesse_ het volgende:

[..]

Je kan vast wel een excel bestand koppelen aan een simpel batch filetje dat even een deltree doet oid :P
Ja ok, maar dat batchfiletje moet ik er dan wel bij leveren

en in die zip zit alleen de excel file

Nou goed, de file komt uit een goed hart, als jullie het niet vertrouwen zou ik het niet downloaden, simpel ;(

En geloof je echt dat ik mijn account op het spel zou zetten om iemand zijn harddisk te deleten?

Als iemand die de file wel heeft gedownload en getset heeft wil die hier dan aangeven dat er geen gekke dingen zijn gebeurd?

;( :'(
  maandag 30 januari 2012 @ 18:42:08 #25
28946 mirelia
Neehee ik ben geen vrouw!!
pi_107409914
Ik kreeg de meldingen op de site, niet op het bestand zelf.
Daar is niets mee aan de hand, excuses voor de verwarring
Shuffle up and deal!!!
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')