Ga naar inhoud

Gegevens toevoegen aan tabel middels userform


Panna

Aanbevolen berichten

Ik heb een code gevonden die gegevens aan een tabelformat zou moeten toevoegen.  Als de tabel leeg is moet deze starten met invoegen op cel D2.  Als deze niet leeg is moeten de gevens worden ingevuld op de eerst volgende lege regel.

 

Heb al een juiste code die de gegevens toevoegd op de eerst volgende regel maar vind niet de juiste die gegevens toevoegd als de tabel als deze leeg is.  Dan gaat deze steeds naar regel 3 ipv regel 2.  Waarschijnlijk omdat dit een tabel is.  Hieronder de code die ik gevonden heb maar die werkt niet, krijg een error op "lastRow = Worksheets("Productiviteit").Range("D" & Rows.Count).End(xlUp).Row"

Private Sub cmdToevoegen_Click()
Dim lastRow As Long
lastRow = Worksheets("Productiviteit").Range("D" & Rows.Count).End(xlUp).Row
        ' Tabel bestaat niet, voeg gegevens toe aan cel D2
        ThisWorkbook.Sheets("Productiviteit").Range("D2").Value = Me.txtDatum.Value
        ThisWorkbook.Sheets("Productiviteit").Range("E2").Value = Me.txtDatumUur.Value
        ThisWorkbook.Sheets("Productiviteit").Range("F2").Value = Me.txtAantalVRG.Value
Else
        ' Tabel bestaat, zoek de laatste rij
        Set tbl = ThisWorkbook.Sheets("Productiviteit")
        lastRow = tbl.Range.Rows.Count + tbl.Range.Row - 1
        
        ' Voeg gegevens toe aan de eerstvolgende lege rij
        tbl.ListRows.Add
        tbl.Range(lastRow + 1, 4).Value = Me.txtDatum.Value
        tbl.Range(lastRow + 1, 5).Value = Me.txtDatumUur.Value
        tbl.Range(lastRow + 1, 6).Value = Me.txtAantalVRG.Value
    
    ' Wis invoervakken
    Me.txtDatum.Value = ""
    Me.txtDatumUur.Value = ""
    Me.txtAantalVRG.Value = ""
End Sub

 

Dank bij voorbaat !

Link naar reactie
Delen op andere sites

Hallo emielDS, allereerst bedankt voor de reactie.  Je hebt gelijk, en meestal steek ik er ook een voorbeeld bij.  Nu was de file zo groot en er zaten heel veel gegevens in die ik niet wou delen.  Dat was de reden dat ik alleen de code had gestuurd, dacht dat dit kon omdat er de mogelijkheid is om deze toe te voegen (zie knopje </>).  Maar swat, ik heb alvast het voorbeeld bestand van mij toch toegevoegd, helemaal moeten pimpen om alleen mijn vraag over te houden.

 

Waar ik eigenlijk op zoek naar ben is de code te kunnen gebruiken ongeveer zoals in voorbeeld wat ik eerder had gestuurd.  Ik vind dit meer overzichtelijk omdat je hier netjes de codes van de textboxen onder elkaar kan zetten.  In mijn voorbeeld zie je dat je deze allemaal achter elkaar moet zetten.  Tenzij je natuurlijk met ( Val(Replace(txtTotINK.Text, ",", ".")), _ ) de underscore naar de volgende regel gaat. Ook in de voorbeeld code van mijn eerste vraag worden de gegevens op regel 3 ingevuld in een lege tabel ipv van regel 2 in de Tabel.

 

Ik zie ook niet goed in jou voorbeeld hoe hier dan de regels van de textboxen die je toevoegd dan netjes onder elkaar staan. Kan hier wel mis in zijn. Heb ook jou bestand toegevoegd met extra textboxen.  Ff tussendoor, pivots maken lukt in jou voorbeeld niet omdat deze de gegevens niet als getal ziet, maar dat weet jij volgens mij ook wel, is trouwens maar een voorbeeld.

 

Hopelijk is alles een beetje duidelijk.  Alvast bedankt voor je tijd !

vergeten voorbeeld.xlsm Voorbeeld File.xlsm

Link naar reactie
Delen op andere sites

Is dit wat je bedoeld?

ps. gebruik nooit onnodige code

     gebruik knoppen idpv tekeningen

     kleur nooit gehele bladen, dat is enkel goed om een groot en traag bestand te maken

    gebruik geen samengevoegde cellen , maak gebruik van centreren over selectie

    excel is een rekenblad, voor kleurboeken bestaan er betere programma's

 

 

 

 

Voorbeeld File.xlsm

Link naar reactie
Delen op andere sites

Thanks emielDS, heb weer veel bijgeleerd. Handige tips. Ook de codes op die manier verkorten, heel handig.

Alleen de vraag van in begin is niet gans opgelost.  De reden waarvoor ik dat stukje code wil gebruiken is dat ik achteraf heel handig kan terug zien in de code waar alle gegevens precies terecht komen.  In het voorbeeld wordt het duidelijk.  Heb de knop (Private Sub cmdToevoegenV1_Click()) genoemd.  Daar werk ik dan met de kolom nummer, A, B, C  enz... echter hier werkt het dan weer niet als de tabel leeg is.   Heb al iets liggen proberen met jou stukje code:

 

    If .[a2] = "" Then
       .[a2].Resize(, 10).Value = gg

 

toe te voegen, maar dat lukt me niet. Hij slaat iedere keer die blauwe regel van een tabel over.  Hoe komt dat trouwens, kan je mij dat eens uitleggen aub? Wil altijd bijleren.  

Kan je eens kijken of je dan het juiste kan toevoegen aub?

Waarom werkt de code van geen letter mogelijk in te geven niet meer bij iedere textbox?  Onderstaand stukje code:

 

Private Sub txtINKVroege_Change() 'Deze code zorgt ervoor dat je aalleen maar cijfers mag invullen
    If txtINKVroege <> "" Then
    If IsNumeric(txtINKVroege.Value) Then
Else
    Application.EnableEvents = False
    MsgBox "Je mag alleen cijfers invullen!", vbOKOnly + vbExclamation, "Waarschuwing"
    txtINKVroege.Value = ("")
    Me.txtINKVroege.SetFocus
    Application.EnableEvents = True
    Exit Sub
End If
End If
    'Deze code zorgt ervoor dat a en b worden opgeteld
    a = Val(txtINKVroege.Text)
    b = Val(txtINKLate.Text)
    Sum = (a + b)
    txtTotINK.Text = Sum
End Sub

 

Bijgevoegd het aangepast bestand.

2.  "gebruik knoppen idpv tekeningen" Bedoel je hiermee geen figuur gebruiken maar de Button uit de formulierbesturingselementen?

3.  "kleur nooit gehele bladen, dat is enkel goed om een groot en traag bestand te maken" Bedoel je dan een stuk kleuren, bv wat je alleen zie?

4.  "gebruik geen samengevoegde cellen , maak gebruik van centreren over selectie" kan je mij dat eens tonen in het opstartblad?  Ik ken alleen samenvoegen en centreren.

 

Ik weet, veel vragen, maar zou je heel dankbaar zijn.

 

Voorbeeld File.xlsm

Link naar reactie
Delen op andere sites

×
×
  • Nieuwe aanmaken...

Belangrijke informatie

We hebben cookies geplaatst op je toestel om deze website voor jou beter te kunnen maken. Je kunt de cookie instellingen aanpassen, anders gaan we er van uit dat het goed is om verder te gaan.