Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1020to1024
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
Listebox behält format nicht! & Werte bezug
12.11.2008 09:47:00
adrian
Hallo,
habe zwei kleine Probleme auf dessen Lösung ich noch nicht so ganz gekommen bin.
a) meine Listbox ändert immer ihr Aussehen, wenn ich nach dem öffnen des Excel Sheets auf Sie klicke bzw. aktiviere
Sie ist vom Typ ListBox1_GotFocus()
vll. liegt es ja am Typ, womit ich gleich bei meiner nächsten frage bin.
b) gibt es eine funktionierende alternative zu "GotFocus"?
mit "Initialize" und "Open" bzw. "Activate" mag es nicht so ganz klappen =(
bei diesen Alternativen lädt die Liste nicht gleich beim Öffnen der Mappe die Daten, was ich viel schöner finde wie erst beim anklicken.
Wäre super wenn ich auch eine kleine Erklärung dazu bekommen könnte =)
lg
adrian
hier mal die Liste:
Option Explicit

Private Sub ListBox1_GotFocus()
Dim Cell As Range
Dim tempVar()
Dim zaehler As Integer, i As Integer
zaehler = Worksheets("Philips (A)").Range("SupplierAs").Cells.Count
zaehler = zaehler + Worksheets("Philips (EU)").Range("SupplierEU").Cells.Count
zaehler = zaehler + Worksheets("Philips (US)").Range("SupplierUS").Cells.Count
ReDim tempVar(0 To zaehler, 0)
i = 0
With Me.ListBox1
.Clear
For Each Cell In Worksheets("Philips (A)").Range("SupplierAs")
If Cell  "" Then
If IsNumeric(Application.Match(Cell, tempVar, 0)) = False Then
tempVar(i, 0) = Cell.Value
.AddItem Cell.Value
i = i + 1
End If
End If
Next
For Each Cell In Worksheets("Philips (EU)").Range("SupplierEU")
If Cell  "" Then
If IsNumeric(Application.Match(Cell, tempVar, 0)) = False Then
tempVar(i, 0) = Cell.Value
.AddItem Cell.Value
i = i + 1
End If
End If
Next
For Each Cell In Worksheets("Philips (US)").Range("SupplierUS")
If Cell  "" Then
If IsNumeric(Application.Match(Cell, tempVar, 0)) = False Then
tempVar(i, 0) = Cell.Value
.AddItem Cell.Value
i = i + 1
End If
End If
Next
End With
End Sub


6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listebox behält format nicht! & Werte bezug
12.11.2008 16:10:26
ChrisL
Hallo Adrian
Ich denke ein UserForm_Initialize() Ereignis wäre möglicherweise geeignet. Warum/wie sich das Format ändert kann ich nicht nachvollziehen.
cu
Chris
AW: Listebox behält format nicht! & Werte bezug
13.11.2008 11:39:52
adrian
hi,
danke dir
habe es aber mit _SelectionChange(ByVal Target as Range) gelöst.
gefällt mir so ganz gut =)
weißt du zufällig, wie ich aber das Aussehen dieser frechen, verflixten Liste beibehalten kann?
also, dass sie nicht ihr format ändert, sobald sie durch was auch immer aktiviert wird....
lg
adrian
AW: Listebox behält format nicht! & Werte bezug
13.11.2008 11:55:27
adrian
hallo,
hab es rausgefunden!
das hat vll. gedauert =)
intergral height =! false bei den properties
lg
adrian
Anzeige
AW: Listebox behält format nicht! & Werte bezug
12.11.2008 16:54:29
fcs
Hallo Adrian,
mit einem kleinen Trick kannst du die Liste auch beim Öffnen der Datei oder besser beim Aktivieren des Tabellenblatts mit der Liste aktualisieren.
Dazu wird beim Öffnen der Datei das Blatt mit der Listbox aktiviert und das entsprechende Ereignismakro ausgelöst.
Alternativ kannst du natürlich auch per Button das Fuellen der Listbox manuell starten.
Deine Makros müssen dann wie folgt aussehen.
Gruß
Franz

'Code im Tabellen-Modul:
Option Explicit
Private bolOpen As Boolean 'Wird nach dem 1. Aktualisieren via Worksheet_Activate auf _
True gesetzt um mehrmaliges aktualisieren der Listbox zu verhindern
Private Sub Listbox1_Fuellen()
Dim Cell As Range
Dim tempVar()
Dim zaehler As Integer, i As Integer
zaehler = Worksheets("Philips (A)").Range("SupplierAs").Cells.Count
zaehler = zaehler + Worksheets("Philips (EU)").Range("SupplierEU").Cells.Count
zaehler = zaehler + Worksheets("Philips (US)").Range("SupplierUS").Cells.Count
ReDim tempVar(0 To zaehler, 0)
i = 0
With Me.ListBox1
.Clear
For Each Cell In Worksheets("Philips (A)").Range("SupplierAs")
If Cell  "" Then
If IsNumeric(Application.Match(Cell, tempVar, 0)) = False Then
tempVar(i, 0) = Cell.Value
.AddItem Cell.Value
i = i + 1
End If
End If
Next
For Each Cell In Worksheets("Philips (EU)").Range("SupplierEU")
If Cell  "" Then
If IsNumeric(Application.Match(Cell, tempVar, 0)) = False Then
tempVar(i, 0) = Cell.Value
.AddItem Cell.Value
i = i + 1
End If
End If
Next
For Each Cell In Worksheets("Philips (US)").Range("SupplierUS")
If Cell  "" Then
If IsNumeric(Application.Match(Cell, tempVar, 0)) = False Then
tempVar(i, 0) = Cell.Value
.AddItem Cell.Value
i = i + 1
End If
End If
Next
End With
End Sub
Sub Commandbutton1_Click()
'Listbox1 wird per ButtonKlick gefüllt (Alternative)
Dim varWert
With Me.ListBox1
'ggf. Wert der verbundenen Zelle merken
If .LinkedCell  "" Then
varWert = Me.Range(.LinkedCell).Text
End If
Call Listbox1_Fuellen
'ggf. Wert der verbundenen Zelle wieder eintragen
If .LinkedCell  "" Then
Me.Range(.LinkedCell).Value = varWert
End If
End With
End Sub
Private Sub Worksheet_Activate()
'Listbox1 wird beim erstmaligen Aktivieren des Tabellenblatts gefüllt.
Dim varWert
If bolOpen = False Then
With Me.ListBox1
'ggf. Wert der verbundenen Zelle merken
If .LinkedCell  "" Then
varWert = Me.Range(.LinkedCell).Text
End If
Call Listbox1_Fuellen
'ggf. Wert der verbundenen Zelle wieder eintragen
If .LinkedCell  "" Then
Me.Range(.LinkedCell).Value = varWert
End If
End With
bolOpen = True
End If
End Sub
'Code unter diese Arbeitsmappe:
Option Explicit
Private Sub Workbook_Open()
Dim wks
Set wks = ActiveSheet 'Aktives Blatt merken
Worksheets("Philips (A)").Activate 'Anderes Blatt als das mit Listbox aktivieren
Worksheets("Tabelle1").Activate 'Tabelle mit Listbox, ggf. Tabellenname anpassen
wks.Activate
End Sub


Anzeige
AW: Listebox behält format nicht! & Werte bezug
13.11.2008 11:37:27
adrian
Vielen Dank dir,
habe es einfach so gelöst, das ich es als _SelectionChange(ByVal as Range) deklariere
gefällt mir am besten =)
aber eines macht mich immer noch stutzig....warum ändert diese freche Liste immer ihr Aussehen, sobald sie durch was auch immer aufgerufen wird?
lg
adrian
AW: Listebox behält format nicht! & Werte bezug
13.11.2008 11:56:00
adrian
hallo,
hab es rausgefunden!
das hat vll. gedauert =)
intergral height =! false bei den properties
lg
adrian

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige