• 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.

Sorteren van bepaalde kolom op basis van "kolomnaam" (kopregel?)

Status
Niet open voor verdere reacties.
Code:
Dim pl
pl = Application.Match("Plaats_P1", Rows(5), 0)
If Not IsError(pl) Then Sheets(1).UsedRange.Sort Cells(5, pl), , , , , , , 1
End Sub
 
Harry, dank.
Sorteren op zich gaat goed.
Echter toegepast op mijn tabel A t/m Q, 5000+ regels; regel 6 =kopregel, daarboven in regel 3 wat tekst en een paar "macro-knoppen" die niet gerelateerd zijn aan cellen, daaronder moet gesorteerd worden: als het zaakje wordt geplaatst dan wordt begonnen op regel 2, is kopregel 6 weg, en staat tekst regel 3 onderaan.
Wat gaat hier fout? Nogmaals, er wordt goed gesorteerd op de juiste kolom.
 
Plaats eens een gelijkend voorbeeld met wat je bedoelt.
 
Test deze dan eens:
Code:
Sub cobbe()
Dim pl As Integer, Lrow As Integer
pl = Application.Match("Plaats_P1", Rows(6), 0)
If Not IsError(pl) Then
With Sheets(1)
 Lrow = .Columns(pl).SpecialCells(xlCellTypeLastCell).Row
    .Range(.Cells(7, pl), .Cells(Lrow, pl)).Sort key1:=.Cells(7, pl)
End With
End If
End Sub
 
Harry, ik heb voor gemak ff afbeelding gemaakt van tabel voor en na sort. Wel de gegevens weg gehaald maar de plaats waar gegevens staan voor en en de de sort een kleurtje gegeven. Als dit niet voldoende voor jou is om de oorzaak te vinden dan moet ik wat anders verzinnen (wil echte data niet op internet).
Cobbe, deze sorteert volgens mijn bevindingen op het voorbeeld alleen op C en neemt de rest van de kolommen niet mee.

Voor.JPG
Na.JPG
 
Dan pas je het sorteerbereik toch gewoon aan:
Code:
Sub cobbe()
Dim pl As Integer, Lrow As Integer
pl = Application.Match("Plaats_P1", Rows(6), 0)
If Not IsError(pl) Then
With Sheets(1)
 Lrow = .Columns(pl).SpecialCells(xlCellTypeLastCell).Row
    .Range(.Cells(7, 2), .Cells(Lrow, 5)).Sort key1:=.Cells(7, pl)
End With
End If
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan