Discussion:
Listbox im Tabellenblatt steuern
(zu alt für eine Antwort)
Peter Hilscher
2006-02-08 03:51:38 UTC
Permalink
Hallo und Guten Tag,

ich will unter Excel97 eine Listbox im Tabellenblatt (nicht in einem
Formular) steuern.
Die Steuerung soll auch aus einem VBA Modul möglich sein.

Folgende Situation:

Im Blatt
ListBox1.Visible=True 'funktioniert einwandfrei, geht aber
nur im Blatt

im Modul
dim ws as worksheet

set ws=...
ws.shapes("ListBox1").visible=True

Funktioniert nicht! Die Listbox läßt sich so nur manchmal (undefiniert)
steuern.
Es kommt zu Abstürzen, wenn ich dann versuche in der ListBox zu die Maus zu
bewegen.
Wenn ich auf diese Weise die Listbox wieder ausblende, dann wird sie zwar
unsichtbar,
das jetzt unsichtbare Listboxfenster reagiert aber noch auf Mausereignisse.
Z.Bsp. Wenn ich das Rechteck überfahre, dann ändert sich der Cursor, als
wäre ich im Entwurfsmodus.

Kann mir jemand sagen, wie ich die Listbox korrekt ansprechen kann ?

Ich habe sogar schon versucht über das WindowsAPI das Fensterhandle zu
ermitteln
und mit ShowWindow ein- und auszublenden. Dabei ist dann das Verhalten
ähnlich konfus.

Ich bin dankbar für jede Idee.

Gruß Peter
stefan onken
2006-02-08 08:13:54 UTC
Permalink
Hallo Peter,
ich habe hier XL02 und folgendes Verhalten:
eine Listbox kann man ausserhalb des Codemoduls der Tabelle mit
Sheets("Tabelle1").ListBox1.Visible =False
bzw
Set ws = Sheets("Tabelle1")
ws.Listbox1.Visible = False
ansprechen.
Weitere Möglichkeit:
Sheets("Tabelle1").OleObjects("Listbox1").Visible = False

Über die Shapes-Auflistung
Sheets("Tabelle1").Shapes("Listbox1").Visible = False
klappt es bei mir mit der Listbox auch nicht, bei
anderen Steuerelementen (CommandButton, Combobox getestet)
dagegen sehr wohl.

Gruß
stefan
Post by Peter Hilscher
Hallo und Guten Tag,
ich will unter Excel97 eine Listbox im Tabellenblatt (nicht in einem
Formular) steuern.
Die Steuerung soll auch aus einem VBA Modul möglich sein.
Im Blatt
ListBox1.Visible=True 'funktioniert einwandfrei, geht aber
nur im Blatt
im Modul
dim ws as worksheet
set ws=...
ws.shapes("ListBox1").visible=True
Funktioniert nicht! Die Listbox läßt sich so nur manchmal (undefiniert)
steuern.
Es kommt zu Abstürzen, wenn ich dann versuche in der ListBox zu die Maus zu
bewegen.
Wenn ich auf diese Weise die Listbox wieder ausblende, dann wird sie zwar
unsichtbar,
das jetzt unsichtbare Listboxfenster reagiert aber noch auf Mausereignisse.
Z.Bsp. Wenn ich das Rechteck überfahre, dann ändert sich der Cursor, als
wäre ich im Entwurfsmodus.
Kann mir jemand sagen, wie ich die Listbox korrekt ansprechen kann ?
Ich habe sogar schon versucht über das WindowsAPI das Fensterhandle zu
ermitteln
und mit ShowWindow ein- und auszublenden. Dabei ist dann das Verhalten
ähnlich konfus.
Ich bin dankbar für jede Idee.
Gruß Peter
Michael Schwimmer
2006-02-10 22:01:15 UTC
Permalink
Hallo Peter,
Post by Peter Hilscher
ich will unter Excel97 eine Listbox im Tabellenblatt (nicht in einem
Formular) steuern.
Die Steuerung soll auch aus einem VBA Modul möglich sein.
ListBox1.Visible=True 'funktioniert einwandfrei, geht aber
nur im Blatt
im Modul
dim ws as worksheet
set ws=...
ws.shapes("ListBox1").visible=True
Funktioniert nicht! Die Listbox läßt sich so nur manchmal
(undefiniert) steuern.
wie du die Listbox korrekt ansprichst, hat dir Stefan bereits gepostet.
Post by Peter Hilscher
Ich habe sogar schon versucht über das WindowsAPI das Fensterhandle
zu ermitteln
Es würde mich mal interessieren, wie du das probiert hast.
Post by Peter Hilscher
und mit ShowWindow ein- und auszublenden. Dabei ist dann das
Verhalten ähnlich konfus.
Ähnlich mit was?
Was für eine Listbox benutzt du denn? Weder die aus der Steuerelemente-
Toolbox, noch die aus der Formular-Toolbox besitzen ein Handle. Beide
sind reine grafische Objekte ohne ein eigenes Fenster. Also funktioniert
auch kein ShowWindow mit diesen Objekten.

Fremde Steuerelemente würde ich auch nicht einsetzen, wenn ähnliche
Objekte in der Steuerelemente-Toolbox vorhanden sind. Auch die aus der
Formular-Toolbox sollten nur als zweite Wahl betrachtet werden.

MfG
Michael
--
Michael Schwimmer http://michael-schwimmer.de
Excel VBA ISBN 3-8273-2183-2
Excel Programmierung - Das Handbuch ISBN 3-8606-3548-4
Loading...