• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Regels selecteren en sorteren

Status
Niet open voor verdere reacties.

Sytse1

Gebruiker
Lid geworden
9 aug 2007
Berichten
584
Office versie
miDer
Bekijk bijlage testsorteren.xlsBekijk bijlage TestZomer2012.xlsBekijk bijlage testsorteren.xlsIk gebruik Excel 2003
Ik zou graag het volgende in VBA willen hebben om dit aan een menuoptie te koppelen.
In het werkblad staat in een cel in kolom B een naam.
De eerste regels (b.v. 5) zijn leeg.
Het totaal aantal regels die met een naam worden gevuld zijn aaan wijzigingen onderhevig.
De regels zijn wel aaneen er zijn geen lege regels tussen.
Ik wil een selectie van de regels op basis van de vraag: als de cel in kolom B niet leeg is selecteer de regel. (<> " ")
Vervolgens moeten de geselecteerde regels op basis van kolom B oplopend gesorteerd worden.
Het leek mij eenvoudig maar ik kom er niet uit.
Wel om b.v. te kijken of de cel niet leeg is. Maar om daarna de regel te selecteren en vervolgens de geselecteerde regels te sorten dat lukt niet wie weet raad?
Hieronder een stukje VBA die kijkt of de cel niet leeg is.
Graag jullie reactie
Sytse

Code:
Dim i As Long
With ActiveWorkbook.Sheets(1)
For i = 200 To 1 Step -1
If .Cells(i, "B") <> " " Then
.Cells(i, "B").Select 'dit moet dan een regel zijn de cel wordt evengoed (niet zichtbaar) geselecteerd.
End If
Next i
End With
 
Laatst bewerkt:
Doe er eens een .xls bestandje bij met wat je wil bereiken Sytse.
 
Ik heb er een bestandje bijgesloten.
De macro is wat gepruts,
Sytse
 
Is deze beter?
Code:
Sub NamenSorterenopVoornaam()
 Sheets("Blad1").Range("B5").CurrentRegion.Sort [B5]
End Sub
 
Ja voor het sorteren wel maar zoals ik al in mijn bericht aangaf eerst moeten de betreffende regels gesorteerd worden.
De namen staan in kolom B. Dit aantal is variabel.
De eerste regels (b.v. 5) zijn leeg. De volgende 120 zijn gevuld.
Het totaal aantal regels die met een naam worden gevuld zijn aaan wijzigingen onderhevig.
De regels zijn wel aaneen er zijn geen lege regels tussen.
Ik wil een selectie van de regels op basis van de vraag: als de cel in kolom B niet leeg is selecteer de regel. (<> " ")
Vervolgens moeten de geselecteerde regels op basis van kolom B oplopend gesorteerd worden.
Dit werkt
Rows("1:101").Select
Range("A101").Activate
maar omdat het variabel moet zijn moeten de regels d.m.v. b.v. Dim A, B ingevuld worden vandaar een lus noodzakelijk.
 
Laatst bewerkt:
Leg mij nu eens uit wat mijn code niet doet volgens jou.
Én, lees je eerste regel zelf eens terug.
 
Jouw code werkt uitstekend.
Ik heb een nieuw bestand bijgesloten. Je kan zien dat er boven de namen en onder de namen regels staan die niet meegesorteerd moeten worden. Jouw code sorteerd alles
Sytse
 
Je kan je werkblad gewoon blijven uitbreiden naar rechts, en naar onderen.

Code:
Sub NamenSorterenopVoornaam()
 Sheets("Zomer2012periode1").Range("B5:" & Cells(Cells(Rows.Count, 2).End(xlUp).Row, Cells(3, Columns.Count).End(xlToLeft).Column).Address).Sort [B5]
End Sub
 
En weer bedankt.
Als ik jouw VBA nu op kolom c zou willen toepassen hoeft ik dan B5 alleen maar door C5 vervangen?
Ik probeer je VBA te doorgronden maar ik denk dat bovenstaande aanpassing te simpel is?
Maar ik ga het uitproberen. En ja alleen de laatste B5 vervangen door C5 en het werkt.
Nogmaals bedankt,
Sytse
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan