AW: Kann Wert nicht zuordnen
12.04.2010 11:18:30
Andi
hi Frederieke,
die Variable "Var" ist vom Typ Wert Objekt und nicht boolean!
Dim boKundennummer as boolean
Set Var = Workbooks("Zahlungseingang Debitoren Ist-Soll 2010.xlsm").Worksheets("geplanter Zahlungseingang")
boKundennummer = Var.Columns(1).Find(DebNr).Row
oder
If Var.Columns(1).Find(DebNr).Row then boKundennummer = true
vorausgesetzt der VBA Syntax stimmt.
Oder so:
Function Test()
Call KundenNrVorhanden(3000)
End Function
Function KundenNrVorhanden(Kundennummer As Long, Optional shname As String = "geplanter Zahlungseingang") As Boolean
Dim i, n As Long
Dim wb As Object
Dim sh As Object
Set sh = ThisWorkbook
KundenNrVorhanden = False
For i = 1 To sh.Sheets.Count
If InStr(sh.Sheets(i).Name, shname) > 0 Then
Set wb = sh.Sheets(i)
For n = 1 To EFZVUIS(wb, 1) - 1
If CLng(wb.Cells(n, 1)) = Kundennummer Then
KundenNrVorhanden = True
Exit For
End If
Next
Set wb = Nothing
End If
Next
Set sh = Nothing
End Function
Public Function EFZVUIS(ByVal DasTabBlatt As Worksheet, ByVal DieSpalte As Integer) As Long
'Weiterverwendung auf eingene Gefahr
'Keine Zeilen ausgeblendet
' *** Erste Freie Zeile von unten in einer Spalte ***
'Gibt die erste Freie Zeile von unten zurück.
'ist die Letzte Zelle belegt so wird - 1 zurückgegeben bei einem Fehler -2
Dim i As Long
On Error GoTo Fehler
With DasTabBlatt
If IsEmpty(.Cells(.Rows.Count, DieSpalte)) Then
i = .Cells(.Rows.Count, DieSpalte).End(xlUp).Row
If i = 1 Then
EFZVUIS = IIf(IsEmpty(.Cells(i, DieSpalte)), 1, 2)
Else
EFZVUIS = i + 1
End If
Else
EFZVUIS = -1
End If
End With
Exit Function
Fehler:
EFZVUIS = -2
End Function
Andi