Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1332to1336
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
Listbox mit 23 Spalten
22.10.2013 11:38:51
Ole
Hallo,
ich bin am verzweifeln. Ich habe eine Userform1 mit einer Textbox in die ich einen Suchbegriff eingebe welcher in Spalte A der Tabelle1 gesucht wird. die gefundenen Zeilen (kann mehrfach vorkommen) werden mir in einer Listbox (BearbeitungAlt) angezeigt. Aber nur bis 10 Zeilen. Was muss ich an meinem Code ändern, damit es 23 Spalten werden in der Listbox?
Hier der Code:
Private Sub cmdRaumNameSucheAlt_Click()
Dim rngCell As Range
Dim strFirstAddress As String
With Worksheets("Tabelle1").Range("A1:A63356")
Me.BearbeitungAlt.Clear
Set rngCell = .Find(Me.SucheRaumNameAlt.Value, LookIn:=xlValues, lookat:=xlWhole)
If Not rngCell Is Nothing Then
strFirstAddress = rngCell.Address
Do
With Me.BearbeitungAlt
.ColumnCount = 23
.AddItem
.List(.ListCount - 1, 0) = rngCell.Value
.List(.ListCount - 1, 1) = rngCell.Offset(0, 1).Value
.List(.ListCount - 1, 2) = rngCell.Offset(0, 2).Value
.List(.ListCount - 1, 3) = rngCell.Offset(0, 3).Value
.List(.ListCount - 1, 4) = rngCell.Offset(0, 4).Value
.List(.ListCount - 1, 5) = rngCell.Offset(0, 5).Value
.List(.ListCount - 1, 6) = rngCell.Offset(0, 6).Value
.List(.ListCount - 1, 7) = rngCell.Offset(0, 7).Value
.List(.ListCount - 1, 8) = rngCell.Offset(0, 8).Value
.List(.ListCount - 1, 9) = rngCell.Offset(0, 9).Value
.List(.ListCount - 1, 10) = rngCell.Offset(0, 10).Value
.ColumnWidths = "2,5cm;2cm;2cm;1cm;1cm;1cm;1cm;2cm;2cm;1cm;1cm"
End With
Set rngCell = .FindNext(rngCell)
Loop While Not rngCell Is Nothing And rngCell.Address  strFirstAddress
Else
MsgBox "Raum-Name nicht gefunden", 48
End If
End With
End Sub
Private Sub cmdAuswahlUebernahme_Click()
Dim wks As Worksheet
Dim lngI As Long
Dim lngZ As Long
Dim intS As Integer
Set wks = Worksheets("Auswahl")
lngZ = 2
wks.Range("A2:H" & wks.Range("A65536").End(xlUp).Row + 2).ClearContents
With Me.BearbeitungAlt
For lngI = 0 To Me.BearbeitungAlt.ListCount - 1
If Me.BearbeitungAlt.Selected(lngI) Then
For intS = 0 To 7
wks.Cells(lngZ, intS + 1) = .List(lngI, intS)
Next
lngZ = lngZ + 1
End If
Next
End With
End Sub

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox mit 23 Spalten
22.10.2013 13:03:37
Rudi
Hallo,
fülle die LIstbox aus einem Array.
Private Sub cmdRaumNameSucheAlt_Click()
Dim rngCell As Range
Dim strFirstAddress As String
Dim arrList(), i As Long, j As Long
With Worksheets("Tabelle1").Range("A1:A63356")
Me.BearbeitungAlt.Clear
Set rngCell = .Find(Me.SucheRaumNameAlt.Value, LookIn:=xlValues, lookat:=xlWhole)
If Not rngCell Is Nothing Then
strFirstAddress = rngCell.Address
ReDim arrList(1 To WorksheetFunction.CountIf(Worksheets("Tabelle1").Columns(1),  _
SucheRaumNameAlt), 1 To 23)
Do
i = i + 1
For j = 0 To 22
arrList(i, j + 1) = rngCell.Offset(, j)
Next
Set rngCell = .FindNext(rngCell)
Loop While Not rngCell Is Nothing And rngCell.Address  strFirstAddress
With Me.BearbeitungAlt
.List = arrList
.ColumnCount = 23
.ColumnWidths = "2,5cm;2cm;2cm;1cm;1cm;1cm;1cm;2cm;2cm;1cm;1cm"
End With
Else
MsgBox "Raum-Name nicht gefunden", 48
End If
End With
End Sub

Gruß
Rudi

Anzeige
AW: Listbox mit 23 Spalten
22.10.2013 13:14:52
Ole
Hallo Rudi,
ehrlich gesagt, Du bist ein Engel.
Ich versuche das schon seit Tagen und kam nicht weiter.
Habe gleich probiert und klappt super.
Allerbesten dank noch mal.
Gruß
Ole

AW: Listbox mit 23 Spalten
22.10.2013 14:51:29
Ole
Hallo Rudi und Hallo an alle anderen,
eine Frage habe ich da noch,
ich habe jetzt die Werte aus der Listbox an Textfelder übergeben zum bearbeiten. Wie kann ich diese jetzt über ein CommandButton "Speichern" wieder in die Tabelle zurück schreiben?
Code sieht folgendermaßen jetzt aus:
Private Sub cmdRaumNameSucheAlt_Click()
Dim rngCell As Range
Dim strFirstAddress As String
Dim arrList(), i As Long, j As Long
With Worksheets("Tabelle1").Range("A2:A63356")
Me.BearbeitungAlt.Clear
Set rngCell = .Find(Me.SucheRaumNameAlt.Value, LookIn:=xlValues, lookat:=xlWhole)
If Not rngCell Is Nothing Then
strFirstAddress = rngCell.Address
ReDim arrList(1 To WorksheetFunction.CountIf(Worksheets("Tabelle1").Columns(1), _
SucheRaumNameAlt), 1 To 24)
Do
i = i + 1
For j = 0 To 23
arrList(i, j + 1) = rngCell.Offset(, j)
Next
Set rngCell = .FindNext(rngCell)
Loop While Not rngCell Is Nothing And rngCell.Address  strFirstAddress
With Me.BearbeitungAlt
.List = arrList
.ColumnCount = 24
.ColumnWidths = "2,5cm;2cm;2cm;1cm;1cm;1cm;1cm;2cm;2cm;1cm;1cm"
End With
Else
MsgBox "Raum-Name nicht gefunden", 48
End If
End With
End Sub
Private Sub BearbeitungAlt_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 1)
TextBox2.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 2)
TextBox3.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 3)
TextBox4.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 4)
TextBox5.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 5)
TextBox6.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 6)
TextBox7.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 7)
TextBox8.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 8)
TextBox9.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 9)
TextBox10.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 10)
TextBox11.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 11)
TextBox12.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 12)
TextBox13.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 13)
TextBox14.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 14)
TextBox15.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 15)
TextBox16.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 16)
TextBox17.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 17)
TextBox18.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 18)
TextBox19.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 19)
TextBox20.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 20)
TextBox21.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 21)
TextBox22.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 22)
End Sub

Private Sub ComboBox1_Change()
SucheRaumNameAlt.Text = ComboBox1.Text
End Sub
Private Sub UserForm_Initialize()
Worksheets("Tabelle1").Activate
ActiveSheet.Unprotect ""
ComboBox1.List = Worksheets("Tabelle1").Range("A2").CurrentRegion.Value
ComboBox1.ListIndex = 0
End Sub

Anzeige
AW: Listbox mit 23 Spalten
22.10.2013 15:03:43
Rudi
Hallo,
erweitere deine LBx auf 25 Spalten und schreib in die letzte Spalte die Zeilennummer (rngCell.Row) des Datensatzes.
Gruß
Rudi

AW: Listbox mit 23 Spalten
22.10.2013 15:10:26
Ole
Entschuldige Rudi,
Das habe ich jetzt nicht verstanden!

AW: Listbox mit 23 Spalten
22.10.2013 15:14:20
Rudi
hallo,
dann kannst du die Textboxen mit z.B.
Tabelle1.Cells(BearbeitungAlt.Column(24),1)=Textbox1
in die Tabelle schreiben.
Gruß
Rudi

AW: Listbox mit 23 Spalten
22.10.2013 15:35:34
Ole
Hallo Rudi,
ich habe jetzt den CommandButton "Speichern" fertig gemacht und die dazugehörigen Anweisungen mit rein.
Bei Deiner Aussage "erweitere deine LBx auf 25 Spalten und schreib in die letzte Spalte die Zeilennummer (rngCell.Row) des Datensatzes. " komme ich nict ganz mit.
Den Wert ColumnCount habe ich erhöht, aber wo soll ich eintragen die Zeilennummer und rngCell.Row?
Ich bin doch noch ein Anfänger und versuche zu verstehen. War nur für mein kleines Hirn gerade zu viel. Hier der von mir erweiterte Code:
Private Sub cmdRaumNameSucheAlt_Click()
Dim rngCell As Range
Dim strFirstAddress As String
Dim arrList(), i As Long, j As Long
With Worksheets("Tabelle1").Range("A2:A63356")
Me.BearbeitungAlt.Clear
Set rngCell = .Find(Me.SucheRaumNameAlt.Value, LookIn:=xlValues, lookat:=xlWhole)
If Not rngCell Is Nothing Then
strFirstAddress = rngCell.Address
ReDim arrList(1 To WorksheetFunction.CountIf(Worksheets("Tabelle1").Columns(1), _
SucheRaumNameAlt), 1 To 25)
Do
i = i + 1
For j = 0 To 23
arrList(i, j + 1) = rngCell.Offset(1, j)
Next
Set rngCell = .FindNext(rngCell)
Loop While Not rngCell Is Nothing And rngCell.Address  strFirstAddress
With Me.BearbeitungAlt
.List = arrList
.ColumnCount = 25
.ColumnWidths = "2,5cm;2cm;2cm;1cm;1cm;1cm;1cm;2cm;2cm;1cm;1cm"
End With
Else
MsgBox "Raum-Name nicht gefunden", 48
End If
End With
End Sub
Private Sub BearbeitungAlt_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 1)
TextBox2.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 2)
TextBox3.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 3)
TextBox4.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 4)
TextBox5.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 5)
TextBox6.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 6)
TextBox7.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 7)
TextBox8.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 8)
TextBox9.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 9)
TextBox10.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 10)
TextBox11.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 11)
TextBox12.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 12)
TextBox13.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 13)
TextBox14.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 14)
TextBox15.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 15)
TextBox16.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 16)
TextBox17.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 17)
TextBox18.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 18)
TextBox19.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 19)
TextBox20.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 20)
TextBox21.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 21)
TextBox22.Text = BearbeitungAlt.List(BearbeitungAlt.ListIndex, 22)
End Sub

Private Sub ComboBox1_Change()
SucheRaumNameAlt.Text = ComboBox1.Text
End Sub
Private Sub UserForm_Initialize()
Worksheets("Tabelle1").Activate
ActiveSheet.Unprotect ""
ComboBox1.List = Worksheets("Tabelle1").Range("A2").CurrentRegion.Value
ComboBox1.ListIndex = 0
End Sub

Private Sub LampeSpeichern_Click()
With Range("Tabelle1!A2:X510")
Tabelle1.Cells(BearbeitungAlt.ColumnCount(24), 1) = TextBox1
Tabelle1.Cells(BearbeitungAlt.ColumnCount(24), 2) = TextBox2
Tabelle1.Cells(BearbeitungAlt.ColumnCount(24), 3) = TextBox3
Tabelle1.Cells(BearbeitungAlt.ColumnCount(24), 4) = TextBox4
Tabelle1.Cells(BearbeitungAlt.ColumnCount(24), 5) = TextBox5
Tabelle1.Cells(BearbeitungAlt.ColumnCount(24), 6) = TextBox6
Tabelle1.Cells(BearbeitungAlt.ColumnCount(24), 7) = TextBox7
Tabelle1.Cells(BearbeitungAlt.ColumnCount(24), 8) = TextBox8
Tabelle1.Cells(BearbeitungAlt.ColumnCount(24), 9) = TextBox9
Tabelle1.Cells(BearbeitungAlt.ColumnCount(24), 10) = TextBox10
Tabelle1.Cells(BearbeitungAlt.ColumnCount(24), 11) = TextBox11
Tabelle1.Cells(BearbeitungAlt.ColumnCount(24), 12) = TextBox12
Tabelle1.Cells(BearbeitungAlt.ColumnCount(24), 13) = TextBox13
Tabelle1.Cells(BearbeitungAlt.ColumnCount(24), 14) = TextBox14
Tabelle1.Cells(BearbeitungAlt.ColumnCount(24), 15) = TextBox15
Tabelle1.Cells(BearbeitungAlt.ColumnCount(24), 16) = TextBox16
Tabelle1.Cells(BearbeitungAlt.ColumnCount(24), 17) = TextBox17
Tabelle1.Cells(BearbeitungAlt.ColumnCount(24), 18) = TextBox18
Tabelle1.Cells(BearbeitungAlt.ColumnCount(24), 19) = TextBox19
Tabelle1.Cells(BearbeitungAlt.ColumnCount(24), 20) = TextBox20
Tabelle1.Cells(BearbeitungAlt.ColumnCount(24), 21) = TextBox21
Tabelle1.Cells(BearbeitungAlt.ColumnCount(24), 22) = TextBox22
End Sub

Anzeige
AW: Listbox mit 25 Spalten
22.10.2013 15:46:21
Rudi
Hallo,
ich denke mal so:
Private Sub cmdRaumNameSucheAlt_Click()
Dim rngCell As Range
Dim strFirstAddress As String
Dim arrList(), i As Long, j As Long
Me.BearbeitungAlt.Clear
With Worksheets("Tabelle1")
ReDim arrList _
(1 To WorksheetFunction.CountIf(.Columns(1), SucheRaumNameAlt), 1 To 25)
Set rngCell = .Columns(1).Find(Me.SucheRaumNameAlt.Value, LookIn:=xlValues, lookat:=xlWhole) _
If Not rngCell Is Nothing Then
strFirstAddress = rngCell.Address
Do
i = i + 1
For j = 0 To 23
arrList(i, j + 1) = rngCell.Offset(, j)
Next
arrList(i, UBound(arrList, 2)) = rngCell.Row
Set rngCell = .FindNext(rngCell)
Loop While Not rngCell Is Nothing And rngCell.Address  strFirstAddress
Else
MsgBox "Raum-Name nicht gefunden", 48
Exit Sub
End If
End With
With Me.BearbeitungAlt
.ColumnCount = 24
.List = arrList
.ColumnWidths = "2,5cm;2cm;2cm;1cm;1cm;1cm;1cm;2cm;2cm;1cm;1cm"
End With
End Sub
Private Sub BearbeitungAlt_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim i As Integer
For i = 1 To 24
Controls("Textbox" & i) = BearbeitungAlt.Column(i - 1)
Next
End Sub
Private Sub LampeSpeichern_Click()
Dim lRow As Long, i As Integer
With BearbeitungAlt
lRow = .Column(.ColumnCount - 1)
End With
For i = 1 To 24
Worksheets("Tabelle1").Cells(lRow, i) = Controls("Textbox" & i)
BearbeitungAlt.Column(i - 1) = Controls("Textbox" & i)
Next
End Sub

Gruß
Rudi

Anzeige
AW: Listbox mit 25 Spalten
22.10.2013 16:04:27
Ole
Hallo Rudi, da funktioniert einiges nicht mehr.
Ich habe die Datei mal mit hochgeladen
https://www.herber.de/bbs/user/87752.zip
es ist die UserForm1
Danke!!!Ole

AW: Listbox mit 25 Spalten
22.10.2013 17:18:58
Ole
Hallo Rudi,
Wenn ich Deinen Code benutze wie Du Ihn erstellt hast, bekomme ich schon beim Doppelklick aud die Listbox einen Fehler. Ich habe die Doppelklickanweisung von vorher genommen, da geht es, erst beim Speichern und Zurückschreiben gibt er mir einen Fehler aus mit Laufzeitfehler 13 - Typen unverträglich - in diesem Codesegment:
Private Sub cmdLampeSpeichern_Click()
Dim lRow As Long, i As Integer
With BearbeitungAlt
lRow = .Column(.ColumnCount - 1)
End With
For i = 1 To 24
Worksheets("Tabelle1!A2").Cells(lRow, i) = Controls("Textbox" & i)
BearbeitungAlt.Column(i - 1) = Controls("Textbox" & i)
Next
End Sub
Wo liegt da der Fehler?
Gruß Ole

Anzeige
AW: Listbox mit 25 Spalten
23.10.2013 09:13:02
Rudi
Hallo,
1. lRow = .Column(.ColumnCount)
2. Du hast keine 24 Textboxen in deinem Beispiel
Gruß
Rudi

AW: Listbox mit 25 Spalten
23.10.2013 11:40:19
Ole
Hallo Rudi,
bin erst jetzt dazu gekommen und habe Code geändert.
Funktioniert.
Danke Dir nochmal.
Gruß Ole

AW: Listbox mit 25 Spalten
23.10.2013 09:51:10
Rudi
Hallo,
so läuft das:
Option Explicit
Private Sub cmdRaumNameSucheAlt_Click()
Dim rngCell As Range
Dim strFirstAddress As String
Dim arrList(), i As Long, j As Long
Me.BearbeitungAlt.Clear
With Worksheets("Tabelle1").Columns(1)
ReDim arrList _
(1 To WorksheetFunction.CountIf(.Columns(1), SucheRaumNameAlt), 1 To 25)
Set rngCell = .Columns(1).Find(SucheRaumNameAlt, after:=.Cells(1), LookIn:=xlValues, lookat: _
=xlWhole) _
If Not rngCell Is Nothing Then
strFirstAddress = rngCell.Address
Do
i = i + 1
For j = 0 To 23
arrList(i, j + 1) = rngCell.Offset(, j)
Next
arrList(i, UBound(arrList, 2)) = rngCell.Row
Set rngCell = .FindNext(rngCell)
Loop While Not rngCell Is Nothing And rngCell.Address  strFirstAddress
Else
MsgBox "Raum-Name nicht gefunden", 48
Exit Sub
End If
End With
With Me.BearbeitungAlt
.ColumnCount = 24
.List = arrList
.ColumnWidths = "2,5cm;2cm;2cm;1cm;1cm;1cm;1cm;2cm;2cm;1cm;1cm"
End With
End Sub
Private Sub cmdLampeSpeichern_Click()
Dim lRow As Long, i As Integer
With BearbeitungAlt
lRow = .Column(.ColumnCount)
End With
For i = 1 To 22
If IsNumeric(Controls("Textbox" & i)) Then
Worksheets("Tabelle1").Cells(lRow, i + 1) = Controls("Textbox" & i) * 1
Else
Worksheets("Tabelle1").Cells(lRow, i + 1) = Controls("Textbox" & i)
End If
BearbeitungAlt.Column(i) = Controls("Textbox" & i)
Next
End Sub
Private Sub BearbeitungAlt_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim i As Integer
For i = 1 To 22
Controls("Textbox" & i) = BearbeitungAlt.Column(i)
Next
End Sub
Private Sub ComboBox1_Change()
SucheRaumNameAlt = ComboBox1
End Sub
Private Sub CommandButton1_Click()
Hide
Unload Me
End Sub
Private Sub UserForm_Initialize()
Dim n As Integer, arrRaum(), rngC As Range
With Sheets("Tabelle1")
ReDim arrRaum(WorksheetFunction.CountA(.Columns(1)))
arrRaum(0) = "Raum"
For Each rngC In .Range(.Cells(2, 1), .Cells(Rows.Count, 1).End(xlUp))
If IsError(Application.Match(rngC, arrRaum, 0)) Then
n = n + 1
arrRaum(n) = rngC
End If
Next
End With
ReDim Preserve arrRaum(n)
Worksheets("Tabelle1").Activate
ActiveSheet.Unprotect ""
ComboBox1.List = arrRaum
ComboBox1.ListIndex = 0
End Sub
Jertz musst du nur noch wegen der Textboxen schauen.
Gruß
Rudi

Anzeige
AW: Listbox mit 25 Spalten
23.10.2013 11:46:06
Ole
Danke Rudi,
klappt jetzt alles super. Danke Dir noch mal für die Mühe die Du mit mir hattest.
Bin noch nicht lange in diesem Forum, deshalb die Frage: Wo kann an Wertungen abgeben?.
Danke sagt
MfG
Ole

Wertungen
23.10.2013 11:50:23
Rudi
Hallo,
User bewerten kann man hier nicht.
Gruß
Rudi

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige