VBA-Code ändern
#21
Hallo Jo,

da muss man wohl grundsätzlich anders heran gehen. Das Userform übergibt nun mal Texte. Es bleibt da aus meiner Sicht nur die Möglichkeit, das Ganze nach dem Eintrag in die Liste entsprechend zu formatieren. Ein vorher festgelegte Format wird überschrieben. Sehe mir das noch mal an.

Hallo Jo,

das (zweite Programmzeile im Ausschnitt):

Code:
'Tabellenzeile hinzufügen
    Tabelle1.ListObjects(1).ListRows.Add.Range.Resize(1, UBound(arr) - LBound(arr) + 1) = arr

    Tabelle1.Cells(Range("B5").End(xlDown).Row, 2).NumberFormat = "ddd d. mmmm yy"

End Sub

hat es gebracht.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#22
Hallo Klaus Dieter,

vielen Dank,
ich komme im Moment nicht dazu deine CodeZeilen zu testen,
werde es aber Morgen umsetzen und dann melde ich mich nochmals.

LG Jo Blush

Hallo Crazy Tom,    Blush

vielen Dank auch an Dich für den Code,
komme im Moment nicht zum Testen, mache das aber
Morgen Früh und melde mich dann bei Dir.

LG Jo    05
Antworten Top
#23
Hallo an Crazy Tom und Klaus Dieter,

vielen lieben dank für Eure Hilfe. Super!  05
Jetzt ist es so wie ich mir das gedacht habe und kann den Post auf erledigt setzen.

Noch einen schönen Feiertag  15

LG Jo 100
Antworten Top
#24
moin,

hab noch ein bissel gespielt und würde das hier als einzigen Code hinter der Userform lassen

Code:
Private Sub btnAnlegen_Click()
    Dim lngZiel As Long
    With Sheets("Eingabe Einkäufe ") '<-- Leerzeichen am Ende
        lngZiel = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
        .Cells(lngZiel, 2).Value = CDate(txtDatum.Value)
        .Cells(lngZiel, 2).NumberFormat = "ddd   d.mmm yy"
        .Cells(lngZiel, 3).Value = CbHändler.Text
        .Cells(lngZiel, 4).Value = txtArtikel
        .Cells(lngZiel, 5).Value = txtEinheit
        .Cells(lngZiel, 6).Value = CbKategorie.Text
        .Cells(lngZiel, 7).Value = CLng(txtMenge)
        .Cells(lngZiel, 8).Value = CCur(txtEinzelpreis)
        .Cells(lngZiel, 9).Value = CCur(txtGesamtpreis)
    End With
    CbHändler.ListIndex = -1
    txtArtikel = ""
    txtEinheit = ""
    CbKategorie.ListIndex = -1
    txtMenge = ""
    txtEinzelpreis = ""
    txtGesamtpreis = ""
End Sub

Private Sub txtEinzelpreis_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Dim dblErg As Double
    If txtEinzelpreis = "" Then
        MsgBox "erst Preis eingeben"
        Cancel = True
    Else
        dblErg = CDbl(txtMenge) * CDbl(txtEinzelpreis)
        txtGesamtpreis.Value = dblErg
    End If
End Sub

Private Sub txtEinzelpreis_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Select Case KeyAscii
        Case 48 To 57, 44 '<--Komma
        Case Else: KeyAscii = 0
    End Select
End Sub

Private Sub txtMenge_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If txtMenge = "" Then
        MsgBox "erst Menge eingeben"
        Cancel = True
        Exit Sub
    End If
End Sub

Private Sub txtMenge_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Select Case KeyAscii
        Case 48 To 57 ', 44'<--Komma
        Case Else: KeyAscii = 0
    End Select
End Sub

Private Sub UserForm_Initialize()
'ComboBox befüllen
    CbHändler.List = Array("Würth", "Claasen", "Gleuer", "Reine") '....weitere
    CbKategorie.List = Array("Schrauben", "Muttern", "Gewindeschrauben", "Stockschrauben", "Hygieneartikel") '....usw.
    txtDatum.Value = Date
End Sub

mal davon ab...
wer wird mit der Datei arbeiten, du oder andere?
ist das ein einmaliges Projekt oder kommt da noch mehr?
willst du lernen oder reicht es dass es jetzt funktioniert?

mfg Tom
Antworten Top
#25
Moin Crazy Tom,    19

die Tabelle führe ich seit 2021 und arbeiten tu nur ich damit.
Ja,
die Eingaben mit einer Userform und Textfelder zu machen,
hat mich schons seit längerem interessiert, bin mit eigenen Versuchen aber gescheitert.
Natürlich ist auch der Lerneffekt wichtig.
Zu Deiner Frage obs noch mehr kommt:

Nö im Moment reicht mir, das es Super funktioniert, ist auch rein Privatgebrauch.

Jetzt nochmal zu dem neuen Code, am Besten mache ich von der Datei eine Kopie,
lösche alles im VBE und kopiere den neuen Code rein und schaue wie es klappt.  Blush 
Kann ich das so machen?

14:00 Uhr
Habe es gerade ausprobiert, ist auch so wie ich das haben möchte.
Suuuper. 18

LG Jo  17
Antworten Top


Gehe zu:


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