Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1148to1152
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Kann Wert nicht zuordnen

Kann Wert nicht zuordnen
Frederieke
Hallo Zusammen,
ich habe eine dringende Frage.
Ich suche in einem Blatt eine Kundennummer in der Spalte 1. Vorher soll geprüft, ob die Kundennummer überhaupt aufgelistet ist.
Mit meinem Befehl komme ich aber nicht weiter:
Set Var = Workbooks("Zahlungseingang Debitoren Ist-Soll 2010.xlsm").Worksheets("geplanter Zahlungseingang").Columns(1).Find(DebNr).Row
Es kommt die Fehlermeldung:
Laufzeitfehler 91
Objectvariable nicht gefunden oder With Blockvariable nicht festgelegt
Eigentlich soll als Ergebis herauskommen "Wahr" oder "falsch"
Was mache ich falsch?
Gruß
Frederieke

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Kann Wert nicht zuordnen
12.04.2010 10:42:34
Ramses
Hallo
Als was ist denn "Var" deklariert ?
Wenn dann muss die Anweisung
Set Var = Workbooks("Zahlungseingang Debitoren Ist-Soll 2010.xlsm").Worksheets("geplanter Zahlungseingang").Columns(1).Find(DebNr)
ohne ".Row"
Wenn der Suchbegriff nicht gefunden wird, kommt der von dir beschriebene Fehler.
Umgehen kannst du das auf diesem Weg
Sub test()
Dim Var
Dim DebNr As String
Dim wkb As Workbook
Set wkb = Workbooks("Mappe4")
DebNr = "name5"
On Error Resume Next
With wkb
Set Var = .Worksheets("Tabelle1").Columns(1).Find(DebNr)
End With
If Var Is Nothing Then
Var = False
Else
Var = True
End If
MsgBox "Suchbegriff gefunden: " & Var
End Sub
Gruss Rainer
Anzeige
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
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige