Discussion:
Aktuelle Zeile einer ListBox bestimmen / aktuelle Zeile löschen
(zu alt für eine Antwort)
Florian Zille
2007-03-28 08:44:02 UTC
Permalink
Hallo,

ich habe zwei Fragen:

1. Wie kann ich die aktuell markierte Zeile einer ListBox bestimmen?
2. Wie kann ich die aktuell markierte Zeile einer ListBox löschen?

Im Voraus vielen Dank für Eure Hilfe!

Gruß,
Flo.
Michael Schreiber
2007-03-28 12:04:02 UTC
Permalink
Hallo Florian,
die aktuelle Zeile der Listbox erhälst Du in der Zelle, die unter
Zellverknüpfung angegeben ist. Diese ist dann gleichzeitg der Index für den
Bereich, der bei Eingabebereich angegeben ist. Du musst also nur mit einem
Makro die entsprechende Zelle im Eingabebereich löschen.
--
Gruß,
Michael Schreiber
http://seschreiber.de/
Florian Zille
2007-03-28 12:28:05 UTC
Permalink
Hast Du ein Code-Beispiel? Das sagt mir gar nichts.

Ich habe nur einen Range (2 Spalten mit i Zeilen) in die ListBox mit
ListBoxProjects.ColumnCount = 2
ListBoxProjects.RowSource = "A" & 2 & ":B" & i
kopiert.

In der ListBox kann man ja jetzt mit einem Mausklick eine bestimmte
Zeile markieren. Woher weiß ich, welche Zeile das ist? Wie kann ich
diese Zeile dann aus der ListBox löschen? Nach dem Löschen würde
ich den Inhalt der ListBox in ein Excel-Sheet einfügen. Und zwar mit:

Worksheets("Projects").Range("A2:B" & ListBoxProjects.ListCount) = _
ListBoxProjects.List()

Flo
Post by Michael Schreiber
Hallo Florian,
die aktuelle Zeile der Listbox erhälst Du in der Zelle, die unter
Zellverknüpfung angegeben ist. Diese ist dann gleichzeitg der Index für den
Bereich, der bei Eingabebereich angegeben ist. Du musst also nur mit einem
Makro die entsprechende Zelle im Eingabebereich löschen.
--
Gruß,
Michael Schreiber
http://seschreiber.de/
Michael Schreiber
2007-03-28 12:58:02 UTC
Permalink
Hallo Florian,
meine erste Antwort hatte sich auf den Eigenschaftendialog der Listbox im
Arbeitsbereich bezogen.
Da Du offensichtlich schon mit VBA arbeitest erscheint mir ein Hinweis auf
ListBoxProjects.ListIndex als zu einfach?
Zum Entfernen des Eintrages mußt Du aber immernoch den Wert aus dem
referenzierten Bereich entfernen oder einen anderen Bereich (in dem der Wert
nicht enthalten ist) zuweisen.
--
Gruß,
Michael Schreiber
http://seschreiber.de/
Claus Busch
2007-03-28 13:15:20 UTC
Permalink
Hallo Florian,
Post by Florian Zille
Hast Du ein Code-Beispiel? Das sagt mir gar nichts.
Ich habe nur einen Range (2 Spalten mit i Zeilen) in die ListBox mit
ListBoxProjects.ColumnCount = 2
ListBoxProjects.RowSource = "A" & 2 & ":B" & i
kopiert.
In der ListBox kann man ja jetzt mit einem Mausklick eine bestimmte
Zeile markieren. Woher weiß ich, welche Zeile das ist? Wie kann ich
diese Zeile dann aus der ListBox löschen? Nach dem Löschen würde
Worksheets("Projects").Range("A2:B" & ListBoxProjects.ListCount) = _
ListBoxProjects.List()
wenn in deiner Listbox ein Wert angeklickt ist, erhält die Listbox diesen
Wert. Du bräuchtest eigentlich nur abzufragen, ob die Listbox einen Wert
hat:
Private Sub ListBox1_Change()
Dim strCol1 As String
Dim strCol2 As String

With ListBox1
strCol1 = .List(.ListIndex, 0)
strCol2 = .List(.ListIndex, 1)
If .Value <> "" Then
MsgBox strCol1 & " - " & strCol2
End If
End With
End Sub
--
Mit freundlichen Grüssen
Claus Busch

Win XP Prof SP2; Office 2000 SP3
claus_busch(at)t-online.de
Florian Zille
2007-03-29 09:08:01 UTC
Permalink
Hallo Claus,

vielen Dank für Deine Hilfe! Das war genau das,
was ich gesucht habe!

Gruß,
Flo.
Post by Michael Schreiber
Hallo Florian,
Post by Florian Zille
Hast Du ein Code-Beispiel? Das sagt mir gar nichts.
Ich habe nur einen Range (2 Spalten mit i Zeilen) in die ListBox mit
ListBoxProjects.ColumnCount = 2
ListBoxProjects.RowSource = "A" & 2 & ":B" & i
kopiert.
In der ListBox kann man ja jetzt mit einem Mausklick eine bestimmte
Zeile markieren. Woher weiß ich, welche Zeile das ist? Wie kann ich
diese Zeile dann aus der ListBox löschen? Nach dem Löschen würde
Worksheets("Projects").Range("A2:B" & ListBoxProjects.ListCount) = _
ListBoxProjects.List()
wenn in deiner Listbox ein Wert angeklickt ist, erhält die Listbox diesen
Wert. Du bräuchtest eigentlich nur abzufragen, ob die Listbox einen Wert
Private Sub ListBox1_Change()
Dim strCol1 As String
Dim strCol2 As String
With ListBox1
strCol1 = .List(.ListIndex, 0)
strCol2 = .List(.ListIndex, 1)
If .Value <> "" Then
MsgBox strCol1 & " - " & strCol2
End If
End With
End Sub
--
Mit freundlichen Grüssen
Claus Busch
Win XP Prof SP2; Office 2000 SP3
claus_busch(at)t-online.de
Claus Busch
2007-03-29 09:23:08 UTC
Permalink
Hallo Florian,
Post by Florian Zille
vielen Dank für Deine Hilfe! Das war genau das,
was ich gesucht habe!
gern geschehen. Freut mich, wenn ich dir helfen konnte. Danke für die
Rückmeldung.
--
Mit freundlichen Grüssen
Claus Busch

Win XP Prof SP2; Office 2000 SP3
claus_busch(at)t-online.de
Loading...