Registriert seit: 18.04.2014
Version(en): Office 2010
Obwohl ich die Listbox Eigenschaft IntegralHeight auf TRUE stehen habe, verschwindet der letzte Eintrag der Listbox fast komplett aus dem Sichtbereich.
Stelle ich die Eigenschaft auf FALSE habe ich einen recht "dynamischen Anblick" der letzten Zeile. Mal voll da, mal halb da.....
Ich habe schon mit den einzelnen Fonts rumgespielt. ARIAL, CALIBRI Mal Höhe 8, mal 9, mal 10.... Gibt es da noch einen versteckten Schalter / Befehl, der dieses Verhalten korrigiert?
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo Achim, handelt es sich um ein ähnliches Problem wie hier? Und die Frage nach dem hochladen brauche ich wohl nicht stellen, da die Datei sehr groß ist?
Gruß Stefan Win 10 / Office 2016
Registriert seit: 18.04.2014
Version(en): Office 2010
Nein Stefan, hier handelt es sich um ein ganz anderes Problem.
Es geht um die Darstellung der Listbox, dessen letzter Eintrag je nach Font und Größe und trotz IntegralHeight Eigenschaft auf TRUE nicht vollständig sichtbar ist; manchmal sogar nicht mal mehr lesbar.
Ich dachte halt, dass es da in den Tiefen des VBA noch den einen, oder anderen Befehl gibt das zu verhindern.
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
welche( r ) - Excelversion - Art von ListBox - Ort der ListBox - Methode der Befüllung
????
Registriert seit: 18.04.2014
Version(en): Office 2010
Excel 2007 Art der Listbox? Wie ist das gemeint? Gibt es mehrere Arten? Ort der Listbox?...Auch das verstehe ich nicht ganz. Sie ist in einer UF in einem Frame drin. Methode der Befüllung.... Zuerst werden über den Spezialfilter in das Blatt AUSWAHL die gefilterten Zeilen eingetragen. Danach kommt der Super-Code von dir, der bestimmte Zeilen löscht. Und dann werden die übriggebliebene Zeilen in die Listbox gegeben. Und das ganze sieht dann so aus: Code: Rem Filter starten Nur_Typ: Worksheets("Bohren").Range("A1:DS10000").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Worksheets("Auswahl").Range("A1:DS2"), CopytoRange:=Worksheets("Auswahl").Range("A3"), Unique:=False
If Worksheets("Listen").Range("A18") = "N" Then 'Bei "N" werden alle OHNE Artikelnummer gelöscht With Worksheets("Auswahl").Columns(34) .Replace What:="x", Replacement:="#N/A", LookAt:=xlWhole, MatchCase:=False .SpecialCells(xlCellTypeConstants, 16).EntireRow.Delete End With End If Rem Anzahl Lösungen ermitteln For n = 4 To Worksheets("Auswahl").Cells(Rows.Count, 23).End(xlUp).Row: Next n n = Worksheets("Auswahl").Cells(Rows.Count, 23).End(xlUp).Row - 3 '-3, weil der Beginn erst ab Zeile 4 ist Frame1.Caption = n & " " & Labels(21) 'Rem Anzahl Lösungen eintragen
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo Achim, Zitat:Ort der Listbox?...Auch das verstehe ich nicht ganz. Sie ist in einer UF in einem Frame drin Das von Dir beschriebene Verhalten tritt dann auf, wenn z.B. die Listbox vom Frame abgeschnitten ist, heißt sie liegt nicht ganz im Frame, oder ein anderes Steuerelement Schneidet die Listbox, oder sie geht über die Userform drüber. Eine weiter Ursache, Du änderst die Listbox Größe zur Laufzeit bzw. beim Activate/Initialize
Gruß Atilla
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo Achim, Setz im Eigenschaftsfenster die IntegralHeight auf False und im Code dann nach Anpassung der Größe wieder auf True. z.B: Code: With Me.ListBox1 .List = Range("A2:A20").Value .ListBox1.Height = 89 .ListBox1.IntegralHeight = True End With
Hab da noch eine Frage: Du schreibst, dass Du mit dem Spezialfilter erst Fiterst und dann bestimmte Zeilen, die mit "x" versehen sind löschst. Warum Filterst Du die nicht gleich mit raus? Das kann doch der Spezialfilter in einem Abwasch erledigen.
Gruß Atilla
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Achim, Zitat:Art der Listbox? Wie ist das gemeint? Gibt es mehrere Arten? Es gibt auch die ListBox aus den Formularsteuerelementen, welche nur in einem Tabellenblatt möglich ist und die ListBox aus den ActiveX-Steuerelementen, welche in einem Tabellenblatt oder einer Userform verwendet werden kann. Zitat:Ort der Listbox?...Auch das verstehe ich nicht ganz. Sie ist in einer UF in einem Frame drin. Möglich sind bei AxtivX-Elementen eben Tabellenblätter und UserForms. Zum geposteten Code, welcher das Befüllen der ListBox zwar nicht enthält, hätte ich aber 2 Sachen: 1. die Zeile Code: For n = 4 To Worksheets("Auswahl").Cells(Rows.Count, 23).End(xlUp).Row: Next n
könnte gelöscht werden 2. das Löschen der "x"-Zeilen wäre überflüssig, da das mit dem Spezialfilter schon erledigt werden könnte. Gruß Uwe
Registriert seit: 18.04.2014
Version(en): Office 2010
Hallo Atilla,
ich hatte die IntegralHeight Eigenschaft fest eingestellt auf TRUE; allerdings nicht im VBA Code, sondern im Eigenschaftenfenster. Jetzt habe ich es mal so gemacht wie du es vorschlägst; erst die Abmessungen eingeben bei fest eingestellter Eigenschaft FALSE im Fenster der Eigenschaften und dann erst im VBA Code auf TRUE gesetzt. Das hat funktioniert. Das war eine gute Idee.
Der Spezialfilter ist ne Wissenschaft für sich. Das hat ewig gedauert, bis ich das für meine Zwecke hinbekommen hatte. Dieses Zeilen löschen läuft über OptionButton, also eine Einstellung, die der User machen kann. Ich weiß gar nicht wie ich das in den Advance Filter einbauen sollte.
Registriert seit: 18.04.2014
Version(en): Office 2010
Ach ja, hatte ich vergessen. Das Einlesen in die Listbox. Code: Rem Lösungen in die Listbox eintragen With Worksheets("Auswahl") ListBox1.RowSource = "Auswahl!" & .Range(.Cells(4, 1), .Cells(n + 3, 125)).Address End With
|