Clever-Excel-Forum

Normale Version: =Nothing Fehler - Find funktion
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo, 

ich lerne gerade VBA programmieren und habe ein Problem. Ich möchte, dass er in einer Zeile einen wert sucht (eine Zahl von 1-12 die sich ändern kann) und mir Zuerst Zelle und Spalte wiedergibt. Den Wert den ich suche habe ich als xSTr2 betitelt. Danach soll er mir den Bereich Zeile 8 bis 300 in dieser Spalte markieren. Er gibt mir aber =Nothing zurück. Hat wer eine Idee ? Das ist mein Code (die Tabelle kann ich leider nicht senden)
Code:
        Dim xStr2 As String
        Dim zelleFind As Range
        Dim spalteFind As Long
        
       
        Set zelleFind = ThisWorkbook.Worksheets("AUS").Range("S6:AD6").Find(xStr2, LookIn:=xlValues)
        spalteFind = zelleFind.Column
     
      Range(Cells(8, spalteFind), Cells(300, spalteFind)).Select

     
Danke :)
Hi,

wenn Find Nothing zurück liefert, dann wurde xStr2 im genannten Bereich nicht gefunden. Da man weder sieht, was in der Variablen steht, noch was in den Zellen steht, kann man nichts näheres sagen. Nur noch so viel:
MS Hilfe schrieb:Die Einstellungen für LookIn, LookAt, SearchOrder und MatchByte werden gespeichert, sobald Sie diese Methode verwenden. Falls Sie beim nächsten Aufruf dieser Methode keine Werte für die Argumente angeben, werden die gespeicherten Werte verwendet. Das Festlegen dieser Argumente ändert die Einstellungen im Dialogfeld Suchen, und durch Ändern der Einstellungen im Dialogfeld Suchen werden die gespeicherten Werte geändert, die verwendet werden, wenn Sie die Argumente auslassen. Um Probleme zu vermeiden, legen Sie diese Argumente jedes Mal explizit fest, wenn Sie diese Methode verwenden.
Diesen Hinweis der Microsoft-Hilfe sollte man sich zu Herzen nehmen.
xStr2 = Cells(Target.Row, 17).Value 

.value da in der Zelle eigentlich ein sverweis drin steht, der eine Zahl zurück gibt (in meinem Fall 3) 


und dann steht das zirka so da:

in S6 steht 12
in T6 steht 11
in U6 steht 10
in V6 steht 10
in W6 steht 9 
.....
in AD6 steht 1
Hallo,

wenn Du eine Zahl suchst, wäre eine Longvariable besser geeignet. Unabhängig davon sollte diese Variable, die bei der Suche verwendet wird, auch mit dem Suchwert gefüllt werden. Wink

Gruß, Uwe
Hi,

da xStr2 eine String-Variable ist, steht darin dann "3" (eine 3 wird implizit in eine "3" umgewandelt). Und "3" ist nun einmal nicht gleich 3, daher findet .Find dies nicht.

PS: ich gehe mal davon aus, dass xStr2 = Cells(Target.Row, 17).Value auch irgendwo nach dem dem Dim und vor dem .Find ausgeführt wird.
Hallo Uwe,

ich mach das noch nicht sooo lange, aber suche ich nicht den Wert mit meiner Formel in dem Teil .Find(xStr2, LookIn xlValues) ?

Danke
Hallo,

(13.12.2023, 13:39)SON09 schrieb: [ -> ]... suche ich nicht den Wert mit meiner Formel in dem Teil .Find(xStr2, LookIn xlValues) ?

ja, aber wo steht das in Deinem ersten Beitrag? Undecided

Gruß, Uwe
Hallo, 
in der 3ten Zeile von unten. ich hab jetzt auch probiert das xStr2 von einem String als eine Long Variable zu machen, hat aber auch nicht funktioniert. er wählt den Bereich einfach nicht aus  Confused
Hi,

so langsam wird es Zeit für eine Beispieldatei,

Wie du merkst, reichen eine Beschreibung der Datei und einige Code-Fetzen nicht aus, um dein Problem zu lösen.
Nicht langsam doch sofort.

Wenn man

Zitat:(die Tabelle kann ich leider nicht senden)
schreibt sollte man hier in einem öffentlichem Forum keine Fragen stellen.
Seiten: 1 2