Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
588to592
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
588to592
588to592
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

ListBox aktivieren

ListBox aktivieren
28.03.2005 18:15:05
Erich
Hallo EXCEL-Freunde,
bei Aktivierung einer ComboBox mit einer Spaltenbezeichnung soll
automatisch
eine Listbox mit den ausgewählten Daten befüllt werden. Bei dieser
Auswahl nach spalte funktioniert es; es wird die ausgewählte Spalte
mit den Zeilen 3 bis 8 angezeigt:

Private Sub ComboBox4_Change()
Dim m As Integer
Dim LoI As Integer
ListBox1.Clear
m = ComboBox4.ListIndex + 1
For LoI = 3 To 8
With ListBox1
.AddItem Cells(LoI, m)
End With
Next LoI
End Sub

Ähnlich möchte ich bei der ComboBox3 erreichen, dass bei Auswahl einer Spalte
die gewählte spalte + zwei weitere Spalten rechts davon angezeigt werden.
Also wenn ich D auswähle, sollen D + E + F (Zeilen 1 bis 7) angezeigt werden:

Private Sub ComboBox3_Change()
Dim sp As Integer, m As Integer
Dim LoI As Integer
Dim az As Integer
ListBox2.Clear
m = ComboBox3.ListIndex + 1
ListBox2.ColumnCount = 3
For LoI = 1 To 7
ListBox2.AddItem Format(Cells(LoI, m))
For sp = m To m + 2
ListBox2.List(LoI - 1, sp - 1) = Cells(LoI, sp)
Next sp
Next LoI
End Sub

Allerdings bringe ich den Code nicht hin.....
Besten Dank für eine Hilfe!!
mfg
Erich
http://www.toolex.de

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ListBox aktivieren
28.03.2005 19:01:37
Ramses
Hallo
was willst du denn damit erreichen ?
"..ListBox2.AddItem Format(Cells(LoI, m)).."
Format,... Was ?
Warum weisst du keine RowSource zu. Geht einfacher.
Ansonsten mit
ListBox2.ColumnCount = 3
For LoI = 1 To 7
ListBox2.AddItem Format(Cells(LoI, m))
'1. Spalte
Me.Listbox2.AddItem Cells(LoI, 1).Value
'2. Spalte
Me.Listbox2.List(LoI - 1, 1) = Cells(LoI, 2).Value
'3. Spalte
Me.Listbox2.List(LoI - 1, 2) = Cells(LoI, 3).Value
'usw
Next LoI
Gruss Rainer
RowSource?
28.03.2005 20:56:06
Erich
Hallo Rainer,
den Code hatte ich aus einem anderen Teil und wollte ihn anpassen - vergeblich.
Habe jetzt mal in der Hilfe nach RowSource geschaut;
Code stimmt aber noch nicht ganz:

Private Sub ComboBox3_Change()
Dim sp As Integer, m As Integer, letzteSpalte As String
Dim LoI As Integer
Dim az As Integer
Dim strBuchstaben As String, intNummer As Integer
ListBox2.Clear
' Umwandlung Buchstabenspalte in Spaltenzahl
strBuchstaben = ComboBox3.Text
If Len(strBuchstaben) = 1 Then
intNummer = Asc(strBuchstaben) - 64
Else
intNummer = (Asc(Left(strBuchstaben, 1)) - 64) * 26
intNummer = intNummer + Asc(Right(strBuchstaben, 1)) - 64
End If
letzteSpalte = CStr(intNummer)   ' Spalte in ComboBox3 ausgewählt
ListBox2.ColumnCount = 3
ListBox2.AddItem Format(Cells(1, 1))
Me.ListBox2.RowSource = Cells(1, letzteSpalte)(4, letzteSpalte + 2).Value
End Sub

Bei der Zeile Me.... kommt
Laufzeitfehler 1004.
Besten Dank nochmal!
mfg
Erich
http://www.toolex.de
Anzeige
AW: RowSource?
28.03.2005 21:49:43
Ramses
Hallo
RowSource definiert einen Bereich innerhalb einer Tabelle der in der Listbox dargestellt werden soll, ... und keinen Wert.
Me.ListBox1.RowSource = "Tabelle1!A1:A5"
oder auch
Me.ListBox1.RowSource = "Tabelle1!A" & i " & :G" & n
wenn du mit Variablen arbeitest
Gruss Rainer
AW: RowSource?
29.03.2005 07:19:22
Erich
Hallo Rainer,
danke. Die letzte Zeile mit den Variablen schaffe ich nicht.
In ComboBox2 wird die Tabelle ausgewählt; die Variablen sind die Spalten;
die Zeilen sind mit 1 und 4 fix; trotzdem geht nicht:
Me.ListBox2.RowSource = ComboBox2.Text(1, letzteSpalte)(4, letzteSpalte + 2)
Me.ListBox2.RowSource = ComboBox2.Text.Cells(1, letzteSpalte)(4, letzteSpalte + 2)
myTabelle = ComboBox2.Text
Me.ListBox2.RowSource = myTabelle(1, letzteSpalte)(4, letzteSpalte + 2)
Weitere Varianten haben ebenfalls nicht funktioniert.
Wo liegt der Fehler?
Besten Dank nochmals!
mfg
Erich
http://www.toolex.de
Anzeige
Lesen....
29.03.2005 11:47:19
ramses
Hallo
wenn du gelesen hättest, wie ich die RowSource zuweise, dann würde es auch funktionieren :-)
tut mir leid, ich weiss nicht was bei dir aus der Combobox2 rauskommt, aber so wie du es machst funktioniert es definitiv nicht.
Dim t1 As String, t2 As String
t1 = Cells(1,letzteSpalte).Address
t2 = Cells(4,letzteSpalte+2).Address
nun hast du in t1 z.B. die Adresse "$C$1" und in t2 die Adresse "$E$4"
die Zuweisung erfolgt nun
Me.ListBox1.RowSource = "" & myTabelle & "!" & t1 & ":" & T2 & ""
Vorausgesetzt myTabelle enthält den korrekten Tabellennamen
Gruss Rainer
Anzeige
.......hat noch nicht geholfen
29.03.2005 20:10:13
Erich
Hallo Rainer,
sorry, aber ich bring das ding nicht zum Laufen. In der ComboBox2 wird die Tabelle "Test1"
ausgewählt. Wenn ich den code starte und die Fehlermeldung kommt, dann wird bei
myTabelle - wenn ich mit der Maus drüberfahre - auch Test1 angezeigt. Ebenso
wird bei letzteSpalte 23 und bei strBuchstaben W angezeigt. Also nimmt er alles richtig
zur Kenntnis. So sieht jetzt der Code aus, aber bei t1 wird dann "" angezeigt, das
scheint er nicht richtig zu erkennen:

Private Sub ComboBox3_Change()
Dim sp As Integer, m As Integer, letzteSpalte As String, myTabelle As String
Dim strBuchstaben As String, intNummer As Integer
Dim t1 As String, t2 As String
myTabelle = ComboBox2.Text
ListBox2.Clear
' Umwandlung Buchstabenspalte in Spaltenzahl
strBuchstaben = ComboBox3.Text
If Len(strBuchstaben) = 1 Then
intNummer = Asc(strBuchstaben) - 64
Else
intNummer = (Asc(Left(strBuchstaben, 1)) - 64) * 26
intNummer = intNummer + Asc(Right(strBuchstaben, 1)) - 64
End If
letzteSpalte = CStr(intNummer)   ' Spalte in ComboBox3 ausgewählt
t1 = Cells(1, letzteSpalte).Address  ''---> Laufzeitfehler 1004 !!!!!!!!!!!
t2 = Cells(4, letzteSpalte + 2).Address
ListBox2.ColumnCount = 3
Me.ListBox2.RowSource = "" & myTabelle & "!" & t1 & ":" & t2 & ""
End Sub

Komm nicht drauf.
Besten Dank nochmal!
mfg
Erich
http://www.toolex.de
Anzeige
AW: .......hat noch nicht geholfen
29.03.2005 21:17:43
Ramses
Hallo
1. Keine Ahnung was du unter "strBuchstaben" übergibst
2. Keine Ahnung was du dort alles rausziehst um "intNummer" zu erhalten
3. Du hast "letzteSpalte" als String deklariert
4. Für was soll das denn gut sein ?
"..letzteSpalte = CStr(intNummer)..."
Warum nimmst du nicht gleich "intNummer", das wäre richtig weil als "Integer" deklariert
btw:
Was hast du eigentlich mit "toolex.de" zu tun ?
Gruss Rainer
Alles beantwortet
30.03.2005 07:47:02
Erich
Hallo Rainer,
besten Dank für die Geduld! Problem gelöst; hier noch meine Antworten:
1. Keine Ahnung was du unter "strBuchstaben" übergibst
Es wird die letzte belegte Spalte der Tabelle angezeigt.
2. Keine Ahnung was du dort alles rausziehst um "intNummer" zu erhalten
Umwandlung von Buchstabe in Zahl (aus D wird 4)
3. Du hast "letzteSpalte" als String deklariert
das war der Knackpunkt: musste ich auf Integer ändern
4. Für was soll das denn gut sein ?
"..letzteSpalte = CStr(intNummer)..."
Warum nimmst du nicht gleich "intNummer", das wäre richtig weil als "Integer" deklariert
das habe ich mal aus dem Forum (ich meine von Nepumuk erhalten) und verwende es immer so;
btw:
Was hast du eigentlich mit "toolex.de" zu tun ?
TOOLEX ist eine Idee / Projekt von mir, das im vorigen Jahr entstanden ist;
leider musste ich meine Demo wegen technischer Probleme vom Netz nehmen;
muss in nächster Zeit meinen PC nachrüsten;
allerdings bin ich eigentlich Banker und mache das mehr als Hobby deshalb geht
es nur sehr langsam voran; auf meine ursprüngliche Demo hatten sich bereits einige
Interessenten gemeldet, die ich aber noch vertrösten musste.
mfg
Erich
http://www.toolex.de
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige