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, 08:08 (Dieser Beitrag wurde zuletzt bearbeitet: 23.04.2024, 08: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