Ik heb een formulier gemaakt. Bij het laden van dit formulier worden een aantal tekstvelden gevuld (adres e.d.) aan de hand van een eerder ingevuld klantnummer. Als op het opslaan knopje wordt gedrukt wordt er gecontroleerd of de waardes in de tekstvelden nog overeenkomen met de achterliggende database. Indien dat niet het geval is, worden deze nieuwe waardes weggeschreven naar een ander tabblad. De code werkt, maar is lang en repetitief. Hieronder een voorbeeld van de code, hierbij betreft het maar twee tekstvelden.
Is er een manier om deze code korter te schrijven, waarbij de tussenliggende code voor elke vergelijking wordt uitgevoerd?
Code:
'Zoekt de waardes in een achterliggende database en koppelt deze aan een variabele.
Set colRange = Worksheets("Relatiebestand").Range("A:A")
Var1 = WorksheetFunction.Index(Range("R_Debnaam"), WorksheetFunction.Match(CLng(ComboBox1), colRange, 0) - 1)
Var2 = WorksheetFunction.Index(Range("R_Plaats"), WorksheetFunction.Match(CLng(ComboBox1), colRange, 0) - 1)
'Voert de code uit voor elke textbox en vergelijkt deze met de variabele
'Indien deze niet overeenkomt, en dus is gewijzigd, dan word deze weggeschreven naar de onderste rij van een tabblad
'Hierbij worden de kolommen klantnummer, datum, oude waarde, nieuwe waarde gevuld
'In werkelijkheid gaat het hier om een 15 tal textboxes
If TextBox1 <> Var1 Then
Newrow = Sheets("mutatie").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Row
Sheets("Mutatie").Range("A" & Newrow) = ComboBox1
Sheets("Mutatie").Range("B" & Newrow) = Date
Sheets("Mutatie").Range("D" & Newrow) = Var1
Sheets("Mutatie").Range("E" & Newrow) = TextBox1
End If
'Herhaalt de code uit voor de 2e textbox met bijbehorende variabele
If TextBox2 <> Var2 Then
Newrow = Sheets("mutatie").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Row
Sheets("Mutatie").Range("A" & Newrow) = ComboBox1.Value
Sheets("Mutatie").Range("B" & Newrow) = Date
Sheets("Mutatie").Range("D" & Newrow) = Var2
Sheets("Mutatie").Range("E" & Newrow) = TextBox2.Value
End If
'etc.
Is er een manier om deze code korter te schrijven, waarbij de tussenliggende code voor elke vergelijking wordt uitgevoerd?