Guten Tag,
vielleicht kann mir jemand bei einem kleinen Problem helfen: Ich habe einen Makro der eine Arbeitsmappe nach einem Suchbegriff durchforstet. Gesucht wird jeweils in der ersten Spalte der Tabellenblätter. Die gefundenen Einträge werden in ein Listenfeld geschrieben.
Private Sub CommandButton1_Click()
With UserForm1
.ListBox1.Clear
e = 0
For s = 1 To ActiveWorkbook.Worksheets.Count
Sheets(s).Activate
For i = 5 To ActiveSheet.UsedRange.Rows.Count
If InStr(LCase(Cells(i, 1).Value), LCase(.Textbox1.Value)) > 0 Then
.ListBox1.AddItem Cells(i, 2).Value
.ListBox1.Column(1, e) = Cells(i, 1).Value
.ListBox1.Column(2, e) = ActiveSheet.Name
e = e + 1
Else
End If
Next i
Next s
End With
End Sub
Der dazugehörige Initialize-Makro lautet:
Private Sub UserForm_Initialize()
With UserForm1.ListBox1
.ColumnCount = 3
.ColumnWidths = "150;150;150"
End With
End Sub
Diese Kombination funktioniert hervorragend! Aber ändere ich im Makro die Spalte in der gesucht werden soll auf 2, so wird plötzlich ein "Laufzeitfehler 13 - Typen unverträglich" angezeigt. Kennt hier jemand vielleicht eine Lösung bzw. den Grund für diesen Fehler?
Hier nochmal der nicht-funktionierende Markro(die einzige Änderung ist in der Instr-Funktion - Spalte 1 wurde auf 2 geändert):
Private Sub CommandButton1_Click()
'Suchen-Funktion
With UserForm1
.ListBox1.Clear
e = 0
For s = 1 To ActiveWorkbook.Worksheets.Count
Sheets(s).Activate
For i = 5 To ActiveSheet.UsedRange.Rows.Count
If InStr(LCase(Cells(i, 2).Value), LCase(.Textbox1.Value)) > 0 Then
.ListBox1.AddItem Cells(i, 2).Value
.ListBox1.Column(1, e) = Cells(i, 1).Value
.ListBox1.Column(2, e) = ActiveSheet.Name
e = e + 1
Else
End If
Next i
Next s
End With
End Sub
Über Hilfe würde ich mich sehr freuen!
Mit freundlichen Grüßen
Mathias |