Registriert seit: 14.04.2014
Version(en): 2007
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
Registriert seit: 11.04.2014
Version(en): Office 2007
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:1 Nutzer sagt Danke an Steffl für diesen Beitrag 28
• michel34497
Registriert seit: 14.04.2014
Version(en): 2007
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
Registriert seit: 11.04.2014
Version(en): Office 2007
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
Registriert seit: 14.04.2014
Version(en): 2007
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
Registriert seit: 14.04.2014
Version(en): 2007
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
Registriert seit: 11.04.2014
Version(en): Office 2007
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:1 Nutzer sagt Danke an Steffl für diesen Beitrag 28
• michel34497
Registriert seit: 14.04.2014
Version(en): 2007
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
Registriert seit: 11.04.2014
Version(en): Office 2007
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
Registriert seit: 14.04.2014
Version(en): 2007
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  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
|