Hallo allemaal,
Ik wil graag een aantal functies schrijven met een bepaald doel allereerst moet ik uit een kolom genaamt logo alle namen sorteren naar een nieuwe kolom in een nieuwe sheet. Ik wil dan ook elke naam twee keer onder elkaar zetten in de nieuwe kolom. De kolom hiervoor wil ik gaan nummeren dus de cel voor de eerste naam word 1 de volgende 2 enzovoort.
De reden dat ik een functie wil maken voor dit doel is dat de volgorde van de kolommen nogal eens wijzigen.
De Sub hieronder heb ik inmiddels gevonden en deze doet al een klein beetje wat ik wil. Maar deze moet nog worden aangepast. De kolom waar de namen in staan kan nogal eens veranderen dus dat moet aan te passen zijn.
De volgende stap is dat ik de waarden uit andere cellen wil gaan uitlezen en aan de namen die in de kolom logo koppel aan de waarden van de kolom die ik met de vorige stap heb gemaakt. Maar dat zal ik zelf eerst wel proberen uit te zoeken. Als ik er niet uitkom dan laat ik wel weer van me horen.
Vast bedankt!
Ik wil graag een aantal functies schrijven met een bepaald doel allereerst moet ik uit een kolom genaamt logo alle namen sorteren naar een nieuwe kolom in een nieuwe sheet. Ik wil dan ook elke naam twee keer onder elkaar zetten in de nieuwe kolom. De kolom hiervoor wil ik gaan nummeren dus de cel voor de eerste naam word 1 de volgende 2 enzovoort.
De reden dat ik een functie wil maken voor dit doel is dat de volgorde van de kolommen nogal eens wijzigen.
De Sub hieronder heb ik inmiddels gevonden en deze doet al een klein beetje wat ik wil. Maar deze moet nog worden aangepast. De kolom waar de namen in staan kan nogal eens veranderen dus dat moet aan te passen zijn.
Code:
Private Sub CommandButton1_Click()
'Deze procedure bepaalt het aantal unieke waarden in het bereik
' D5:D300 en zet deze in kolom I. In kolom J komt het
' aantal keren dat de unieke waarde is gevonden.
'Daarna wordt deze lijst in I/J gesorteerd, eerst aflopend op het
' aantal keren dat hij is gevonden en dan alfabetisch op waarde.
'Vervolgens worden deze waarden op rij 3 geplaatst vanaf kolom L
' naar rechts.
'Dit voorbeeld gaat maar tot 10 unieke waarden. Voor meer moeten
' regels code voor de kolommen I en J, en voor het tellen
' worden uitgebreid.
Dim Hier, Einde, Test, Teller, c, Chk, varTest(40) As Variant
Dim x, Teller1, Teller2, Teller3, Teller4, Teller5, Teller6, _
Teller7, Teller8, Teller9, Teller10
Dim Laatste, Sorty, i
'Hier wordt het adres van de actieve cel vastgelegd
Hier = ActiveCell.Address
'Hier wordt de opslag van unieke waarden verwijderd en de titels
' op rij 3 verwijderd
Columns("I:J").Clear
Einde = Cells(3, 12).End(xlToRight).Column
Range(Cells(3, 12), Cells(3, Einde)).Clear
'Hier worden de verschillende teksten in een matrix opgeslagen
Test = "xxx"
Teller = 0
For Each c In [A1:A300]
Chk = c.Value
If InStr(1, Test, Chk, vbTextCompare) = 0 Then
Test = Test & ", " & Chk
Teller = Teller + 1
varTest(Teller) = Chk
End If
Next
'Hier worden de verschillende teksten in kolom B ingevuld
Sheets("Resultaat").Cells(1, 2).Value = varTest(1)
Sheets("Resultaat").Cells(2, 2).Value = varTest(2)
Sheets("Resultaat").Cells(3, 2).Value = varTest(3)
Sheets("Resultaat").Cells(4, 2).Value = varTest(4)
Sheets("Resultaat").Cells(5, 2).Value = varTest(5)
Sheets("Resultaat").Cells(6, 2).Value = varTest(6)
Sheets("Resultaat").Cells(7, 2).Value = varTest(7)
Sheets("Resultaat").Cells(8, 2).Value = varTest(8)
Sheets("Resultaat").Cells(9, 2).Value = varTest(9)
Sheets("Resultaat").Cells(10, 2).Value = varTest(10)
'Hier wordt het aantal keren van elke tekst geteld
For Each x In [B1:B300]
If x = varTest(1) Then
Teller1 = Teller1 + 1
Else
If x = varTest(2) Then
Teller2 = Teller2 + 1
Else
If x = varTest(3) Then
Teller3 = Teller3 + 1
Else
If x = varTest(4) Then
Teller4 = Teller4 + 1
Else
If x = varTest(5) Then
Teller5 = Teller5 + 1
Else
If x = varTest(6) Then
Teller6 = Teller6 + 1
Else
If x = varTest(7) Then
Teller7 = Teller7 + 1
Else
If x = varTest(8) Then
Teller8 = Teller8 + 1
Else
If x = varTest(9) Then
Teller9 = Teller9 + 1
Else
If x = varTest(10) Then
Teller10 = Teller10 + 1
Else
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
Next
'Hier wordt de onderste rij van de gegevens in kolom I bepaald
Laatste = Cells(65535, 9).End(xlUp).Row
'Hier worden de gevens gesorteerd, eerst op aantal keren gevonden
' en dan waarden alfabetisch.
Sorty = "I1:J" & Laatste
Range(Sorty).Sort Key1:=Range("J1"), key2:=Range("I1")
'Hier worden de waarden op rij 3 ingevuld vanaf kolom L.
For i = 1 To Laatste
Cells(3, i + 11).Value = Cells(i, 9).Value
Next
'Hier keer je terug naar de cel die was geselecteerd toen er
' op de knop werd gedrukt
Range(Hier).Select
End Sub
De volgende stap is dat ik de waarden uit andere cellen wil gaan uitlezen en aan de namen die in de kolom logo koppel aan de waarden van de kolom die ik met de vorige stap heb gemaakt. Maar dat zal ik zelf eerst wel proberen uit te zoeken. Als ik er niet uitkom dan laat ik wel weer van me horen.
Vast bedankt!