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
#11
Hallo Stefan!

Ich muss dir sagen das dein Code so nicht funktioniert.
Ich bekomme nur das Datum vom Startblatt angezeigt, aber leider nicht den dazugehörigen betrag.
Habe grade mal rumgetüfftel komme aber wie immer zu keinen Ergebniss. Ich glaube lagsamm das ich .......
Schau doch bitte noch mal nach.

Ich arbeite auch weiter daran!
mfg
Michael
:98:

WIN 10  Office 2019
Antworten Top
#12
Hallo Michael,

wie bereits oben gepostet, heißt es Offset(0, 30)

Und damit funktioniert es bei mir.
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • michel34497
Antworten Top
#13
Hallo Stefaen !

Vergiss was im Beitrag vorher stand.
Nach einig versuchenn geht es doch, Ich bekomme nur die Beitäge falsch angezeigt!
Was ist das für ein Problem?
mfg
Michael
:98:

WIN 10  Office 2019
Antworten Top
#14
Hallo Michael,

ist auch klar. Die Reihenfolge, wie die Namen in deiner ComboBox stehen entspricht nicht mehr der Aufteilung wie es im Tabellenblatt Übersicht ist.

Wenn Du die ComboBox genauso wie es früher einmal war, befüllen würdest, funktioniert es.
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#15
Hallo Stefan!

Ich glaube dir, aber genau das ist das was Variabel gestalltet werden sollte (oder soll).
Deswegen habe ich auch wahrscheinlich so viele probleme, wenn mir einer einen Vorschlag macht.
Wie kann man dies oder sollte man das ändern? Hast du einen Lösungsvoeschlag?

( Ich möchte dies gerne Variabel haben! Nur wenn es geht. )
mfg
Michael
:98:

WIN 10  Office 2019
Antworten Top
#16
Hallo @ all!

Habe den fehler gefunden beim einlesen der Combobox1 und dann die ausgabe an die ListBox1.
Nun komme ich aber wieder Nicht weiter.
Wenn in ComboBox1 ein Name ausgewählt ist wird mir auch der Betrag dazu angezeigt. Jetzt habe ich aber noch die CheckBox1 für Pärchen.
Wenn diese aktiviert, wird eine weitere ComboBox2 in der UF angezeigt. Wird dort auch wieder ein Name ausgewählt, soll die ListBox1 mir alle Minus beträge anzeigen von beiden Spieler. Dort habe ich ein Problem. Wie ist dies möglich?
Code hänge ich an

Code:
Private Sub CheckBox1_Click()
If CheckBox1.Value Then
   ComboBox2.Visible = True
    
    End If
    
If CheckBox1.Value = 0 Then
    UserForm_Initialize
    ComboBox2.Visible = False
    ComboBox2 = ""
End If
End Sub

Private Sub CheckBox2_Click()
If TextBox3.Value Then
   TextBox4.Visible = True
    
    End If
    
If TextBox3.Value = 0 Then
    UserForm_Initialize
    TextBox4.Visible = False
    TextBox4 = ""
End If
End Sub

Private Sub ComboBox1_Change()
Dim loLetzte As Long
Dim dblwert As Double, dblSumm As Double

If Me.ComboBox1.ListIndex > -1 Then
    loLetzte = Cells(Rows.Count, 1).End(xlUp).Row
End If
    
Me.ListBox1.Clear
Call prcListboxEinlesen(loLetzte) ' neu eingefügt um ListBox zu aktivieren
End Sub

Private Sub ComboBox2_Change()
Dim loLetzte As Long
Dim dblwert As Double, dblSumm As Double
If Me.ComboBox2.ListIndex > -1 Then
    loLetzte = Cells(Rows.Count, 1).End(xlUp).Row
End If
    
Me.ListBox1.Clear
Call prcListboxEinlesen(loLetzte) ' neu eingefügt um ListBox zu aktivieren
End Sub

Private Sub CommandButton2_Click()
Unload Bezahlen
End Sub
Private Sub CommandButton3_Click()
Unload Bezahlen
End Sub

Private Sub ListBox1_Click()

End Sub

Private Sub UserForm_Initialize()
    Dim lngC As Long
    'Combobox so einlesen, damit keine leeren Listeneinträge vorkommen.
    
    For lngC = 2 To 20 Step 2
        ComboBox1.AddItem Cells(4, lngC)
        ComboBox2.AddItem Cells(4, lngC)
    Next lngC
    
With Me.ListBox1
    .ColumnCount = 2
    .ColumnWidths = "2cm;1,5cm;1cm"
    
End With
ComboBox2.Visible = False
    
End Sub
Private Sub prcListboxEinlesen(lngLetzte As Long)
    Dim lngC As Long, lngA As Long
    Dim rngBereich As Range 'diese Variable neu eingefügt
  
    For lngC = 5 To lngLetzte
        If Worksheets("Übersicht").Cells(lngC, ComboBox1.ListIndex * 2 + 3) < 0 Then
            Me.ListBox1.AddItem Worksheets("Übersicht").Cells(lngC, 1).Value
            Me.ListBox1.Column(1, lngA) = Format(Worksheets("Übersicht").Cells(lngC, ComboBox1.ListIndex * 2 + 3).Value, "#,##0.00 €")
            Me.ListBox1.Column(2, lngA) = lngC
'            dblSumm = dblSumm + Cells(lngc, ComboBox1.ListIndex * 2 + 3)
            lngA = lngA + 1
        End If
    Next lngC
    'neuer Bereich
    Set rngBereich = Worksheets("Startblatt").Columns(2).Find(ComboBox1.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 €")
    End If
End Sub

Wer kann weiter helfen?

Tausen Dank im vorraus!
mfg
Michael
:98:

WIN 10  Office 2019
Antworten Top
#17
Hallo Michael,

Du löschst bei jeder Auswahl deiner ComboBoxen die Listbox. Wenn Du das Listbox-löschen bei der zweiten Combobox auskommentierst, könnte eventuell das erreicht werden, was Du willst.

Code:
Private Sub ComboBox2_Change()
Dim loLetzte As Long
Dim dblwert As Double, dblSumm As Double
If Me.ComboBox2.ListIndex > -1 Then
    loLetzte = Cells(Rows.Count, 1).End(xlUp).Row
End If
    
'Me.ListBox1.Clear 'diese Codezeile ist jetzt auskommentiert
Call prcListboxEinlesen(loLetzte) ' neu eingefügt um ListBox zu aktivieren
End Sub

Nachteil ist aber, Du wählst einen Spieler aus der ComboBox1 und danach aus der ComboBox2, merkst aber dann, das Du einen falschen Spieler in der ComboBox2 ausgewählt hast, erscheinen in der Listbox zuviele Werte.
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • michel34497
Antworten Top
#18
Hallo Stefan und @ all!
Nach einen ausgibigen Test, funktioniert es NICHT so wie es soll. Habe bis jetzt auch rumgetüfftelt und Komme nicht auf das ergebniss was ich gerne haben möchte. Nochmals zur Beschreibung:
Wenn ComboBox1 eine Name ausgewählt wurde sollen alle offenen Beträge von Startblatt und übersicht in der ListBox1 angezeigt werden mit Datum. Bis dahin alles i.O.. Wähle ich dann noch zusätzlich über die CheckBox1 die ComboBox2 an . Dann soll der Name der in der ComboBox2 steht und evt. minus beträge hat auch in der ListBox1 angezeigt werden. Mit Datum und den Beträgen. Angezeigt wird wenn ComboBox2 angewählt ist nur das Datum aber nicht der Betrag.

Was ist falsch im Code?

E
Code:
Private Sub CheckBox1_Click()
If CheckBox1.Value Then
   ComboBox2.Visible = True
    
    End If
    
If CheckBox1.Value = 0 Then
    UserForm_Initialize
    ComboBox2.Visible = False
    ComboBox2 = ""
End If
End Sub

Private Sub CheckBox2_Click()
If TextBox3.Value Then
   TextBox4.Visible = True
    
    End If
    
If TextBox3.Value = 0 Then
    UserForm_Initialize
    TextBox4.Visible = False
    TextBox4 = ""
End If
End Sub

Private Sub ComboBox1_Change()
Dim loLetzte As Long
Dim dblwert As Double, dblSumm As Double

If Me.ComboBox1.ListIndex > -1 Then
    loLetzte = Cells(Rows.Count, 1).End(xlUp).Row
End If
    
Me.ListBox1.Clear
Call prcListboxEinlesen(loLetzte) ' neu eingefügt um ListBox zu aktivieren
End Sub

Private Sub ComboBox2_Change()
Dim loLetzte As Long
Dim dblwert As Double, dblSumm As Double
If Me.ComboBox2.ListIndex > -1 Then
    loLetzte = Cells(Rows.Count, 1).End(xlUp).Row
End If
    
'Me.ListBox1.Clear
Call prcListboxEinlesen(loLetzte) ' neu eingefügt um ListBox zu aktivieren
End Sub

Private Sub CommandButton2_Click()
Unload Bezahlen
End Sub
Private Sub CommandButton3_Click()
Unload Bezahlen
End Sub

Private Sub ListBox1_Click()

End Sub

Private Sub UserForm_Initialize()
    Dim lngC As Long
    'Combobox so einlesen, damit keine leeren Listeneinträge vorkommen.
    
    For lngC = 2 To 20 Step 2
        ComboBox1.AddItem Cells(4, lngC)
        ComboBox2.AddItem Cells(4, lngC)
    Next lngC
    
With Me.ListBox1
    .ColumnCount = 2
    .ColumnWidths = "2cm;1,5cm;1cm"
    
End With
ComboBox2.Visible = False
    
End Sub
Private Sub prcListboxEinlesen(lngLetzte As Long)
    Dim lngC As Long, lngA As Long
    Dim rngBereich As Range 'diese Variable neu eingefügt
  
    For lngC = 5 To lngLetzte
        If Worksheets("Übersicht").Cells(lngC, ComboBox1.ListIndex * 2 + 3) < 0 Then
            Me.ListBox1.AddItem Worksheets("Übersicht").Cells(lngC, 1).Value
            Me.ListBox1.Column(1, lngA) = Format(Worksheets("Übersicht").Cells(lngC, ComboBox1.ListIndex * 2 + 3).Value, "#,##0.00 €")
            Me.ListBox1.Column(2, lngA) = lngC
'            dblSumm = dblSumm + Cells(lngc, ComboBox1.ListIndex * 2 + 3)
            lngA = lngA + 1
        End If
    Next lngC
    'neuer Bereich
    Set rngBereich = Worksheets("Startblatt").Columns(2).Find(ComboBox1.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 €")
    End If
End Sub

Wer Kann oder möchte mir Helfen?
Für alle Tipps, Antworten oder Vorschläge die mir weiter helfen gebe Ich Tausend Dank!
mfg
Michael
:98:

WIN 10  Office 2019
Antworten Top
#19
Hallo Michael,

ich hatte das Ganze nicht getestet und nur hier so reingeschrieben. Deshalb fielen mir die Probleme nicht auf. Und wie so oft, liegt die Tücke im Detail. Ich habe es nun angepaßt und auch getestet, dabei hat es meiner Meinung nach gepaßt. Aber teste lieber selber mal. Ich poste jetzt nur die drei Makros, wo ich Änderungen durchgeführt habe.

Code:
Private Sub ComboBox1_Change()
Dim loLetzte As Long
Dim dblwert As Double, dblSumm As Double

If Me.ComboBox1.ListIndex > -1 Then
    loLetzte = Cells(Rows.Count, 1).End(xlUp).Row
End If
    
Me.ListBox1.Clear
'die ausgewählte ComboBox wird mit übertragen
Call prcListboxEinlesen(loLetzte, Me.ComboBox1) ' neu eingefügt um ListBox zu aktivieren
End Sub

Private Sub ComboBox2_Change()
Dim loLetzte As Long
Dim dblwert As Double, dblSumm As Double
If Me.ComboBox2.ListIndex > -1 Then
    loLetzte = Cells(Rows.Count, 1).End(xlUp).Row
End If
    
'Me.ListBox1.Clear
'die ausgewählte ComboBox wird mit übertragen
Call prcListboxEinlesen(loLetzte, Me.ComboBox2) ' neu eingefügt um ListBox zu aktivieren
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 lngA As Long  'aus einer mit Dim angelegten Variablen eine statische gemacht
    
    'wenn es sich bei der Übergabe um die ComboBox1 handelt, setze Variable auf 0
    If cboAuswahlbox = Me.ComboBox1 Then lngA = 0
    For lngC = 5 To lngLetzte
        If Worksheets("Übersicht").Cells(lngC, cboAuswahlbox.ListIndex * 2 + 3) < 0 Then
            Me.ListBox1.AddItem Worksheets("Übersicht").Cells(lngC, 1).Value
            Me.ListBox1.Column(1, lngA) = Format(Worksheets("Übersicht").Cells(lngC, cboAuswahlbox.ListIndex * 2 + 3).Value, "#,##0.00 €")
            Me.ListBox1.Column(2, lngA) = lngC
'            dblSumm = dblSumm + Cells(lngc, ComboBox1.ListIndex * 2 + 3)
            lngA = lngA + 1
        End If
    Next lngC
    'neuer Bereich
    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 €")
        lngA = lngA + 1 'neu eingefügt, damit der Zähler korrekt funktioniert
    End If
End Sub
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#20
Hallo Stefan & @ all!
@ Stefan
Danke für die Hilfe.
Habe getestet und bin wie es ist immer ersteinmal damit zufrieden.
Bei weiteren test ist mir etwas aufgefallen.
Wenn Ich den Namen in der Combox2 auswähle schreibt er auch die beträge in die ListBox, bis dahin alles Ok.
Wähle ich einen neuen Namen in Cb2 an bleiben die alten beträge stehen und die neuen werden hinzugefügt.
Bin jetzt seit Stunden am suchen wie ich das ändern kann. Wahrscheinlich sehe ich wieder den Wald vor lauter Bäumen nicht.
Aber das versuche ich jetzt selber herauszufinden.
@all
Möchte aber nun folgendes haben, wo ich auch nicht richtig weiter komme.
Alle beträge (also alle offene oder besser gesagt minus beträge) die mir in der ListBox1 angezeigt werden sollen zusammen gerechnet.
Diese sollen mir dann als gesamt betrag in der TextBox1 erscheinen Huh
Habe mir die alten Code`s angeschaut komme aber im moment nicht daruf wie das geht.
Hat einer einen Tipp?
mfg
Michael
:98:

WIN 10  Office 2019
Antworten Top


Gehe zu:


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