Rijen tellen en alfabetisch sorteren op naam

Status
Niet open voor verdere reacties.

Budschop

Nieuwe gebruiker
Lid geworden
6 jun 2022
Berichten
2
Hi all,

Ik heb een userform met daarin 5 textboxen welke worden weggeschreven naar een werkblad (DATA).
Bij het opslaan (dus wegschrijven naar de database) worden de waarden op alfabetische volgorde weggeschreven.
De alfabetische volgorde is op basis van de eerste kolom.
Onderstaand de code welke ik hiervoor heb gebruikt:

Code:
RowCount = ws.Range("A2").CurrentRegion.Rows.Count
ws.Sort.SortFields.Clear
ws.Sort.SortFields.Add Key:=Range("A2") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
x = "A2"
y = "E" & RowCount
With ws.Sort
.SetRange Range(x & ":" & y)
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

So far so good, maar ....

Nu wil ik dat als er geen waarde in het eerste invoervak is ingevuld, er wordt gekeken naar het tweede invoervak en deze dus moet worden meegenomen in het sorteren op alfabet.
Dus het alfabetisch sorteren niet alleen kolom 1, maar indien geen waarde in kolom 1 naar de waarde in kolom 2 wordt gekeken.

Indien de waarde in invoervak 1 én invoervak 2 worden ingevuld, is de waarde van het tweede invoerveld niet van belang.
Dan geldt de waarde van het eerste invoervak!

In de bijlage een voorbeeldbestand.
Hierin zie je dat bij het vullen van de database de waardes van het eerste invoervak netjes op alfabetische volgorde worden weggeschreven.
Echter bij geen waarde sluit deze als het ware onderaan in de kolom (laatste positie)

Is hier een oplossing voor?
 

Bijlagen

Gebruik de macrorecorder eens bij soteren aangepast ...
 
Dank voor je reactie!

De macro opnemen bij het sorteren geeft (helaas) niet het gewenste effect.

Het "probleem" is echter dat er een voorwaarde aan verbonden is bij het sorteren.

Ik sorteer (in de basis) de eerste kolom, echter is een cel leeg, dan zal de volgende cel (zelfde rij) in de tweede kolom moeten worden meegenomen in de sortering.
Misschien helpt onderstaande afbeelding ...

Eerste is hetgeen wat er wordt ingevoerd (volgorde)
Tweede is de huidige sortering
Derde is de gewenst sortering waarbij dus waarde de waarde van de lege cel wordt "overgeslagen" en de daarnaast liggende cel wordt meegenomen in de sortering.

Voorbeeld.jpg

Er is uiteraard een mogelijkheid om middels hulpkolommen toch het gewenste resultaat te verkrijgen, maar als er een code voorhanden is, dan liever dat ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan