ich habe wieder ein Problem und bitte um eure Hilfe bei der Lösung.
Ich benutze eine Multipage und fülle diese mittels folgendem Code:
Option Explicit
Public aTmp5() As String ' temporärer Array zur Aufnahme der Daten
Public FundZeile5 As Long ' die Zeile die gesucht/angeklickt wurde
Public Sub UserForm4_anzeigen()
UserForm4.Show
End Sub
Public Sub Array_fuellen5()
Dim lLetzte As Long ' letzte belegte Zeile in Spalte A
Dim lZeile As Long ' For/Next Zeilen-Zähler
Dim lIndex As Long ' der Zeilen-Index im Array
Dim iSpalte As Integer ' der Spalten-Index im Array
With Worksheets("Lehrerliste_Löschtabelle")
lLetzte = .Cells(Rows.Count, 1).End(xlUp).Row
For lZeile = 2 To lLetzte
'If Not IsEmpty(Cells(lZeile, 8)) Then ' Spalte H nicht leer?
lIndex = lIndex + 1
' ReDim Preserve aTmp(1 To 8, 1 To lIndex)
ReDim Preserve aTmp5(1 To 13, 1 To lIndex)
' um die Formatierungen der Tabellenblatt-Spalten zu übernehmen, '
' darf nicht .Value, sondern es muss .Text verwendet werden. '
' For iSpalte = 1 To 7
' aTmp(iSpalte, lIndex) = Cells(lZeile, iSpalte).Text
' aTmp(8, lIndex) = lZeile
For iSpalte = 1 To 12
aTmp5(iSpalte, lIndex) = Cells(lZeile, iSpalte).Text
aTmp5(13, lIndex) = lZeile
Next iSpalte
'End If
Next lZeile
End With
End Sub
Wenn nun die Tabelle leer ist bis auf die Kopfzeile, dann kommt eine Fehlermeldung in der Zeile: If WorksheetFunction.CountA(aTmp5()) > 0 ThenSub page5()
If UserForm4.MultiPage1.Value = 4 Then
Worksheets("Lehrerliste_Löschtabelle").Activate
'Anfang für Page5
Call Array_fuellen5
UserForm4.Caption = " Daten erfassen, ändern, löschen."
UserForm4.Width = 1200
UserForm4.Height = 620
With UserForm4.ListBox5 ' betrifft die ListBox1
.Height = 216 ' die Höhe festlegen
.Left = 12 ' den linken Randabstand festlegen
.Top = 48 ' den oberen Randabstand festlegen
.Width = 930 ' die Breite festlegen
.Font.Size = 10 ' die Schriftgröße festlegen
.ForeColor = RGB(0, 0, 255) ' Schriftfarbe immer mit RGB
.ColumnCount = 12 ' die Anzahl der Spalten festlegen
' die Breite der Spalten festlegen
.ColumnWidths = _
("4,5 cm;3,5 cm;4,5 cm;2 cm;1,5 cm;2,5 cm;3,5 cm;1,1 cm;2,3 cm;2,2 cm;2,2 cm;2,5 cm")
.Clear ' die ListBox leeren
' If WorksheetFunction.CountA(aTmp5()) = 0 Then
' Exit Sub
' End If
If WorksheetFunction.CountA(aTmp5()) > 0 Then
.Column = aTmp5
End If
End With
UserForm4.CommandButton41.Enabled = False 'den Datensatz wiederherstellen-Button sperren
' UserForm4.CommandButton2.Enabled = True ' den Suchen-Button freigeben
' UserForm4.CommandButton3.Enabled = False ' den Änder-Button sperren
' UserForm4.CommandButton4.Enabled = False ' den Lösch-Button sperren
UserForm4.CommandButton35.Enabled = False ' den Eingabe-Button sperren
' UserForm4.TextBox1.Enabled = True 'TextBox1 zum Suchen freigeben
' UserForm4.TextBox2.Enabled = True 'TextBox2 zum Suchen freigeben
' ' markiert den Text der TextBox13
' With UserForm4.TextBox1
' .SetFocus
' .SelStart = 0
' .SelLength = .TextLength
' End With
'Ende Page5
End If
End Sub Mein Versuch mit Zeile: ' If WorksheetFunction.CountA(aTmp5()) = 0 Then
klappt leider nicht.
Was muss ich bitte einfügen, damit die leere Listbox angezeigt wird.
Besten Dank
Gruss
Peter