RoVo1211
Gebruiker
- Lid geworden
- 24 feb 2024
- Berichten
- 114
- Besturingssysteem
- Windows 11
- Office versie
- Office 365
Na een half jaartje er niet naar te hebben omgekeken, ben ik weer begonnen om de wedstrijdkalender van de Nationale Trio League (bowling) proberen om te zetten van tabelweergave naar een database waar men filters kan instellen.
Hierbij een voorbeeld van het bijgevoegde bestand:
Destijds (april dit jaar) is er een macro geschreven die een heleboel problemen oploste, maar als ik die execute wordt het hele gedeelte tussen for r1=... next r1 overgeslagen. Wat gaat hier fout. Ook de tekst van de macro zet ik in dit bericht:
Wat gaat hier fout?
End Sub
[/code]
Hierbij een voorbeeld van het bijgevoegde bestand:
Destijds (april dit jaar) is er een macro geschreven die een heleboel problemen oploste, maar als ik die execute wordt het hele gedeelte tussen for r1=... next r1 overgeslagen. Wat gaat hier fout. Ook de tekst van de macro zet ik in dit bericht:
Code:
Sub Splitsen()
'r1 rijnummer op Blad1
'r2 rijnummer op Blad2
'a array met alle elementen van de oneven rij, gesplitst op spatie, a(0) is het eerste element
'b array met alle elementen van de even rij, idem
With Sheets(1)
For r1 = 1 To Sheets(1).[A1].CurrentRegion.Rows.Count - 1 Step 2 'For loop die in stapjes van twee de rijen van Blad1 verwerkt.
For r2 = (r1 - 1) \ 2 + 1 To r1 + 1 'rij op werkblad 2 bepalen
a = Split(Cells(r1, 1), " ") 'splitst rij 1 op spatie
b = Split(Cells(r1 + 1, 1), " ") 'splitst rij 2 op spatie
Debug.Print Time() & vbNewLine & _
"a(0): " & a(0).Value & vbNewLine & _
"a(1): " & a(1).Value
.Cells(r2, 1) = a(0) 'eerste element van a komt in rij r2, kolom A van Blad2
.Cells(r2, 2) = a(1) 'tweede element van a
'AH hieronder geef je i een waarde
If a(2) = "Eredivisie" Then 'als poule = Eredisie
If a(8) = "BV" Then 'als a(8) = BV, teamnaam bestaat uit 5 elementen
.Cells(r1, 3) = a(3) & " " & a(4) & " " & a(5) & " " & a(6) & " " & a(7) '3e-7e element van a komt in kolom C, gescheiden door spaties
i = 8
ElseIf a(7) = "BV" Then 'als a(7) = BV, teamnaam bestaat uit 4 elementen
.Cells(r1, 3) = a(3) & " " & a(4) & " " & a(5) & " " & a(6) '3e-6e element van a komt in kolom C, gescheiden door spaties
i = 7
ElseIf a(6) = "BV" Then 'als a(6) = BV, teamnaam bestaat uit 3 elementen
.Cells(r1, 3) = a(3) & " " & a(4) & " " & a(5) '3e-5e element van a komt in kolom C, gescheiden door spaties
i = 6
ElseIf a(5) = "BV" Then 'als a(5) = BV, teamnaam bestaat uit 2 elementen
.Cells(r1, 3) = a(3) & " " & a(4) '3e-4e element van a komt in kolom C, gescheiden door spaties
i = 5
ElseIf a(4) = "BV" Then 'als a(4) = BV, teamnaam bestaat uit 2 elementen
.Cells(r1, 3) = a(3) '3e element van a komt in kolom C
i = 4
End If
Else
.Cells(r1, 3) = a(2) & " " & a(3) & " " & a(4) 'x & "e" divisie y
'AH die je hier wilt gebruiken, maar hier komt hij nooit als je al hierboven bent geweest.
'AH Als i hier al een waarde zou hebben is die van een vorige verwerkte rij
Select Case a(i) = "BV"
Case i = 9
.Cells(r1, 4) = a(5) & " " & a(6) & " " & a(7) '5e-7e element in kolom D
.Cells(r1, 5) = a(UBound(a)) 'BV-nr in kolom E
Case i = 8
.Cells(r1, 4) = a(5) & " " & a(6) '5e-6e element in kolom D
.Cells(r1, 5) = a(UBound(a)) 'BV-nr in kolom E
Case i = 7
.Cells(r1, 4) = a(5) & " " & a(6) '5e-6e element in kolom D
.Cells(r1, 5) = a(UBound(a)) 'BV-nr in kolom E
End Select
End If
Select Case UBound(b)
Case b = 1 'Kampioen Eredivisie
.Cells(r2, 7) = b(0)
.Cells(r2, 8) = b(1)
Case b = 2 'x"e" & plaats Eredivisie
.Cells(r2, 7) = b(0) & " " & b(1)
.Cells(r2, 8) = b(2)
Case b = 3 'Kampioen y"e" & divisie z
.Cells(r2, 7) = b(0)
.Cells(r2, 8) = b(1) & " " & b(2) & " " & b(3)
Case b = 4 'x"e" & plaats y"e" & divisie z
.Cells(r2, 7) = b(0) & " " & b(1)
.Cells(r2, 8) = b(2) & " " & b(3) & " " & (b4)
End Select
Next r2
Next r1
.Columns("A:H").EntireColumn.AutoFit 'pas de kolommen aan aan de langste tekst
.Select
End With
Wat gaat hier fout?
End Sub
[/code]