AW: Beim Wandeln von Nr in Name wird Leerzeile erzeugt
14.05.2019 10:11:14
Nr
Hallo Tobi,
du hast das Makro "UserForm_Activate" etwas zu kompliziert aufgebaut - es geht einfacher.
In dem Abschnitt des Makros, in dem die KndNr durch den Namen ersetzt wird, dürfen eine Listbox2.AddItem-Anweisungen stehen!
Den Fehler 318 (Anwendungs- oder objektdefinierter Fehler) kann ich hier jetzt nicht nachvollziehen.
LG
Franz
Private Sub UserForm_Activate()
Dim c, rng, var As Range
Dim sFirst, tFirst, Name, Vorname As String
Dim z, i, Max, KdNr, Zahl As Integer
Dim Datum As Date
Dim GNR, geraet, Model, Hersteller, Typ, Auftrag As String
GNR = Range("Geraetenr")
ListBox2.Clear
ListBox1.AddItem "Auftragsnummer"
ListBox1.List(i, 1) = "| Name"
ListBox1.List(i, 2) = "| Seriennummer"
With Workbooks("Auftrag.xls").Worksheets("Daten")
Set rng = .Range("R:CS").Find(what:=GNR, LookIn:=xlValues, lookat:=xlPart, _
After:=.Range("CS65536"))
End With
i = 0
If Not rng Is Nothing Then
sFirst = rng.Address
Do
ListBox2.AddItem rng.Offset(, -rng.Column + 1)
ListBox2.List(i, 1) = "|"
ListBox2.List(i, 2) = rng.Offset(, -rng.Column + 3)
ListBox2.List(i, 3) = "| "
ListBox2.List(i, 4) = rng
i = i + 1
Set rng = Workbooks("Auftrag.xls").Worksheets("Daten").Range("R:CS").FindNext(After: _
=rng)
If rng.Address = sFirst Then Exit Do
Loop
End If
If i > 0 Then
' Kundennummer wird durch Name ersetzt
For z = 0 To ListBox2.ListCount - 1
KdNr = ListBox2.List(z, 2)
Auftrag = ListBox2.List(z, 0)
Set var = Workbooks("Kunden.xls").Worksheets("Kundenstamm").Range("A:A") _
.Find(what:=KdNr, LookIn:=xlValues, lookat:=xlPart)
If Not var Is Nothing Then
Vorname = var.Offset(0, 3)
Name = var.Offset(0, 2)
If Vorname > " " Then
Name = Vorname & " " & Name
End If
ListBox2.List(z, 2) = Name
End If
Next z
Else
MsgBox "Geräte-Nr. """ & GNR & """ nicht gefunden!"
Unload Me
Exit Sub
End If
End Sub