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

Weergave regel na toevoegen vanuit Userform

Status
Niet open voor verdere reacties.

CamJacobus

Verenigingslid
Lid geworden
29 mrt 2016
Berichten
58
Goedemorgen,

Vanuit bijgevoegd bestand is het mogelijk om gegevens toe te voegen aan een tabel. Na het toevoegen van de regel wordt de tabel gesorteerd op datum. Het nadeel daarvan is dat de weergave begint bij de eerste regel. Nu wil ik dat de eerste regel van de tabel de nieuw toegevoegde regel te zien is na het toevoegen. Dit kan dus regel 300 zijn in de tabel. Hoe kan ik dat doen?

Alvast bedankt!

Bekijk bijlage Actieoverzicht voorbeeld.xlsm
 
Wellicht een 'verborgen' regelnummer?

Pas 'cmdToevoegen' aan als volgt aan:
Code:
..
Worksheets("Actieoverzicht").Range("J" & appendRow).Value = cboStatus
    Worksheets("Actieoverzicht").Range("K" & appendRow).Value = txtOpmerkingen
    [B]Worksheets("Actieoverzicht").Range("L" & appendRow).Value = "#" & appendRow.Value[/B]
    
    ActiveWorkbook.Worksheets("Actieoverzicht").ListObjects("TB_actieoverzicht"). _
        Sort.SortFields.Add Key:=Range("TB_actieoverzicht[[#All],[Datum]]"), SortOn _
        :=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Actieoverzicht")
        With .ListObjects("TB_actieoverzicht")
            .Sort
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        [B]Application.Goto .Cells(.Columns(12).SpecialCells(2).Find("#" & appendRow.Value).Row, 1)[/B]
    End With

Nu komt in kolom L de regelnummer met een hekje. Deze zoek je aan het einde van je code weer op (zie vetgedrukte tekst).
Maak de kleur van de letters wit om de nummers te verbergen.

PS: Heb het niet kunnen testen i.v.m. het ontbreken van DatePicker (heb geen Access).
 
Laatst bewerkt:
Is het niet handiger om te zoeken naar een datum, zodat dit in de toekomst ook blijft werken? Hoe zou dat eventueel moeten?
 
Nee dat is het niet. Het feit blijft dat je ergens een referentie plaatst in de regel welke je als referentie kan gebruiken. Een datum is niet uniek, maar een regelnummer wel.
 
Mee eens.

Ik krijg bij de regel met de toevoeging van een regelnummer een foutmelding. Ik krijg de foutmelding "Compileerfout: Ongeldige kwalificatie" bij appendRow.Value. Wat gaat daar fout?
 
Zo dan..
Code:
Private Sub cmdToevoegen_Click()

    Dim appendRow As Long
    Dim nr As Variant

    ' add 1 to get the row after the last-populated row
    appendRow = Worksheets("Actieoverzicht").Cells(Rows.Count, 1).End(xlUp).Row + 1
    nr = "#" & appendRow

    Worksheets("Actieoverzicht").Range("B" & appendRow).Value = DTPicker1
    Worksheets("Actieoverzicht").Range("C" & appendRow).Value = cboKlant
    Worksheets("Actieoverzicht").Range("D" & appendRow).Value = cboInkoper
    Worksheets("Actieoverzicht").Range("E" & appendRow).Value = txtAantal
    Worksheets("Actieoverzicht").Range("F" & appendRow).Value = cboLogistiekedrager
    Worksheets("Actieoverzicht").Range("G" & appendRow).Value = txtProduct
    Worksheets("Actieoverzicht").Range("H" & appendRow).Value = cboLeverwijze
    Worksheets("Actieoverzicht").Range("I" & appendRow).Value = txtLocatie
    Worksheets("Actieoverzicht").Range("J" & appendRow).Value = cboStatus
    Worksheets("Actieoverzicht").Range("K" & appendRow).Value = txtOpmerkingen
    Worksheets("Actieoverzicht").Range("L" & appendRow).Value = nr
    
    ActiveWorkbook.Worksheets("Actieoverzicht").ListObjects("TB_actieoverzicht"). _
        Sort.SortFields.Add Key:=Range("TB_actieoverzicht[[#All],[Datum]]"), SortOn _
        :=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Actieoverzicht")
        With .ListObjects("TB_actieoverzicht").Sort
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        Application.Goto .Cells(.Columns(12).SpecialCells(2).Find(nr).Row, 1)
    End With
 
Helaas nog niet. Nu geeft hij een foutmelding bij de volgende coderegel:

Code:
        Application.Goto .Cells(.Columns(12).SpecialCells(2).Find(nr).Row, 1)

Als ik dan kijk naar kolom L bij de toegevoegde regel dan staat hier geen getal weergegeven.
 
En deze ?
Code:
Private Sub cmdToevoegen_Click()
    Dim appendRow As Long, nr As String

    ' add 1 to get the row after the last-populated row
    appendRow = Sheets("Actieoverzicht").Cells(Rows.Count, 1).End(xlUp).Row + 1
    nr = "#" & appendRow

    With Sheets("Actieoverzicht")
        .Cells(appendRow, 2).Resize(, 11).Value = Array(DTPicker1, cboKlant, cboInkoper, txtAantal, _
            cboLogistiekedrager, txtProduct, cboLeverwijze, txtLocatie, cboStatus, txtOpmerkingen, nr)
        With .ListObjects("TB_actieoverzicht")
            .Sort.SortFields.Add Range("TB_actieoverzicht[[#All],[Datum]]"), xlSortOnValues, xlAscending, , xlSortNormal
            With .Sort
                .Header = xlYes
                .MatchCase = False
                .Orientation = xlTopToBottom
                .SortMethod = xlPinYin
                .Apply
            End With
        End With
        Application.Goto .Cells(.Columns(12).SpecialCells(2).Find(nr).Row, 1)
    End With
End Sub
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan