[VBA] Excel 2010 FOR loop i.c.m. CheckBoxjes werkt niet

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • DocM3
  • Registratie: Maart 2008
  • Laatst online: 03-02-2023
Halloos,

Voor mijn werk probeer ik middels Excel een dynamische to do lijst te bouwen. Middels een for loop wil ik controleren of een vinkje is geplaatst bij checkbox1 t/m 5. Op het moment dat dit zo is dan moeten de taken getoond worden die prioriteit 1 of 2 of 3 of 4 of 5 heeft, afhankelijk van welke is aangevinkt.

Nou krijg ik twee dingen niet voor elkaar:

a) Het dynamisch controleren of checkbox1,2,3,4,5 "true" is op lijn 3;
b) Het éénmalig tonen van de taak als het juist is

De code die ik hieronder toon controleert statisch CheckBox1. Daarnaast toont het vervolgens de enige taak met prioriteit 1, vijf maal als CheckBox1 haar value "true" is. Dit moet natuurlijk maar één keer.

Of ik nou de if statement aanpas, de for loops omdraai, het baat niet. Boven mijn hoofd hangt inmiddels één groot vraagteken. 8)7 Ik hoop dat iemand mij verlichting kan brengen. :9


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
 Dim counter As Integer
    For I = 2 To NumOfRows
        If CheckBox1 = True Then
            For counter = 1 To 5
                If TaskArray(I - 1, Prio) = 1 And TaskArray(I - 1, Prio) <> "" And TaskArray(I - 1, NaamKlant) = geselecteerdeKlantTakenLijst Then
                    TaskPlotArray(X, 0) = TaskArray(I - 1, TaskDone)
                    TaskPlotArray(X, 1) = TaskArray(I - 1, NaamKlant)
                    TaskPlotArray(X, 2) = TaskArray(I - 1, Item)
                    TaskPlotArray(X, 3) = TaskArray(I - 1, Prio)
                    TaskPlotArray(X, 4) = TaskArray(I - 1, HoursPerWeek)
                    TaskPlotArray(X, 5) = TaskArray(I - 1, TrueHoursPerWeek)
                    X = X + 1
                ElseIf TaskArray(I - 1, Prio) = 1 And TaskArray(I - 1, Prio) <> "" And geselecteerdeKlantTakenLijst = "" Then
                    TaskPlotArray(X, 0) = TaskArray(I - 1, TaskDone)
                    TaskPlotArray(X, 1) = TaskArray(I - 1, NaamKlant)
                    TaskPlotArray(X, 2) = TaskArray(I - 1, Item)
                    TaskPlotArray(X, 3) = TaskArray(I - 1, Prio)
                    TaskPlotArray(X, 4) = TaskArray(I - 1, HoursPerWeek)
                    TaskPlotArray(X, 5) = TaskArray(I - 1, TrueHoursPerWeek)
                    X = X + 1
                End If
            Next
        End If
    Next

Don't they have towels in the future ?


Acties:
  • 0 Henk 'm!

  • rikkert278
  • Registratie: Februari 2010
  • Laatst online: 13-06-2024
DocM3 schreef op zaterdag 04 augustus 2012 @ 01:59:

*snip*

a) Het dynamisch controleren of checkbox1,2,3,4,5 "true" is op lijn 3;
b) Het éénmalig tonen van de taak als het juist is

De code die ik hieronder toon controleert statisch CheckBox1. Daarnaast toont het vervolgens de enige taak met prioriteit 1, vijf maal als CheckBox1 haar value "true" is. Dit moet natuurlijk maar één keer.

Of ik nou de if statement aanpas, de for loops omdraai, het baat niet. Boven mijn hoofd hangt inmiddels één groot vraagteken. 8)7 Ik hoop dat iemand mij verlichting kan brengen. :9

*snip*
a). Kun je hier niet veel beter Radioboxen gebruiken? Dan kan er maar eentje aangevinkt zijn, of een dropdown menu, of een NumericUpDown?

Dan kun je in het CheckedChanged event van de radio boxen een variable zetten naar de integer van de prioriteit, en dan kun je makkelijk dit doen:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Dim prioriteit As Integer

Select Case prioriteit
     Case 1
          ' Code
     Case 2
          ' Code
     Case 3
          ' Code
     Case 4
          ' Code
     Case 5
          ' Code
End Select


Verder snap ik niet helemaal wat er in de loop gebeurt, ik vind je uitleg wat vaag. Kun je dit misschien wat verduidelijken?

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.