Beste mensen,
Ik probeer voor een simpel planningstooltje in Excel2003 het volgende te doen. De functie is enigzins gelijk aan de 'voorwaardelijke opmaak' fuinctionaliteit, maar dan eentje die meer dan 3 voorwaarden aankan, in principe 'n' voorwaarden:
Zou heel erg geholpen zijn met iemand die - in tegenstelling tot ondergetekende - echt weet hoe je zoiets in VBscript moet aanpakken. Hieronder de code. Op verzoek stuur ik je heel graag de EXCEL file....
Alvast bedankt!
Stefan
Ik probeer voor een simpel planningstooltje in Excel2003 het volgende te doen. De functie is enigzins gelijk aan de 'voorwaardelijke opmaak' fuinctionaliteit, maar dan eentje die meer dan 3 voorwaarden aankan, in principe 'n' voorwaarden:
- in meerdere cellen in het planningstabblad worden waarden ingetypt (bijv. dirk, martijn, klaas)
- op een speciaal tabblad worden eenmalig namen ingetypt (bijv. dirk, martijn, klaas) en die cellen voorzien van een bepaalde achtergrondkleur.
- dan wordt een VB script geactiveerd om de planning 'in te kleuren' en totalen te tellen
- het script loopt door alle (eenmalig ingevoerde) waarden op het speciale tabblad en slaat de waarde van de cel en de corresponderende achtergrondkleur in een array op.
- dan loopt het script door de waardes in de array en zoekt corresponderende celwaarden in het planningstabblad. Bij elke 'gevonden' waarde wordt de corresponderende achtergrondkleur toegepast op de betreffende cel.
- Tevens wordt bij elke 'gevonden' waarde een teller opgehoogd, zodat het totaal van voorkomende waarden kan worden weergegeven.
- idealiter moeten deze totalen onderaan elke kolom van het planningstabblad separaat worden geteld en weergegeven.
Zou heel erg geholpen zijn met iemand die - in tegenstelling tot ondergetekende - echt weet hoe je zoiets in VBscript moet aanpakken. Hieronder de code. Op verzoek stuur ik je heel graag de EXCEL file....
Alvast bedankt!
Stefan
Visual Basic:
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
| Public workerNames, workerCols As Variant Sub FindAndSetColors(numItems) Dim worker As Integer For worker = 0 To numItems With Worksheets(1).Range("a1:x100") sVal = workerNames(worker) MsgBox "zoek naar: " & sVal Set c = .Find(sVal, LookIn:=xlValues) If Not c Is Nothing Then 'MsgBox "gevonden: " & sVal & " in cell: " & c.Address firstAddress = c.Address Do 'MsgBox c.Address Interior.ColorIndex = workerCols(worker) Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address <> firstAddress End If End With Next worker End Sub Sub GetNameColors(numItems) Dim worker As Integer With Worksheets(2).Range("naamkleuren") For worker = 0 To numItems sVal = workerNames(worker) MsgBox "zoek naar: " & sVal Set c = .Find(sVal, LookIn:=xlValues) If Not c Is Nothing Then workerCols(worker) = c.Interior.ColorIndex MsgBox "gevonden kleurcode voor: " & sVal & " is: " & workerCols(worker) Else MsgBox sVal & " is niet gevonden" End If Set c = Nothing Next worker End With End Sub Sub updateColors() workerNames = Array("dirk", "martijn", "stefan", "dorothee", "martin", "mark", "hendrik", "pieter") numItems = 3 'UBound(workerNames) workerCols = Array(numItems) GetNameColors numItems FindAndSetColors numItems End Sub |
[ Voor 0% gewijzigd door een moderator op 24-05-2007 00:42 . Reden: codetags ]