Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
480to484
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
480to484
480to484
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Listbox

Listbox
10.09.2004 15:15:55
Erich
Hallo.....
Kurze Frage:
Ist es möglich Zellen mit Zeilenumbruch in eine
Listbox einzulesen ?
Gruss Erich

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox
10.09.2004 17:09:20
GraFri
Hallo
Prinzipiell ja. Man muß jedes Zeichen einer Zelle überprüfen, ob der Asc-Code=10 ist (Zeilenumbruch).
z.B.: Zelle A1 wird untersucht

Sub Teste_Zeilenumbruch()
For n = 1 To Len(Sheets(1).[a1].Text)
MsgBox Asc(Mid(Sheets(1).[a1].Text, n, 1))
Next n
End Sub

Mit freundlichen Grüßen, GraFri
AW: Listbox
10.09.2004 17:55:55
Erich
Hallo GraFri
Erstmal vielen Dank.
Ich bin VBA Anfänger wo schreibe ich den Code rein.
Zeilenumbruch nur in Spalten C und F
Texte sind immer von unterschiedlicher Länge manche
Zellen bleiben auch leer.
Ist so etwas machbar? wenn nicht ist auch nicht tragisch.
Gruss Erich
PS kann mich erst morgen melden.
Anzeige
AW: Listbox
10.09.2004 19:44:18
GraFri
Hallo
Also etwas ausführlich:
Drücke in der Excel-Tabelle Alt+F11, dann solte ein zweigeteiltes Fenster erscheinen (oder: Unter Extras\Makro... den Visual-Basic Editor aufrufen). Im linken Fenster (falls nicht vorhanden, Strg+R drücken) findest du eine Auflistung aller geöffneter Dateien. Wähle dort die entsprechende Datei und dann das entsprechende Tabellenblatt durch doppelklick aus. Anschließend kopiere den Code in das rechte Fenster. Dann im Code den Tabellennamen und eventuell auch die Ausgabezelle anpassen.
Erstelle in dem zu bearbeitenden Tabellenblatt eine Listbox aus der Steuerelement-Toolbox. Den Entwurfsmodus mittels Klick auf das Dreieck in der Steuerelement-Toolbox Symbolleiste beenden. Code einfügen und Makro laufen lassen.
Code:


Option Explicit
Option Base 0
'Tabellenname der zu bearbeitenden Tabelle
Const TabellenName      As String = "Tabelle1"
'Startzeile festlegen
Const StartZeile        As Long = 2
Sub Zeilenumbruch_in_Listbox()
  Dim mitUmbruch$(), Spalte1&, Spalte2&, letzteZ&, Index&
  Dim Bereich           As Range
  Dim Zelle             As Range
    Spalte1 = 3       'Spalte C
    Spalte2 = 6       'Spalte F
  
'Letzte Datenzeile der Spalte C ermitteln
    letzteZ = letzteZeile(Worksheets(TabellenName), Spalte1)
    Set Bereich = Worksheets(TabellenName). _
                       Range("C" & StartZeile & ":C" & letzteZ)
'Suchvorgang in Spalte C
    For Each Zelle In Bereich
        If Zelle.Value <> vbNullString Then
                If InStr(Zelle.Value, Chr(10)) Then
                    ReDim Preserve mitUmbruch(Index)
                    mitUmbruch(Index) = Zelle.Value
                    Index = Index + 1
                End If
        End If
    Next Zelle
    
'Letzte Datenzeile der Spalte F ermitteln
    letzteZ = letzteZeile(Worksheets(TabellenName), Spalte2)
    Set Bereich = Worksheets(TabellenName). _
                       Range("F" & StartZeile & ":F" & letzteZ)
'Suchvorgang in Spalte F
    For Each Zelle In Bereich
        If Zelle.Value <> vbNullString Then
                If InStr(Zelle.Value, Chr(10)) Then
                    ReDim Preserve mitUmbruch(Index)
                    mitUmbruch(Index) = Zelle.Value
                    Index = Index + 1
                End If
        End If
    Next Zelle
    
'In die Listbox1 eintragen
    With Worksheets(TabellenName)
        .ListBox1.List() = mitUmbruch
    End With
    
End Sub
Public Function letzteZeile(vWS As VariantOptional As Long = 1) As Long
Dim y   As Long
Dim ws  As Worksheet
    
On Error GoTo PROC_ERR
    
    Select Case UCase(TypeName(vWS))
        Case "STRING"
            Set ws = Worksheets(vWS)
        Case "WORKSHEET"
            Set ws = vWS
        Case Else
            GoTo PROC_ERR
    End Select
    
    With ws
        y = .Rows.Count
        letzteZeile = .Cells(y, x).End(xlUp).Row
    End With
    
PROC_EXIT:
    Exit Function
PROC_ERR:
    letzteZeile = -1
    Resume PROC_EXIT
End Function


Was willst du aber mit dieser Anzeige anfangen. Soll, wenn man in der Listbox einen Eintrag markiert, diese Zelle ausgewählt werdeb? Bei weiteren Fragen oder Änderungen melden.
Mit freundlichen Grüßen, GraFri
Anzeige
AW: Listbox
11.09.2004 06:45:17
Erich
Hallo GraFri
Vielen Dank für Deine Mühe.
Werde alles so machen wie beschrieben.
Sollte ich es nicht hinbekommen melde ich mich wieder.
Nochmals Danke
Gruss Erich
AW: Listbox
11.09.2004 08:24:09
Erich
Hallo GraFri
Muss mich doch melden.
Bei dieser Zeile
.ListBox1.List() = mitUmbruch
kommt die Meldung
Laufzeitfehler "380"
Eigenschaft List konnte nicht gesetzt werden.
Ungültiger Eigenschaftswert.
Was mache ich falsch.
Gruss Erich
AW: Listbox
11.09.2004 10:05:33
GraFri
Hallo
Also bei mir funktioniert es.
Was soll's. Dann anders.


'In die Listbox1 eintragen
    ListBox1.Clear
    For Index = 0 To UBound(mitUmbruch)
        Worksheets(TabellenName).ListBox1.AddItem mitUmbruch(Index)
    Next Index


Mit freundlichen Grüßen, GraFri
Anzeige
AW: Listbox
11.09.2004 10:46:59
Erich
Hallo GraFri
Jetzt klappt es bei mir auch.
Nochmals Vielen, vielen Dank
Gruss Erich

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige