Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Userform
#11
Hallo Jo,

ersetze die folgenden Zeilen so:

    .Range(, 1).Value = txtDatum.Value
    .Range(, 2).Value = txtHändler.Value
    .Range(, 3).Value = txtArtikel.Value
    .Range(, 4).Value = txtEinheit.Value
    .Range(, 5).Value = CbKategorie.Value
    .Range(, 6).Value = CDbl(txtMenge.Value)
    .Range(, 7).Value = CDbl(txtEinzelpreis.Value)
    '         .Range(, 8).Value = CDbl(txtGesamtpreis.Value)
    .Range(, 8).Value = .Range(, 6).Value * .Range(, 7).Value

Das Feld "Gesamtpreis" kannst Du von der UserForm löschen!


Angehängte Dateien
.xlsm   Userform Daten in Tabelle schreiben - Kopie3.xlsm (Größe: 22,68 KB / Downloads: 6)
[Bild: attachment-190.gif]
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Antworten Top
#12
Hallo Jo,
 
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

Gruß Uwe
Antworten Top
#13
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.  18

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

LG aus dem Rheinland Jo 19
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste