Excel find mit VBA

NFauf = InputBox(„FAUF-Nummer eingeben“, „Fauf“, „Auftragsnummer“)

Dim result As Boolean

result = Not (ThisWorkbook.Worksheets(„Mammut“).Range(„A:A“).Find(What:="" & NFauf & „“, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)) Is Nothing

Kommt immer typen unverträglich. Warum?

Hallo kinggeorges (eine Anrede und ein Gruß wären doch wohl nicht zu viel verlangt, oder?

Was gibst du in der InputBox ein und wie sehen deine Daten in Spalte A aus?

result = Not (ThisWorkbook.Worksheets(„Mammut“).Range(„A:A“).Find(What:="" & NFauf & „“,

die doppelten Anführungszeichen bewirken hier i.m.o. rein garnichts.
Am besten lade mal deine Mappe hoch.

Gruß, Andreas

Hallo Andreas

Du hast vollkommen recht. Ich bin auch nicht so. Bin ein Mensch mit viel Anstand und Respekt. Wollte diesen Artikel eröffnen, und wurde plötzlich von einem Termin überrascht. Ich wollte aber unbedingt diese Frage noch einstellen, und da ging die Höflichkeit ein wenig unter.

In der InputBox gib ich einen Wert in Zahlenformat an. Es könnte aber auch ein Text sein. Die Variable habe ich mit Dim NFauf as String definiert.

Die Mappe lade ich hoch. Muss mich aber in diesem Forum noch schlau machen, wie das Hier gemacht wird.

Gruss Stefan alias Kinggeorges

So, nun habe ich den Link. Hoffe das geht.

ftp://skaltpc.dyndns.biz/

Gruss Stefan

Hallo Stefan,

So, nun habe ich den Link. Hoffe das geht.
ftp://skaltpc.dyndns.biz/

wieso hoffst du nur? Probiere es doch aus.

Egal wie ich probiere die Datei auf meinen PC zu kriegen, es
funktioniert nicht. Meine Vermutung ist es liegt an dem „ä“
im Namen.
Nimm mal den obersten Link in FAQ:2606

Gruß
Reinhard

Hallo Stefan,

der Fehler tritt dann auf, wenn die aktive Zelle nicht in Spalte A ist.
Das kannst du umgehen, wenn du die Codezeile etwas erweiterst:

result = Not (ThisWorkbook.Worksheets("Mammut").Range("A:A").Find(What:="" & NFauf & "", After:=Cells(ActiveCell.Row, 1), LookIn:=xlFormulas, \_
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, \_
MatchCase:=False, SearchFormat:=False)) Is Nothing

Gruß, Andreas

Hallo Reinhard

Warum ich hoffe? Weil es mein Datenserver ist, und er über eine Dyn gekoppelt ist. Und das ist nicht immer so zuverlässig. Wenn ich es Probiere geht es.
Aber ich mache das „ä“ mal raus.

Ich „darf“ die Datei nicht woanders raufladen. Sorry

Gruss Stefan

Hallo Andreas

Habe die Formel nach deinem Vorschlag angepasst. Es macht auch absolut Sinn. Nur ich wäre nicht drauf gekommen.

Nun ist aber so, das vorhandene „NFAUFS“ nicht gefunden werden. Resultat ist immer das gleiche.

Wo habe ich den Fehler?
Konntest du die Mappe laden?

Gruss Stefan

Hallo Stefan,

Hallo Andreas

Nun ist aber so, das vorhandene „NFAUFS“ nicht gefunden
werden. Resultat ist immer das gleiche.

Wo habe ich den Fehler?
Konntest du die Mappe laden?

Ja die Mappe habe ich runtergeladen. Nur durch das Anschauen des Codes bin ich überhaupt auf den Fehler gekommen.
Ich muss aber gestehen, dass ich den ganzen Code bisher noch nicht richtig analysiert habe, um zu verstehen, wo jetzt die Probleme sind.
Vielleicht kannst du mir noch eine kurze Erklärung schicken, was in der Mappe/im Code überhaupt gemacht wird. Dann fällt die Analyse leichter. Ich schau es mir heute Abend noch mal an.

Gruss Stefan

Gruß, Andreas

Hallo Stefan,

Hallo Andreas

Nun ist aber so, das vorhandene „NFAUFS“ nicht gefunden
werden. Resultat ist immer das gleiche.

Wo habe ich den Fehler?

Du hast ein paar Denkfehler drin:
Hier mal dein Orignalcode:

result = Not (ThisWorkbook.Worksheets("Mammut").Range("A:A").Find(What:="" & NFauf & "", After:=ActiveCell, LookIn:=xlFormulas, \_
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, \_
MatchCase:=False, SearchFormat:=False)) Is Nothing
''''''' Das mit dem ActiveCell hatte ich ja in letzten Posting schon gesagt.

If result = falsch Then
'''''' Hier sind 2 Fehler:
'''''' 1. "falsch" ist eine Variable, die von dir nicht belegt wurde. Was du wohl meinstest ist das Schlüsselwort "False"
'''''' 2. So, wie du die Afrage machst, ist result = True, wenn die Nummer schon vorhanden ist. 
 
 GoTo LSchonvorhanden
 Else
 NFauf = Fauf
 Cells(IntZeile, SFauf) = Fauf
 Cells(IntZeile, SFauf).Select
End If
LSchonvorhanden:
MsgBox "Dieser Auftrag ist bereits in der Liste eingetragen", vbOKOnly, "Schon vorhanden!!"
Fauf = ""
Exit Sub '''''' Diese Zeile muss ein paar Zeilen weiter nach oben, sonst läuft der Code immmer auf die MsgBox.

End Sub

Und hier mal meine berichtigte Version (mit der es hoffentlich funktioniert):

result = Not (ThisWorkbook.Worksheets("Mammut").Range("A:A").Find(What:="" & NFauf & "", After:=Cells(ActiveCell.Row, 1), LookIn:=xlFormulas, \_
 LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, \_
 MatchCase:=False, SearchFormat:=False)) Is Nothing
If result = True Then
 
 GoTo LSchonvorhanden
 Else
 NFauf = Fauf
 Cells(IntZeile, SFauf) = Fauf
 Cells(IntZeile, SFauf).Select
 Exit Sub
End If
LSchonvorhanden:
MsgBox "Dieser Auftrag ist bereits in der Liste eingetragen", vbOKOnly, "Schon vorhanden!!"
Fauf = ""
End Sub

Gruss Stefan

Gruß, Andreas

Hallo Andreas

Vielen Dank.

Das mit der Aktiven Zelle habe ich sofort umgesetzt.

Dann bin ich darauf gekommen, dass die Abfrage über die NFauf zu spät kommt. Habe sie nun ganz nach vorne genommen.

Auch das mit Falsch und False hatte ich zu Versuchzwecken drin, und nicht mehr rausgenommen. Sorry.

Die doppelten „“ habe ich drin gelassen. So geht es. Nur mit einfachen bring ich es nicht zum laufen.

Alles in allem kann ich sagen:
„Dank Andreas läuft es nun so, wie ich wollte!!“ Ich hätte ohne dich den Zellenfehler nicht gefunden. Vielen Dank

Stefan

Hallo Andreas

Hallo Stefan,

Die doppelten „“ habe ich drin gelassen. So geht es. Nur mit
einfachen bring ich es nicht zum laufen.

Meiner Meinung nach kannst du die Anführungszeichen auch ganz rausnehmen. Die InputBox liefert per Definition sowieso einen String, auch wenn du eine Zahl eingibst.

Stefan

Gruß, Andreas

Hallo Stefan,

Warum ich hoffe? Weil es mein Datenserver ist,

konnte ich das erschnuppern?

und er über eine Dyn gekoppelt ist. Und das ist nicht immer so
zuverlässig.

Dein problem das zu verbessern.

Aber ich mache das „ä“ mal raus.

Ich warte noch darauf.

Ich „darf“ die Datei nicht woanders raufladen. Sorry

Ich muß nicht alles verstehen was mir sehr seltsam vorkommt.

Warum hörst du nicht auf Andreas? Mit der Einbindung der Eingabe
in eine Inputbox in doppelte Anführungszeichen links und rechts
erreichst du doch Null.

Gruß
Reinhard

Gruss Stefan