Im Array kann man den Preis berechnen und in die Tabelle zurückschreiben. Da braucht es dann keine Formel in der Tabelle. Dazu bietet sich in diesem Falle gleich eine brauchbare Fehlerbehandlung mit an.
Das wäre dann so:
Code:
Private Sub btnAnlegen_Click() Dim i&, arr(): arr = Array(CDate(txtDatum), txtHändler.Value, txtArtikel.Value, txtEinheit.Value, CbKategorie.Value, txtMenge, txtEinzelpreis, txtGesamtpreis) If CbKategorie.ListIndex = -1 Then MsgBox "keine Kathegorie ausgewählt" CbKategorie.SetFocus Exit Sub End If For i = 5 To 7 If IsNumeric(arr(i)) Then arr(i) = CDbl(arr(i)) If i = 6 Then arr(7) = arr(5) + arr(6) txtGesamtpreis = arr(7) Exit For End If Else MsgBox "Es sind nur numerische Werte zulässig" With Controls(arr(i).Name) .SetFocus .Value = "" End With Exit Sub End If Next i 'Tabellenzeile hinzufügen Tabelle1.ListObjects(1).ListRows.Add.Range.Resize(1, UBound(arr) - LBound(arr) + 1) = arr End Sub
23.04.2024, 09:08 (Dieser Beitrag wurde zuletzt bearbeitet: 23.04.2024, 09:14 von johammer.)
Moin Egon,
der VBA Code funktioniert, bis auf diese Zeile: arr(7) = arr(5) + arr(6), habe dann das Pluszeichen mit dem Stern'chen geändert, Jetzt ist alles gut, Super.
Herzlichen Dank
LG aus dem Rheinland Jo Moin Günter,
vielen Dank für Deine Hilfe, habe die Codezeile hinzugefügt und das Textfeld Gesamtpreis in der UF entfernt wie du gesagt hast, klappt einwandfrei, Super. Den Post setze ich nun auf Erledigt