Office: (Office 2016) Listbox mit mehreren Spalten

Helfe beim Thema Listbox mit mehreren Spalten in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hi Karin, ich danke Dir, das Problem mit den OptionButtons hatte ich ja schon gelöst. Ich Dummerchen hatte statt .Value .Valid geschrieben. Siehe... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Merlin-1962, 25. November 2019.

  1. Listbox mit mehreren Spalten


    Hi Karin,

    ich danke Dir, das Problem mit den OptionButtons hatte ich ja schon gelöst. Ich Dummerchen hatte statt .Value .Valid geschrieben. Siehe Beitrag über Deinem.

    Zu der Zeile mit der Formatierung ist zu sagen, das es in soweit funktioniert, solange in der Spalte Zahlen mit der gleichen Anzahl von Stellen stehen. In dem Moment wo in der Spalte Einer, Zehner, Hunderter, Tausender in einer Spalte sind verrutscht das ganze.

    Leider sind meine Kenntnisse zwar in den letzten Tagen dank einer guten Lehrerin gewachsen, aber das zu lösen - soweit bin ich noch lange nicht. Habe zwar irgendwas von Trim() mal was gelesen, weis aber nicht ob das hier und vor allen Dingen möglich ist.

    Vielleicht fällt dir ja dazu noch was ein.

    LG Jürgen
     
    Merlin-1962, 29. November 2019
    #16
  2. Beverly
    Beverly Erfahrener User
    Hi Jürgen,

    da du deinen Beitrag von 12:34 mit deiner Korrektur gepostet hast, während ich noch mit deinem anderen Problem beschäftigt war, habe ich deinen Beitrag nicht gesehen.

    Das Problem bei der Ausrichtung liegt darin, dass Arial eine Proportionalschrift ist, dass heißt die Breite der Zeichen ist unterschiedlich - Punkt oder Komma z.B. sind schmaler als z.B. 0 oder 8. Wenn du eine nichtproportionale Schriftart (z.B. Courier) verwendest sollte es möglich sein, da alle Zeichen dieselbe Breite haben.
    Außerdem könnte es sein, dass du Zahlen mit mehr als 10 Zeichen - wie es in dem von dir gefundenen Code festgelegt ist - vorliegen hast und dann werden halt nur 10 Zeichen (einschließlich Tausender- und Dezimalzeichen) dargestellt. Es muss also vorher noch die maximale Anzahl an Zeichen ermittelt werden - ich habe dazu einfach mal das Maximum aus den Spalten F:K als Parameter angenommen.
    Wenn du also den folgenden Code für das Befüllen des Arrays verwendest, sollte es eigentlich passen, unter der Bedingung, dass du eine nichtproportionale Schriftart wählst:

    Code:
    Dim lngLaenge As Long
    With Sheets(1)
        lngLaenge = Len(Format(Application.Max(.Columns("F:K")), "#,##0.00"))
        ly = .Cells(Rows.Count, 1).End(xlUp).Row
        lz = .Cells(Rows.Count, 1).End(xlUp).Row
        ReDim arr(4 To lz, 1 To 12)
        ReDim arr2(3 To ly, 1 To 12)
        For i = 5 To lz
            arr(i - 1, 1) = .Range("A" & i).Text
            arr(i - 1, 2) = .Range("B" & i).Text
            arr(i - 1, 3) = .Range("C" & i).Text
            arr(i - 1, 4) = .Range("D" & i).Text
            arr(i - 1, 5) = .Range("E" & i).Text
            arr(i - 1, 6) = Right(String(Len(.Range("F" & i).Text), " ") & Format(.Range("F" & i).Text, "#,##0.00,"), lngLaenge)
            arr(i - 1, 7) = Right(String(Len(.Range("G" & i).Text), " ") & Format(.Range("G" & i).Text, "#,##0.00,"), lngLaenge)
            arr(i - 1, 8) = Right(String(Len(.Range("H" & i).Text), " ") & Format(.Range("H" & i).Text, "#,##0.00,"), lngLaenge)
            arr(i - 1, 9) = Right(String(Len(.Range("I" & i).Text), " ") & Format(.Range("I" & i).Text, "#,##0.00,"), lngLaenge)
            arr(i - 1, 10) = Right(String(Len(.Range("J" & i).Text), " ") & Format(.Range("J" & i).Text, "#,##0.00,"), lngLaenge)
            arr(i - 1, 11) = Right(String(Len(.Range("K" & i).Text), " ") & Format(.Range("K" & i).Text, "#,##0.00,"), lngLaenge)
            arr(i - 1, 12) = .Range("L" & i).Text
        Next i
    
    
    Bis später,
    Karin
     
  3. Hi Karin,

    ich habe Deinen Code 1:1 übernommen. Die Schriftart in der Listbox auf Courier 12 eingestellt.

    Leider das selbe Ergebnis:

    Hier mal ein Bild, da kannst du erkennen, dass wenn in der selben Spalte in der einen Zeile ein Zehner Betrag, in der selben Spalte in der nächsten Zeile ein 100er Betrag, in der nächsten Zeile in der selben Spalte ein 1000er Betrag stehen, die einzelnen Betrag leider versetzt angezeigt werden.
    Es kommt mir so vor als ob die Beträge innerhalb des Codes (Platzt der Zeichen) zentriert werden.

    Den Anhang 10938 betrachten

    LG Jürgen
     
    Merlin-1962, 1. Dezember 2019
    #18
  4. Beverly
    Beverly Erfahrener User

    Listbox mit mehreren Spalten

    Hi Jürgen,

    deine Schriftart ist nicht Courier sondern Arial - schau es dir mal im Vergleich auf dem Bild an: im oberen Teil ist Schriftart Arial, in der ListBox Courier

    Listbox mit mehreren Spalten listbox_courier.JPG

    Allerdings gibt es ein Problem mit der Ausrichtung, wenn Zahlen kleiner 1000 (also ohne 1000er Trennzeichen und ohne 1000er Zahlenwert) vorkommen. Um diese auch noch korrekt auszurichten, muss der Code wir folgt geändert werden:

    Code:
            If Len(.Range("F" & i).Text) > 6 Then
                arr(i - 1, 6) = Right(String(Len(.Range("F" & i).Text), " ") & Format(.Range("F" & i).Text, "#,##0.00,"), lngLaenge)
            Else
                arr(i - 1, 6) = Right(String(Len(.Range("F" & i).Text) + 6, " ") & Format(.Range("F" & i).Text, "#,##0.00,"), lngLaenge)
            End If
            If Len(.Range("G" & i).Text) > 6 Then
                arr(i - 1, 7) = Right(String(Len(.Range("G" & i).Text), " ") & Format(.Range("G" & i).Text, "#,##0.00,"), lngLaenge)
            Else
                arr(i - 1, 7) = Right(String(Len(.Range("G" & i).Text) + 6, " ") & Format(.Range("G" & i).Text, "#,##0.00,"), lngLaenge)
            End If
            If Len(.Range("H" & i).Text) > 6 Then
                arr(i - 1, 8) = Right(String(Len(.Range("H" & i).Text), " ") & Format(.Range("H" & i).Text, "#,##0.00,"), lngLaenge)
            Else
                arr(i - 1, 8) = Right(String(Len(.Range("H" & i).Text) + 6, " ") & Format(.Range("H" & i).Text, "#,##0.00,"), lngLaenge)
            End If
            If Len(.Range("I" & i).Text) > 6 Then
                arr(i - 1, 9) = Right(String(Len(.Range("I" & i).Text), " ") & Format(.Range("I" & i).Text, "#,##0.00,"), lngLaenge)
            Else
                arr(i - 1, 9) = Right(String(Len(.Range("I" & i).Text) + 6, " ") & Format(.Range("I" & i).Text, "#,##0.00,"), lngLaenge)
            End If
            If Len(.Range("J" & i).Text) > 6 Then
                arr(i - 1, 10) = Right(String(Len(.Range("J" & i).Text), " ") & Format(.Range("J" & i).Text, "#,##0.00,"), lngLaenge)
            Else
                arr(i - 1, 10) = Right(String(Len(.Range("J" & i).Text) + 6, " ") & Format(.Range("J" & i).Text, "#,##0.00,"), lngLaenge)
            End If
            If Len(.Range("K" & i).Text) > 6 Then
                arr(i - 1, 11) = Right(String(Len(.Range("K" & i).Text), " ") & Format(.Range("K" & i).Text, "#,##0.00,"), lngLaenge)
            Else
                arr(i - 1, 11) = Right(String(Len(.Range("K" & i).Text) + 6, " ") & Format(.Range("K" & i).Text, "#,##0.00,"), lngLaenge)
            End If
            If Len(.Range("L" & i).Text) > 6 Then
                arr(i - 1, 12) = Right(String(Len(.Range("L" & i).Text), " ") & Format(.Range("L" & i).Text, "#,##0.00,"), lngLaenge)
            Else
                arr(i - 1, 12) = Right(String(Len(.Range("L" & i).Text) + 6, " ") & Format(.Range("L" & i).Text, "#,##0.00,"), lngLaenge)
            End If

    Bis später,
    Karin
     
  5. Hi Karin,

    alles übernommen und eingebaut. Funktioniert soweit sehr gut. Danke Dir mit einem sehr großen Respekt und einem dicken Kuss auf die Wange.
    Du hast mir nicht nur sehr geholfen etwas zum benutzen fertig zu bekommen, was viel wichtiger ist sind Deine Erklärungen zu den jeweiligen Änderungen. So war ich in der Lage in einer sehr kurzen Zeit viel zu lernen ohne mich erst Wochen lang einlesen zu müssen.
    Ich konnte also logisch nachvollziehen was in den einzelnen Schritten passiert und anfangen das gelernte in anderen Code teilen anzuwenden. Das macht so viel Spaß das man davon mehr will.

    Ich hoffe Du hast zukünftig diese Geduld und auch Lust ;)

    Nun werde ich erst einmal versuchen noch ein wenig an der Optik zu arbeiten und ein paar kleine Fehlfunktionen zu beseitigen.

    Sollte ich schaffen, wenn nicht hoffe ich mich hier an Dich wenden zu dürfen.

    Liebe herzliche Grüße

    Jürgen

    PS.: Bitte an Die Administratoren! Diesen Thread noch nicht schließen, da ich wenn alles fertig ist die letzte Fassung hier veröffentlichen möchte und falls es noch Probleme geben sollte diese in diesem Thread fertig abzuwickeln.
     
    Merlin-1962, 2. Dezember 2019
    #20
  6. Hi Karin,

    wir haben schon lange keinen Kontakt mehr. Ich hoffe Du hattest ein schönes Weihnachtsfest und einen guten Start ins neue Jahr. Damit du wenigstens ein wenig Stress bekommst, habe ich mir gedacht ich komme mal wieder auf Dich zu. Wie soll es wohl anders sein, ich hänge mal wieder.

    Die aktuellste Version der Excel Tabelle sowie die dazugehörige Userform ist im Anhang.

    Wie Du sehen wirst hat sich einiges geändert, wie z.B.: Die Möglichkeit die Bezeichnung in Deutsch oder in der Ausgewählten Währung - Sprache zu erfassen und diese Eingabe wird dann automatisch entweder ins Deutsche oder in die Währungssprache übersetzt.

    Es funzt alles sehr gut, die Berechnungen und Aktualisierungen werden korrekt durchgeführt.

    Jetzt wollte ich noch über einen Command Button den Ausdruck auf den Printer anstoßen und das Probiere ich seit Silvester.

    Beschreibung:

    Es wurde in das Worksheet eine weitere Tabelle (Tabelle4) eingefügt. Diese wird automatisch mit den Angaben aus Tabelle1 gefüllt. Das heisst beim erfassen oder ändern von Angaben in der Userform aktuallisiert sich Tabelle1 und gleichzeitig Tabelle4.

    Auf der Userform soll jetzt ein Command Button eingefügt werden der folgendes bei Betätigung bewirkt:

    1.) Er soll aus der Tabelle4 alle Zeilen welche in Spalte A gefüllt sind feststellen.
    2.) Anschließend einen neuen Druckbereich festlegen mit dementsprechenden Kopf und Fußzeilen unter Beachtung der Seitenumbrüche.

    Anmerkung: Seite1 der Tabelle4 unterscheidet sich in der Zeilenanzahl zu den restlichen Seiten.

    3.) Danach soll der Ausdruck gestartet werden. Der Ausdruck soll erfolgen bis zur letzten gefüllten Zeile Spalte A. Leerzeilen unterhalb sollen nicht gedruckt werden, Auch nicht die Rahmen. An die letzte gefüllte Zeile Spalte A soll in der nächsten Zeile Auf diesem Blatt dann (siehe Tabelle4) "gesamt:" und die jeweiligen Ergebnis Berechnungen folgen.

    Ich hoffe ich habe das nicht zu kompliziert beschrieben.

    Nachdem ich mehrfach durch ausprobieren die Userform getötet hatte habe ich den Command Button und die probierten Codes raus geworfen.

    Es wäre Lieb wenn du mir (dürfen Sich gerne auch weitere dazu melden) bei dem Code für den Command Button helfen könntest.

    Liebe Grüße

    Jürgen
     
    Merlin-1962, 26. Januar 2020
    #21
  7. Habe es gelößt, sicherlich nicht die feinste Art und Weise aber es Funzt :):)

    Gibt jedoch noch ein anderes Problem bin gerade auf der Suche im Forum bevor ich es hier erläutere.

    Aktuelle Datei: Kann ich nicht Hochladen, da Fehlermeldung: "Datei kann nicht Hochgeladen werden Größer 100 KB (104,3)
     
    Merlin-1962, 1. Februar 2020
    #22
Thema:

Listbox mit mehreren Spalten

Die Seite wird geladen...
  1. Listbox mit mehreren Spalten - Similar Threads - Listbox mehreren Spalten

  2. Listbox wird nicht breiter, Schriftgrösse ändert sich

    in Microsoft Excel Hilfe
    Listbox wird nicht breiter, Schriftgrösse ändert sich: Hallo, ich habe ein Formular dessen Breite ich mit der Maus ändern kann. Im Formular habe ich einen Rahmen und darin eine Listbox deren Breite an die Formularbreite angepasst wird....
  3. Listbox Sortierung

    in Microsoft Excel Hilfe
    Listbox Sortierung: Hallo an die Gruppe, ich benötige Hilfe bei der Sortierung eines ListenFeldes. Ich habe eine Listbox in einem UserForm diese wird bei der Initalisierung so gefüllt. Private Sub...
  4. Suche mit Ausgabe mehrere Ergebnisse in ListBox

    in Microsoft Excel Hilfe
    Suche mit Ausgabe mehrere Ergebnisse in ListBox: Hi Freunde, ich habe jetzt ein neues Problem und hoffe Ihr habt die Lösung dafür. Mein Vorhaben: -Liste mit 16 Spalten und 1000 Zeilen -Suchfunktion Mittels UserForm in das Excelblatt einbetten...
  5. Inhalt aus mehreren Textboxen in Tabelle suchen und in Listbox ausgeben

    in Microsoft Excel Hilfe
    Inhalt aus mehreren Textboxen in Tabelle suchen und in Listbox ausgeben: Guten Morgen zusammen, hier im Forum bin ich auf folgenden Code gestoßen http://www.office-hilfe.com/support/showthread.php/17436-TextBox-Inhalt-auf-anderem-Tabellenblatt-suchen. Für meine...
  6. Userform mit mehreren Listboxen

    in Microsoft Excel Hilfe
    Userform mit mehreren Listboxen: Hallo zusammen, ich bastel mir gerade ein Userform mit zwei Listboxen zusammen. Ich komme mit den Werten KlassAkt.Caption = "Test8" SVAkt.Caption = 5 in das UserForm_Initialize() Jetzt...
  7. Listbox mit mehreren Spalten Auswahl einer einzelnen Spalte möglich?

    in Microsoft Excel Hilfe
    Listbox mit mehreren Spalten Auswahl einer einzelnen Spalte möglich?: Hallo Leute, ich habe eine Beispieldatei gemacht. Wenn ihr euch in KW34 die listbox anseht seht ihr unter jedem Wochentag zwei Daten (Lieferschein-Nr. und Datum). Ich würde nun gerne z.b....
  8. Listbox mit mehreren Spalten

    in Microsoft Excel Hilfe
    Listbox mit mehreren Spalten: Hallo Ich möchte eine Listbox mit Daten aus einer Tabelle mit mehreren Spalten füllen. Es können neue Daten hinzugefügt oder auch gelöscht werden. Habe lange im Internet gesucht und nur Beispiele...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden