Registriert seit: 17.07.2023
Version(en): Office 2016
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 :)
Registriert seit: 28.08.2022
Version(en): 365
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.
Gruß, Helmut
Win10 - Office365 / MacOS - Office365
Folgende(r) 1 Nutzer sagt Danke an HKindler für diesen Beitrag:1 Nutzer sagt Danke an HKindler für diesen Beitrag 28
• SON09
Registriert seit: 17.07.2023
Version(en): Office 2016
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
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
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. Gruß, Uwe
Registriert seit: 28.08.2022
Version(en): 365
13.12.2023, 14:38
(Dieser Beitrag wurde zuletzt bearbeitet: 13.12.2023, 14:40 von HKindler.)
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.
Gruß, Helmut
Win10 - Office365 / MacOS - Office365
Folgende(r) 1 Nutzer sagt Danke an HKindler für diesen Beitrag:1 Nutzer sagt Danke an HKindler für diesen Beitrag 28
• SON09
Registriert seit: 17.07.2023
Version(en): Office 2016
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
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo, (13.12.2023, 14: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? Gruß, Uwe
Registriert seit: 17.07.2023
Version(en): Office 2016
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
Registriert seit: 28.08.2022
Version(en): 365
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.
Gruß, Helmut
Win10 - Office365 / MacOS - Office365
Registriert seit: 29.09.2015
Version(en): 2030,5
14.12.2023, 11:51
(Dieser Beitrag wurde zuletzt bearbeitet: 14.12.2023, 11:52 von snb.)
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.
|