Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1412to1416
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

Find-Methode mit Variablen

Find-Methode mit Variablen
05.03.2015 21:54:16
Tim
Hallo in die Runde,
ich stehe vor folgendem Problem. Ich muss Spalte A nach Begriffen durchsuchen (DEOO, DE01, DE02....DExy). Wollte das mit Hilfe einer For Schleife (For DE00 to DExy) und der Find-Methode machen. Wird z.B. DE00 gefunden, werden weitere Unterpunkte abgearbeitet und dann soll weiter nach DE01 gesucht werden (wieder Unterpunkte) usw...
Die Codezeile soll ungefähr so aussehen:
For DE00 to DExy
Set Begriff = ThisWorkbook.Worksheets("Danke").Range("A:A").Find("DE00")
If Not Begriff is Nothing Then...
Nun meine Frage: Kann ich das "DE" fixieren und die zwei Zahlen 00,01 usw. als Variablen (String) einbauen? Quasi irgendwie so .Find("DE"+String) ?
Ich hoffe Ihr versteht was ich meine, bin noch kein Profi ;)
Es sollen auf einmal alle DE's mit deren Unterpunkten abgearbeitet werden. Wird z.b. DE02 nicht gefunden, gehts weiter mit DE03
Wenn Ihr mir helfen könntet, wäre das super!!! Bin langsam am verzweifeln...
Gruß
Tim

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Find-Methode mit Variablen
05.03.2015 22:06:18
daniel
Hi
Hier mal die wesentlichen Codebestandteile (kein vollständiger Code)
dim x as long
For x = 0 to 99
Range(...).find(what:="DE" & Format(x, "00"))
Next
Gruß Daniel

AW: Find-Methode mit Variablen
05.03.2015 22:47:12
Tim
Wahnsinn... scheint zu funktionieren, super! vielen Dank für die schnelle Hilfe.
Bei den Zahlen 00, 01... handelt es sich um hexadezimalwerte (also wenn ich alle Möglichkeiten von DE abdecken will wäre das von 00 bis FF, also von 0 bis 255).
Gibts da ne Möglichkeit den Zähler der Schleife als String zu definieren anstatt Zahlen?
So stelle ich mir das vor: For 00 to FF anstatt For 0 to 255? Oder wie mache ich das am Besten? Muss die Zahlen dann vorher als hex Werte deklarieren oder?

Anzeige
AW: Find-Methode mit Variablen
05.03.2015 23:17:03
daniel
Hi
Von hexzahlen hattest du nichts gesagt.
Hellsehen kann ich nicht, ist also dein Problem.
VBA bietet aber auch Funktionen an um Dezimalzahlen in Hex zu wandeln.
Die Schleife muss dann von 0 bis 255 laufen.
Gruß Daniel

AW: Find-Methode mit Variablen
06.03.2015 07:28:29
Tim
Hab deshalb noch nix gesagt, weil das mit den hexwerten zuerst mal zweitrangig ist ;)
Muss ich einfach mal bisschen rum probieren, danke trotzdem!

AW: Find-Methode mit Variablen
06.03.2015 12:09:06
Tim
Leider klappt garnix bei mir :D
Hilfe wäre super!
Ich hab eine Textdatei in Spalte A. Die Struktur sieht so aus:
DE00 mit 1. For Schleife (x = 0 to 255)
x
y
z
Subfield 1 mit 2. For Schleife (i = 1 to xy)
x
y
z
subfield 2
x
y
z
DE01
x
y
z
Subfield 1
x
y
z
usw...
Ich würde gerne folgendes tun. Mit zwei verschachtelten For Schleifen und der Find.Methode Werte einlesen. Sobald DE00 gefunden wird, sollen bestimmte Werte von DE00 und dann bestimmte von den Subfieldern (von 1-xx)von DE00 ausgelesen werden. Wieviele DE's und Subfielder es gibt, ist vorerst unbekannt, deswegen die Schleifen. Danach weiter zu DE01 usw...bis zum letzten Subfield vom letzten DExy. Ist z.b. DE03 nicht mehr vorhanden, kann die Prozedur beendet werden. Daniel hat mir ja schon dabei geholfen wie ich das Suchwort variabel gestalte:
Set Begriff = ThisWorkbook.Worksheets("Tabelle1").Range("A:A").Find(what:="DE" & Format(x, "00"))
Das ganze kann ich doch dann auch für das subfield so machen oder?
Set Begriff = ThisWorkbook.Worksheets("Tabelle1").Range("A:A").Find(what:="subfield" & Format(i, "1"))
Ich komme einfach nicht weiter.Mir fehlts einfach an Programmiererfahrung, ich kann mir zwar vorstellen wie ich es aufbauen muss aber die Umsetzung klappt nicht!
Wäre für Unterstützung sehr dankbar :) Hab ichs überhaupt verständlich erklärt?
Gruß Tim

Anzeige
AW: Find-Methode mit Variablen
06.03.2015 12:31:04
Daniel
Hi
nein, hast du nicht.
ne beispieldatei ist immer hilfreich.
Fomat(xx, "1") ergibt immer den Wert 1. Wenn du angeben willst, dass eine Zahl mit einer Stelle ausgegeben werden soll, ist der Formatstring "0", jede "0" steht für eine angzeigte Ziffer.
hat die Zahl dann aber mehr als eine Stelle, dann wird sie trotzdem vollständig ausgegeben.
Das ganze funktioniert auf Basis des Dezimalsystems, nicht mit Hexzahlen.
Gruß Daniel

AW: Find-Methode mit Variablen
06.03.2015 13:37:20
Tim
Okay, hier ist mal ne Beispieldatei. Ist nur ein Auszug um den Aufbau zu zeigen. Das schwierige für mich ist, wie sage ich vba dass es zuerst die gelben Parameter (z.B. Name)von DE00 ausliest, dann die blauen von all seinen subfields und dann weiter geht nach DE01 usw... Die gesuchten Parameter bleiben immer gleich (die gelben Parameter für DE und die blauen für die subfields)aber die Anzahl der DE's und subfields variiert je nach Datei. Es muss halt alles in einem Durchgang ausgelesen werden.
Bin momentan völlig planlos...
https://www.herber.de/bbs/user/96206.xlsx
Gruß Tim

Anzeige
AW: Find-Methode mit Variablen
09.03.2015 13:21:15
Tim
Daniel, warum funktioniert denn Format(x,"00") nur bis DE01? DE02 wird nicht mehr erkannt...
Set Begriff = ThisWorkbook.Worksheets("Tabelle1").Range("A:A").Find(what:="DE" & Format(x, "00"))
Gruß
Tim

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige