Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: aus ListBox in Zelle springen und diese markieren

aus ListBox in Zelle springen und diese markieren
Frank
Hallo alle zusammen,
ich habe ein kurzes Anliegen:
Ich bekomme in einer ListBox Zeilen ausgegeben die in Excel doppelt mit einer anderen sind. Nun habe ich mich gefragt, wie ich es realisiere, dass wenn ich eine Zeile in der ListBox anwähle, in die Zeile in Excel springt und markiert. Bei Anwahl einer anderen Zeile zu der anderen springt die alte demarkiert und die neue Zeile markiert?
Ich hoffe das war verständlich und es wäre schön, wenn mir jemand dazu einen Lösungsansatz mitteilen könnte.
Ein schönen Tag wünscht,
Frank
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: aus ListBox in Zelle springen und diese markieren
18.09.2009 18:05:50
Hajo_Zi
Hallo Frank,
ein Beispiel wäre da schon nicht schlecht. Da die meisten nicht sehen wie Du Deine Listbox füllst?

AW: aus ListBox in Zelle springen und diese markieren
21.09.2009 14:42:02
otto
Hi,
vielleicht so:
Private Sub markieren()
Dim intindex As Integer, zeile
For intindex = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(intindex) = True Then
zeile = ListBox1.List(intindex, "deine Spalte mit der Zeilennummer")
End If
Next intindex
Sheets("dein Tabellenblatt").Select
On Error GoTo ende
Sheets("dein Tabellenblatt").Rows(zeile).Select
ende:
End If
otto
Anzeige
Cells.Find(Listbox1.Text).Select
18.09.2009 18:15:32
Toni
oT
AW: Cells.Find(Listbox1.Text).Select
20.09.2009 23:24:10
TOYY1
Hallo und guten Abend,
ich habe nun eine kleinen Test erstellt -> eine Userform mit einem Textfeld. Ich werde das so machen, dass ich eine Zahl eingebe und in die entsprechende Zeile springe. Wie lasse ich nur Zhalen zu bzw. wie verbinde ich die beiden Makros?

Private Sub TextBox1_Change()
If TextBox1.Text = "" Then Else Cells(TextBox1.Text, 1).Select Range(Cells(TextBox1.Text, 1), Cells(TextBox1.Text, 20)).Interior.ColorIndex = 6 End If End Sub

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii Case 48 To 57 Case Else KeyAscii = 0 End Select End Sub Eine letzte Frage wäre noch...wie deselektiere ich den markierten Bereich, sprich setze diesem wieder auf keine Farbe, sobald ich eine Zahl eingegeben habe?
Gruß, Frank
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Aus ListBox in Zelle springen und diese markieren


Schritt-für-Schritt-Anleitung

Um eine Zeile in Excel zu markieren, wenn Du eine Auswahl in einer ListBox triffst, kannst Du die folgenden Schritte befolgen:

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel (Alt + F11).
  2. Füge eine Userform hinzu und platziere eine ListBox auf der Form.
  3. Füge den folgenden VBA-Code in das Codefenster der Userform ein:
Private Sub ListBox1_Click()
    Dim zeile As Integer
    zeile = ListBox1.List(ListBox1.ListIndex, "deine Spalte mit der Zeilennummer")

    Sheets("dein Tabellenblatt").Select
    On Error Resume Next
    Rows(zeile).Select
    Selection.Interior.ColorIndex = 6 ' Markiere die Zeile
End Sub
  1. Ersetze "dein Tabellenblatt" durch den tatsächlichen Namen Deines Arbeitsblatts und "deine Spalte mit der Zeilennummer" durch die entsprechende Spalte in der ListBox.
  2. Teste die Userform, indem Du eine Zeile in der ListBox auswählst. Die entsprechende Zeile in Excel sollte jetzt markiert werden.

Häufige Fehler und Lösungen

  • Fehler: Zeile wird nicht markiert.

    • Lösung: Überprüfe, ob die Spalte, die Du für die Zeilennummer in der ListBox angegeben hast, korrekt ist und die Zeilennummern tatsächlich vorhanden sind.
  • Fehler: Fehler beim Auswählen der Zeile.

    • Lösung: Stelle sicher, dass Du den richtigen Tabellenblattnamen verwendest und dass der VBA-Code im richtigen Modul eingefügt ist.

Alternative Methoden

Eine weitere Methode, um eine Zelle zu markieren, ist die Verwendung eines Textfeldes, in das Du eine Zahl eingibst. Hier ist ein Beispielcode:

Private Sub TextBox1_Change()
    If TextBox1.Text <> "" Then
        Cells(TextBox1.Text, 1).Select
        Range(Cells(TextBox1.Text, 1), Cells(TextBox1.Text, 20)).Interior.ColorIndex = 6 ' Markiere den Bereich
    End If
End Sub

Dieser Code ermöglicht es Dir, durch die Eingabe einer Zahl in ein Textfeld direkt zu einer Zeile zu springen und diese zu markieren.


Praktische Beispiele

  1. Markiere eine Zeile basierend auf einer ListBox-Auswahl:

    • Füge eine ListBox hinzu, die Werte aus einer Datenquelle anzeigt.
    • Verwende den oben genannten Code, um die Zeile, die dem ListBox-Eintrag entspricht, zu markieren.
  2. Markiere den Bereich basierend auf einem Textfeld:

    • Benutze den TextBox1_Change-Event, um einen Bereich basierend auf der eingegebenen Zeilennummer zu markieren.

Tipps für Profis

  • Nutze On Error Resume Next vorsichtig, um unerwartete Fehler zu vermeiden. Es ist oft besser, spezifische Fehlerbehandlungsroutinen zu implementieren.
  • Du kannst die Farbe der Markierung anpassen, indem Du den ColorIndex änderst. Zum Beispiel, ColorIndex = 3 ergibt rot.
  • Experimentiere mit dynamischen Datenquellen für Deine ListBox, um die Benutzererfahrung zu verbessern.

FAQ: Häufige Fragen

1. Wie kann ich die Markierung einer Zelle entfernen? Du kannst die Markierung zurücksetzen, indem Du die Hintergrundfarbe der Zelle auf xlNone oder auf die Standardfarbe änderst.

2. Ist dieser Code in allen Excel-Versionen anwendbar? Ja, der bereitgestellte VBA-Code sollte in den meisten modernen Excel-Versionen funktionieren, die VBA unterstützen.

3. Kann ich mehrere Zeilen gleichzeitig markieren? Ja, Du kannst den Code anpassen, um mehrere Zeilen basierend auf der Auswahl in der ListBox zu markieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige