AW: .find leerer Wert abfangen
12.07.2016 11:45:55
Werner
Hallo Jörg,
Option Explicit
Private Sub cmdNew_Click()
Dim strSpedName As String
LngLastRow As Long
intIndex As Long
StrKredNr As String
dim RngIndex as Range
Worksheets(1).Activate
LngLastRow = Worksheets(1).Cells(Rows.Count, 2).End(xlUp).Row + 1 'Ergibt letzte Zeile in Ü _
bersicht
strSpedName = InputBox("Speditionsname eingeben:", "Neue Spedition")
If strSpedName = "" Then
Exit Sub
Else
With Worksheets("Kreditoren").Range("b:b")
Set RngIndex = .Find(what:=strSpedName, LookIn:=xlValues) 'Blattname in Spalte suchen
If Not RngIndex Is Nothing Then 'Hier passiert der Fehler.!!!!!!!!!!!!
'### Hier dann der Code der ausgeführt werden soll, wenn der Begriff _
gefunden wurde ###
MsgBox "Suchbegriff in Zeile " & RngIndex.Row & " gefunden."
Else
MsgBox "leider nix gefunden" 'gefundene Zeile übernehmen
End If
End With
Worksheets(1).Unprotect
Worksheets(1).Range("b" & LngLastRow).Value = strSpedName
StrKredNr = Worksheets("Kreditoren").Range("A" & intIndex)
Worksheets(1).Range("a" & LngLastRow).Value = StrKredNr
Worksheets(1).Unprotect
Call WS_Copy(strSpedName)'Aufruf zum Kopieren des Blanko-Worksheets
End If
End Sub
Als erstes solltest du dir angewöhnen oberhalb (außerhalb) deiner Sub Option Explicit einzutragen. Dann wird dir nämlich sofort angemeckert, wenn du eine Variable nicht definiert/dimensioniert hast.
Dann wäre die sicherlich aufgefallen, dass deine Variable RngIndex nicht dimensioniert ist.
Zudem hast du in dieser Zeile ständig
If Not RngIndex.Row Is Nothing Then
das hat keiner geschrieben sondern das
If Not RngIndex Is Nothing Then
Getestet habe ich deinen Code jetzt aber nicht.
Gruß Werner