fout in code, ik zie 'em ff niet

Status
Niet open voor verdere reacties.

harrybrinkman

Gebruiker
Lid geworden
7 nov 2019
Berichten
95
Toppers,

hierbij een stukje uit mijn code;
Code:
Startrij = 617
Eindrij = Startrij + 3
Rows("Startrij:Eindrij").Select

VBA doet boos over het feit dat er iets niet goed is met het lijstscheidingsteken? Ik zie het, met mijn zeer beperkte VBA kennis ff niet.

Als ik het volgende typ vindt ie het wel goed
Code:
Rows("617:620").Select

wie ziet ém?

Alvast bedankt,
Harry
 
Code:
Rows(Startrij & ":" & Eindrij).Select
alhoewel, select, dat is vloeken in de kerk
 
Cow18,

Ik hoor van verschillende kanten dat "select" liever niet gebruikt mag worden in VBA, maar volgens mij ontkom ik er niet aan. Ik wil op een werkblad een (eigen)sortering aanbrengen, echter alleen vanaf een bepaalde rij (de bovenste 616 rijen mogen niet meedoen) en de eindrij is variabel (er kunnen meer rijen bijkomen waardoor de eindrij mee schuift uiteraard) Met mijn zeer beperkte kennis van VBA (lees: kleuterklas) had ik het volgende bedacht:
Code:
Sub sorteren()
ActiveSheet.Range("A617").Activate
Startrij = 617
Eindrij = Startrij + ActiveSheet.Range("A" & Rows.Count).End(xlUp)

    Rows(Startrij & ":" & Eindrij).Select
    ActiveWorkbook.Worksheets("Basisinrichting").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Basisinrichting").Sort.SortFields.Add2 Key:=Range("G" & Startrij & ":" & "G" & Eindrij), SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:="Kern,Vast,Flex", DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Basisinrichting").Sort
        .SetRange Range("A" & Startrij & ":" & "AK" & Eindrij)
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("B617").Select
End Sub

Lang verhaal kort..... volgens mij ontkom ik niet aan dat "select" omdat ik wil sorteren op een selectie.

Overigens bedankt voor jouw antwoord.

Harry
 
Laatst bewerkt:
geen enkele select en bovendien maakt het niet uit of je in een andere werkblad staat
Code:
Sub sorteren()
   With Sheets("Basisinrichting")                                    'je werkblad
      startrij = 617                                                 'beginrij
      eindrij = .Range("A" & Rows.Count).End(xlUp).Row               'eindrij
      If eindrij > startrij Then                                     'eindrij is na beginrij
         .Sort.SortFields.Clear                                      'vorige sorteersleutel verwijderen
         Application.AddCustomList ListArray:=Array("kern", "vast", "flex")   'je customlijst toevoegen
         .Range("A" & startrij & ":" & "AK" & eindrij).Sort .Range("G" & startrij), xlAscending, OrderCustom:=Application.CustomListCount + 1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, Header:=False
         Application.DeleteCustomList Application.CustomListCount    'je customlijst terug verwijderen
      End If
   End With
End Sub
 
Laatst bewerkt:
Code:
Sub M_snb()
   With Sheets("Basisinrichting").Cells(1).CurrentRegion.Resize(, 37)
     If .Rows.Count > 617 Then
        With .Offset(617)
            .Columns(7).Replace "kern", "1_kern", 2
            .Columns(7).Replace "vast", "2_vast", 2
            .Columns(7).Replace "flex", "3_kern", 2
            .Sort .Cells(1, 7)
            .Columns(7).Replace "1_", "", 2
            .Columns(7).Replace "2_", "", 2
            .Columns(7).Replace "3_", "", 2
        End With
    End If
  End With
End Sub
 
Laatst bewerkt:
ook een manier om een customlist te omzeilen:cool:
 
Beste Harry,

De oplossing is heel simpel:
Vervang "Rows" door "Range" en het moet wel werken.
Code:
Range(startrij & ":" & eindrij).Select
 
@rovo: Wat zeggen de échte kenners nou? Blijf bij .Select uit de buurt :).
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan