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

Fout met eRow

Status
Niet open voor verdere reacties.

sparerib

Gebruiker
Lid geworden
22 sep 2009
Berichten
126
Ik werk met een userform om ingevulde data te verplaatsen naar een kruistabel in het werkblad 'Data'.
Hierbij gebruik ik de volgende formule:
Code:
Private Sub cmdInvoeren_Click()
'Range("Data!A2").Value = CBaabbcc
'Range("Data!B2").Value = TBdatum
'Range("Data!C2").Value = CBsoort
'Range("Data!D2").Value = CBduur
'Range("Data!E2").Value = TBnaam
eRow = Data.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
Cells(eRow, 1).Value = CBaabbcc
Cells(eRow, 2).Value = TBdatum
Cells(eRow, 3).Value = CBsoort
Cells(eRow, 4).Value = CBduur
Cells(eRow, 5).Value = TBnaam
End Sub

Nu krijg ik voortdurend de foutmelding bij de regel:
Code:
eRow = Data.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
Ik heb vanalles geprobeerd maar krijg dit niet werkende, ik wil namelijk dat hij automatisch naar de eerstvolgende regel gaat en geen regels overschrijft met de nieuwe data.

Ook wil ik als laatste toevoeging dat de userform een msgbox toont waarin gevraagd wordt of alle velden correct zijn ingevuld met de keuze ja of nee. Bij nee terug naar het formulier en bij ja dat de gegevens worden ingevuld en de userform automatisch wordt afgesloten.
Ik vraag mij af of de msgbox als volgt wordt opgesteld:
Code:
[I]If MsgBox("Correcte ingave?", vbYesNo + vbQuestion, "Kijk de gegevens na!") = vbNo Then Exit Sub[/I]
Ik weet niet waar ik deze moet zetten en waar ik de end if moet plaatsen.
Hoe de userform sluit aan het einde, weet ik niet samen te stellen.

Zouden jullie mij kunnen helpen?
Alvast bedankt.
 
Laatst bewerkt:
Lijkt het je niet handig om ook de betreffende foutmelding er bij te vertellen?
Maak er eens dit van:
Code:
Sheets("Data").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row

Bij de If regel zoals je die gebruikt voor de MsgBox hoort in dit geval geen End If.

Sluiten Userform:
Code:
Unload Me

Plaats ook eventueel een voorbeeld bestand.
 
Laatst bewerkt:
2 gokjes
* je hebt erow als integer gedeclareerd en je resultaat is groter dan 32.000 en een beetje
* er staat gegevens helemaal onderin die A-kolom van data.
wat is het resultaat van erow, eventjes zonder die offset(1) ?
Vraag dat eens af in een msgbox.
 
Lijkt het je niet handig om ook de betreffende foutmelding er bij te vertellen?
Fout 424: Object vereist

Maak er eens dit van:
Code:
Sheets("Data").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
Wat doe ik dan met:
Code:
Cells(eRow, 1).Value = CBaabbcc
Cells(eRow, 2).Value = TBdatum
Cells(eRow, 3).Value = CBsoort
Cells(eRow, 4).Value = CBduur
Cells(eRow, 5).Value = TBnaam
Moet ik deze helemaal verwijderen?
Indien ja, dan krijg ik de foutmelding: 438 Deze eigenschap of methode wordt niet ondersteund door dit object.

Plaats ook eventueel een voorbeeld bestand.
Ik zal er een maken, want het originele bestand is te groot, ik zal dit morgenvroeg toevoegen!
 
Laatst bewerkt:
Daar maak je dan dit van:
Code:
With Sheets("Data")
    .Cells(eRow, 1).Value = CBaabbcc
    .Cells(eRow, 2).Value = TBdatum
    .Cells(eRow, 3).Value = CBsoort
    .Cells(eRow, 4).Value = CBduur
    .Cells(eRow, 5).Value = TBnaam
End With
 
Daar maak je dan dit van:
Code:
With Sheets("Data")
    .Cells(eRow, 1).Value = CBaabbcc
    .Cells(eRow, 2).Value = TBdatum
    .Cells(eRow, 3).Value = CBsoort
    .Cells(eRow, 4).Value = CBduur
    .Cells(eRow, 5).Value = TBnaam
End With

Bedankt voor de hulp zover.
In de bijlage heb ik een voorbeeld toegevoegd met dezelfde opzet.
Helaas krijg ik met het aanpassen nog steeds foutmeldingen.
Ik snap in bovenstaande code helaas ook het gebruik van eRow niet meer, aangezien ik daar niet meer heen verwijs in de code.
 

Bijlagen

  • Voorbeeld.xlsm
    22,5 KB · Weergaven: 28
Laatst bewerkt:
Zo dus:
Code:
Private Sub CommandButton1_Click()
    If MsgBox("Correcte ingave?", vbYesNo + vbQuestion, "Kijk de gegevens na!") = vbNo Then Exit Sub
    With Sheets("Data")
        eRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
        .Cells(eRow, 1).Value = TB1
        .Cells(eRow, 2).Value = TB2
        .Cells(eRow, 3).Value = TB3
    End With
    Unload Me
End Sub
 
Zo dus:
Code:
Private Sub CommandButton1_Click()
    If MsgBox("Correcte ingave?", vbYesNo + vbQuestion, "Kijk de gegevens na!") = vbNo Then Exit Sub
    With Sheets("Data")
        eRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
        .Cells(eRow, 1).Value = TB1
        .Cells(eRow, 2).Value = TB2
        .Cells(eRow, 3).Value = TB3
    End With
    Unload Me
End Sub
Dit is perfect, ik snap nu de eRow ook.
Hartelijk bedankt voor de hulp, mijn vraag is nu opgelost!
 
Ik ben meer een fan van....
Code:
Private Sub CommandButton1_Click()
 If MsgBox("Correcte ingave?", vbYesNo + vbQuestion, "Kijk de gegevens na!") = vbyes Then
  Sheets("Data").Cells(Rows.Count, 1).End(xlUp).offset(1).resize(,3)= array(TB1, TB2, TB3)
  Unload Me
 end if
End Sub
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan