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.

Buchen Neu
#41
Hallo Leute!
Danke für die Anregungen.

@ Frank (WergibtmirRat)
Leider habe ich noch so meine Probleme mit den ID's, versuche es aber mit einzubauen.

@Stefan
Erstmal Danke.
Der Code funktioniert.

Zitat:Funktioniert nicht. Ich weiß jetzt auch nicht mehr, wo die Spende eingetragen werden soll bzw wie es bei der Auszahlung ist
.
Sorry nur wieder die hälfte geschrieben.
Sollte in der TextBox4 noch ein positiver Betrag stehen, kann man über die CheckBox2 anwählen ob dieser als Spende verbucht werden soll. Steht ein negativer Betrag dort und trotzdem die auswahl Spende getroffen ist darf der Betrag nicht gebucht werden.
Der positive Betrag wird dann in der Übersicht Spalte AG (Einnahmen aus diversen und Spenden) eingetragen.
z.B.
am 1.1.2016 gibt Andrea,Gaby und Michael jeweils beim Bezahlen eine Spend insgesamt 2,55€. Dann steht in der Zeile 1.1.2016 und der Spalte AG ein betrag von 2,55€.

Auszahlung meinte ich mit: das der Restbetrag der übrig ist als Wechselgeld zurück geht

Ich hoffe es ist nicht verwirrender.
mfg
Michael
:98:

WIN 10  Office 2019
Antworten Top
#42
Hallo Michael,

(20.08.2014, 09:22)michel34497 schrieb: z.B.
am 1.1.2016 gibt Andrea,Gaby und Michael jeweils beim Bezahlen eine Spend insgesamt 2,55€. Dann steht in der Zeile 1.1.2016 und der Spalte AG ein betrag von 2,55€.

Welches Datum soll da genommen werden? Denn das aktuelle Datum aus dem Tabellenblatt Startblatt ist noch nicht in der Tabelle Übersicht enthalten. Ich habe mal die letzte beschriebene Zeile aus der Übersicht genommen.
Code:
Private Sub CommandButton1_Click()
Dim dblwert As Double, dblSumm As Double
   Dim lngLastRow As Long
   Dim lngC As Long
   Dim lngA As Long, lngB As Long
  
   Dim wksSheet As Worksheet
  
   Set wksSheet = Worksheets("Übersicht")
   If Me.ComboBox1.ListIndex < 0 Then
      MsgBox "Bitte Namen auswählen"
      Exit Sub
   End If
  
   If TextBox3.Value = "" Then
      MsgBox "Keinen Betrag eingegeben"
      Exit Sub
   End If
      
   If Not IsNumeric(TextBox3.Value) Then
      MsgBox "Falsche Eingabe "
      Exit Sub
   End If
  
   dblwert = CDbl(TextBox3.Value)
   lngLastRow = wksSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
  
   With ListBox1
      For lngC = 0 To .ListCount - 1
         lngA = .List(lngC, 2)
         lngB = .List(lngC, 3)
         If dblwert < Abs(wksSheet.Cells(lngA, lngB).Value) Then
            wksSheet.Cells(lngA, lngB - 1).Value = _
            wksSheet.Cells(lngA, lngB - 1).Value + dblwert
            wksSheet.Cells(lngA, lngB).Value = _
            wksSheet.Cells(lngA, lngB).Value + dblwert
            dblwert = 0
            Exit For
         Else
            dblwert = dblwert + wksSheet.Cells(lngA, lngB).Value
            wksSheet.Cells(lngA, lngB - 1).Value = _
            wksSheet.Cells(lngA, lngB - 1).Value + Abs(wksSheet.Cells(lngA, lngB).Value)
            wksSheet.Cells(lngA, lngB).Value = ""
         End If
      Next lngC
   End With
  
   If CDbl(TextBox4.Value) > 0 And CheckBox2 Then
      MsgBox "Der Betrag wird gespendet", vbInformation, "Kegler"
      wksSheet.Cells(lngLastRow - 1, 33) = wksSheet.Cells(lngLastRow - 1, 33) + CDbl(TextBox4.Value)
   End If

   If dblwert > 0 Then TextBox3.Value = dblwert
  
'   Me.ListBox1.Clear
   ComboBox1_Change
   If CheckBox1.Value Then ComboBox2_Change

  
End Sub
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • michel34497
Antworten Top
#43
Hallo Stefan!

Nach einigen Test's ist es genau das was ich erstmal wollte!
Tausend Dank dafür, Ich werde das jetzt in die richtige Datei einbauen und nochmals dann testen.
Melde mich morgen wieder, wie es weiter gehen soll.
mfg
Michael
:98:

WIN 10  Office 2019
Antworten Top
#44
Hallo Stefan und @ all!
Nach dem ich den Code in die Datei eingebaut habe, wo auch Änderungen von mir mit eingbaut wurden funktioniert der Code zum Bezahlen nicht mehr.

Code:
Private Sub UserForm_Initialize()
    Dim lngC As Long
    'Combobox so einlesen, damit keine leeren Listeneinträge vorkommen.
    
    For lngC = 2 To 29 Step 3
        ComboBox1.AddItem Cells(4, lngC)
        ComboBox2.AddItem Cells(4, lngC)
    Next lngC
    
With Me.ListBox1
    '.ColumnCount = 2
    .ColumnCount = 3
    .ColumnWidths = "2cm;1,5cm;1,5cm"
    
End With
With Me.ListBox2
    .ColumnCount = 2
    .ColumnWidths = "2cm;1,5cm;1,5cm"
    
End With

ComboBox2.Visible = False
ListBox2.Visible = False
CheckBox2.Visible = False
End Sub
Private Sub prcListboxEinlesen(lngLetzte As Long, cboAuswahlbox As ComboBox)
    Dim lngC As Long
    Dim rngBereich As Range 'diese Variable neu eingefügt
    Static dblSumme As Double
    Static dblKegel As Double
    Static lngA As Long  'aus einer mit Dim angelegten Variablen eine statische gemacht
    Static lngB As Long
    'Static lngD As Long
    
    'wenn es sich bei der Übergabe um die ComboBox1 handelt, setze Variable auf 0
    If cboAuswahlbox = Me.ComboBox1 Then lngA = 0: dblSumme = 0: lngB = 0: dblKegel = 0     ': lngD = 0
    For lngC = 5 To lngLetzte
        If Worksheets("Übersicht").Cells(lngC, cboAuswahlbox.ListIndex * 3 + 3) < 0 Then
            Me.ListBox1.AddItem Worksheets("Übersicht").Cells(lngC, 1).Value 'Datum wird in listbox1 eingetragen
            Me.ListBox1.Column(1, lngA) = Format(Worksheets("Übersicht").Cells(lngC, cboAuswahlbox.ListIndex * 3 + 3).Value, "#,##0.00 €") 'Betrag wird eingetragen
            dblSumme = dblSumme + Me.ListBox1.Column(1, lngA)   'Betrag wird addiert
            'Me.ListBox1.Column(2, lngA) = lngC                  'hier wird noch die Spalte eingefügt, aus der der Wert kommt
            'Me.ListBox1.Column(3, lngA) = cboAuswahlbox.ListIndex * 3 + 3

           Me.ListBox1.Column(2, lngB) = Format(Worksheets("Übersicht").Cells(lngC, cboAuswahlbox.ListIndex * 3 + 4).Value, "#,##0.00 €") 'cboAuswahlbox.ListIndex * 3 + 3
        If Me.ListBox1.Column(2, lngB) = "" Then
          'Me.ListBox1.Column(4, lngD) = Format(Worksheets("Übersicht").Cells(lngC, cboAuswahlbox.ListIndex * 3 + 4).Value, "#,##0.00 €") 'cboAuswahlbox.ListIndex * 3 + 3
        'If Me.ListBox1.Column(4, lngD) = "" Then
            lngA = lngA + 1
            lngB = lngB + 1
            'lndD = lngD + 1
            
          Else
            dblKegel = dblKegel + Me.ListBox1.Column(2, lngB)
            'dblKegel = dblKegel + Me.ListBox1.Column(4, lngD)
            lngA = lngA + 1
            lngB = lngB + 1
            'lndD = lngD + 1
         End If
        End If
    Next lngC
    'neuer Bereich
    'vielleicht nicht mehr?????
'    Set rngBereich = Worksheets("Startblatt").Columns(2).Find(cboAuswahlbox.Value, LookIn:=xlValues, lookat:=xlWhole)
'    If Not rngBereich Is Nothing Then
'        Me.ListBox1.AddItem Worksheets("Startblatt").Range("AI2").Value
'        Me.ListBox1.Column(1, lngA) = Format(rngBereich.Offset(0, 30).Value, "#,##0.00 €")
'        dblSumme = dblSumme + Me.ListBox1.Column(1, lngA)
'        lngA = lngA + 1 'neu eingefügt, damit der Zähler korrekt funktioniert
'    End If
    TextBox1.Value = Format(dblSumme, "#,##0.00 €")   'Betrag wird eingetragen
    TextBox2.Value = Format(dblKegel, "#,##0.00 €")   'Betrag wird eingetragen
End Sub

So macht der Code (wie oben beschrieben) zum einlesen der ListBox1, wie ich das möchte alles richtig! Gebe ich nun einen wert in die TextBox3 ein und betätige dann den CommandButton1 funktioniert der Code unter CommandButton1 NICHT mehr!

Code:
Private Sub CommandButton1_Click()
Dim dblwert As Double, dblSumm As Double
   Dim lngLastRow As Long
   Dim lngC As Long
   Dim lngA As Long, lngB As Long
  
   Dim wksSheet As Worksheet
  
   Set wksSheet = Worksheets("Übersicht")
   If Me.ComboBox1.ListIndex < 0 Then
      MsgBox "Bitte Namen auswählen"
      Exit Sub
   End If
  
   If TextBox3.Value = "" Then
      MsgBox "Keinen Betrag eingegeben"
      Exit Sub
   End If
      
   If Not IsNumeric(TextBox3.Value) Then
      MsgBox "Falsche Eingabe "
      Exit Sub
   End If
  
   dblwert = CDbl(TextBox3.Value)
   lngLastRow = wksSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
  
   With ListBox1
      For lngC = 0 To .ListCount - 1
         [color=#FF0000]lngA = .List(lngC, 2)
         lngB = .List(lngC, 3)[/color]
         If dblwert < Abs(wksSheet.Cells(lngA, lngB).Value) Then
            wksSheet.Cells(lngA, lngB - 1).Value = _
            wksSheet.Cells(lngA, lngB - 1).Value + dblwert
            wksSheet.Cells(lngA, lngB).Value = _
            wksSheet.Cells(lngA, lngB).Value + dblwert
            dblwert = 0
            Exit For
         Else
            dblwert = dblwert + wksSheet.Cells(lngA, lngB).Value
            wksSheet.Cells(lngA, lngB - 1).Value = _
            wksSheet.Cells(lngA, lngB - 1).Value + Abs(wksSheet.Cells(lngA, lngB).Value)
            wksSheet.Cells(lngA, lngB).Value = ""
         End If
      Next lngC
   End With
  
   If CDbl(TextBox4.Value) > 0 And CheckBox2 Then
      MsgBox "Der Betrag wird gespendet", vbInformation, "Kegler"
      wksSheet.Cells(lngLastRow - 1, 33) = wksSheet.Cells(lngLastRow - 1, 33) + CDbl(TextBox4.Value)
   End If

   If dblwert > 0 Then TextBox3.Value = dblwert
  
'   Me.ListBox1.Clear
   ComboBox1_Change
   If CheckBox1.Value Then ComboBox2_Change

  
End Sub

An den rot markierten stellen bleibt er hängen und sagt:
Laufzeitfehler'94':
Unzulässige Verwenung von Null

Was mache ich FALSCH?


Angehängte Dateien
.xlsm   Buchen1.xlsm (Größe: 386,52 KB / Downloads: 4)
mfg
Michael
:98:

WIN 10  Office 2019
Antworten Top
#45
Hallo Michael,

ist eigentlich ganz einfach. Die Spalten in der Listbox passen nicht mehr. In der von mir zuletzt geposteten Datei hatte die Listbox insgesamt 4 Spalten wovon nur 2 sichtbar waren. Die Listbox hatte folgende Aufteilung:
  • Spalte 1: Das Datum des Spieltags
  • Spalte 2: Der Betrag, der vom Spieltag noch zu zahlen ist

Jetzt die unsichtbaren Spalten
  • Spalte 3: die Zeile, in der der Minusbetrag steht
  • Spalte 4: die Spalte, in der der Minusbetrag steht

Und genau diese beiden zuletzt genannten Spalten braucht die Prozedur hinter den Button Bezahlen, um zu wissen, wo der Betrag steht. Gefüllt werden die beiden Spalten in der Prozedur prcListboxEinlesen. Du aber hast die beiden Codezeilen auskommentiert und dafür deine eigen Konstruktion eingefügt.

Wenn Du unbedingt deine Spaltenkonstruktion brauchst und auch in der Listbox sehen willst, könntest Du die beiden Spalten ausblenden. Klicke im VBA-Editor auf die Listbox und gehe im Eigenschaftsfenster (F4-Taste) auf die ColumnWidths-Eigenschaft und drücke die F1-Taste. In der Hilfe kannst Du lesen wie Du die Spalten ausblendest.
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • michel34497
Antworten Top
#46
Hallo Stefan!
Tausend Dank für den Tipp! :28:
Sitzen (mit einen Kegelbruder) grade hier und Testen alles aus.
Aber so wie es aussieht möchte er gerne noch einige Änderungen haben.
Versuche aber erstmal das alleine zulösen!
mfg
Michael
:98:

WIN 10  Office 2019
Antworten Top
#47
Hallo Leute!
Da isser wieder mit den nächsten fragen.
Ich habe es jetzt so hinbekommen, dass der Code so bucht wie es erstmal sein sollte. Dank Stefan :100:
Jetzt hänge ich aber wieder fest.
Habe die UserForm bezahlen ein wenig umgebaut und erweitert.
ich brauche jetzt erstmal folgendes:
Wenn in ComboBox1 der Name Gäste ausgewählt wird, erscheint zusätlich in der UF die CB3 und TB5. In der CB3 sollen dann die Namen aus Tabelle Startblatt B16:B20 erscheinen. Ist ein Name aus CB3 angewählt soll in der TB5 der dazu gehörige Betrag aus Startblatt (AF16:AF20) angezeigt werden.
Wird zusätzlich noch die CheckBox1 (Pärrchen) aktiviert erschein in der UF noch CB4 und TB6, wenn diese erscheinen soll das gleich gemacht werden wie eben bei CB3 + TB5 schon beschrieben.
Hier komme ich nicht weiter Huh !
Wenn dies gelöst ist soll wie folgt gebucht werden:
Der betrag aus TB5 oder TB5+TB6 wird dann in TB1 dargestellt, wird dann ein betrag in TB3 eingegeben wird genauso gebucht als wenn ich ein Mitglied angewählt hätte mit den kleinen unterschied, das Kein Name gesucht werden muss sondern der Betrag immer in der Tabelle Übersicht in Spalte AC gebucht werden. Gebucht wird wenn es das Datum vom Startblatt noch nicht gibt, in die nächtste freie Zeile nachdem letzten eingetragenen Datum. Was noch schön wäre wenn der betrag gebucht ist das im Startblatt Spalte AG dann in der betreffenden Zeile ein x eingetragen wird.

Testet mal mit der angehängten Datei. Bitte nur diese nehmen da dort alle Änderungen drin sind!

Ob die TB5 + TB6 gebraucht werden oder ob man dies auch in ListBox1 anzeigen kann, ist euch überlassen!
Ihr habt freie Hand.
Ich hoffe wie immer das es einigermasen vertändlich geschrieben ist.
Danke schon mal im vorraus!


Angehängte Dateien
.xlsm   Buchen1.xlsm (Größe: 399,2 KB / Downloads: 4)
mfg
Michael
:98:

WIN 10  Office 2019
Antworten Top
#48
Hallo Michael,

im Bereich AC16:AF20 stehen aber Formeln. Sollen die überschrieben werden?
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#49
Hallo Stefan!

Ich glaube da hast du was falsch verstanden!
Wenn Du den Bereich AC16:AF20 im Startblatt meinst, da soll doch gar nichts gemacht werden.
Es soll doch der Betrag aus Startblatt AF16:AF20 ausgelesen werden.
Warum die Formeln überschreiben?
Zeig mir doch bitte die Text zeile wo Ich dies geschrieben habe.
Ich denke das ich mich wieder mal falsch ausgedrückt habe!
mfg
Michael
:98:

WIN 10  Office 2019
Antworten Top
#50
Hallo Michael,

sorry BlushBlushBlush da habe ich das mit der Tabelle überlesen.

Nachtrag: Mal deine Datei zurück, das mit dem Gäste-ComboBoxen befüllen ist drin. Mir fehlt aber jeglicher Ansatz das andere zu lösen.


Angehängte Dateien
.xlsm   Buchen1.xlsm (Größe: 392,33 KB / Downloads: 6)
Gruß Stefan
Win 10 / Office 2016
Antworten Top


Gehe zu:


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