vervangen van rijen in VBA door andere waarden bij dezelfde variabelen.

Status
Niet open voor verdere reacties.

AM92

Nieuwe gebruiker
Lid geworden
10 nov 2015
Berichten
1
Ik ben op dit moment bezig om een tool te bouwen waarbij een zager de zaagstand per profielnummer kan invoeren in Excel, vervolgens worden deze gegevens doorgestuurd naar een database. Hieronder een kleine weergave van de database:

Profielnummer zaagstand
68897 10
9100634 7
34320 8
68903 10
69608 10
41079 10

Op dit moment heb ik al in codes geschreven dat je in een formulier kan invullen wat het nummer en de bijhorende zaagstand is. Dit wordt automatisch geplaatst in de database. Hieronder is de desbetreffende code weergegeven:

Code:
Private Sub cmdToevoegen_Click()
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("zaagstanden")

'vindt laatst gebruikte cel, ga naar de volgende rij
iRow = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row

'controleer of er een naam is ingevuld
If Trim(Me.txtprofielnummer.Value) = "" Then
Me.txtprofielnummer.SetFocus
MsgBox "vul een profielnummer in"
Exit Sub
End If

If Trim(Me.txtZaagstand.Value) = "" Then
Me.txtZaagstand.SetFocus
MsgBox "vul een zaagstand in"
Exit Sub
End If

'plaatst de gegevens in de database
ws.Cells(iRow, 1).Value = Me.txtprofielnummer.Value
ws.Cells(iRow, 2).Value = Me.txtZaagstand.Value

'verwijder gegevens
Me.txtprofielnummer.Value = ""
Me.txtZaagstand.Value = ""

End Sub

Private Sub cmdSluiten_Click()
Unload Me
End Sub

Echter wil ik nu nog een controleerregel invoegen. Wanneer het ingevoerde nummer al bestaat maar staat opgeslagen met een andere zaagstand, dan moet de oude rij worden verwijderd. Ik weet niet hoe ik dit moet invoegen, ik hoop dat iemand mij kan helpen.
De code waar je het nummer moet invullen is Me.txtprofielnummer.Value
 
probeer zo eens

Code:
Private Sub CommandButton1_Click()
Dim iRow As Long, myrange As Range
Dim ws As Worksheet
Set ws = Worksheets("zaagstanden")
'vindt laatst gebruikte cel, ga naar de volgende rij
iRow = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
'controleer of er een naam is ingevuld
If Trim(Me.txtprofielnummer.Value) = "" Then
    Me.txtprofielnummer.SetFocus
    MsgBox "vul een profielnummer in"
    Exit Sub
End If
If Trim(Me.txtZaagstand.Value) = "" Then
    Me.txtZaagstand.SetFocus
    MsgBox "vul een zaagstand in"
    Exit Sub
End If
With ws
    Set myrange = .Cells.Find(what:=Me.txtprofielnummer, after:=.Cells(1, 1))
    If myrange Is Nothing Then
        'als profielnummer niet gevonden wordt plaatst de gegevens in de database
        ws.Cells(iRow, 1).Value = Me.txtprofielnummer.Value
        ws.Cells(iRow, 2).Value = Me.txtZaagstand.Value
        ElseIf Not myrange Is Nothing Then
        'als profielnummer wel gevonden wordt, overschrijf de zaagstand in de database
        ws.Cells(myrange.Row, 2).Value = Me.txtZaagstand.Value
    End If
End With
'verwijder gegevens
Me.txtprofielnummer.Value = ""
Me.txtZaagstand.Value = ""
End Sub

mvg
Leo
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan