Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1380to1384
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

InStr Befehl

InStr Befehl
09.09.2014 14:39:23
Florian
Liebe Leute,
ich habe ein Problem mit dem InStr- Befehl.
Ich möchte über ein Eingabefeld in meinem Worksheet(1) einen bestimmten Wert suchen und mir dessen Position dann an eine x-beliebige Stelle (jetzt "C10") ausgeben lassen. Habe bisher realisiert, dass er mir die Stelle ermittelt, sofern ich den exakten Wert eingebe.
Problem ist, dass der Suchbegriff meist nur Schlagwörter (z.B. "Shield") des exakten Wertes (z.B. "SHIELD GT.10") beinhaltet und Groß- und Kleinschreibung nicht beachtet werden soll.
Mein bisheriger Code sieht wie folgt aus:

Sub Test()
ValueToBeFound = ActiveWorkbook.Worksheets(1).cells(2, 3)
Row = 5
col = 3
While ((ActiveWorkbook.Worksheets(3).cells(Row, col)  ValueToBeFound) And Row 

Hoffe ihr könnt helfen!
Grüße,
Florian

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: InStr Befehl
09.09.2014 14:44:05
yummi
Hallo Florian,

While (Instr(1,Ucase(ActiveWorkbook.Worksheets(3).cells(Row, col).value),Ucase( ValueToBeFound)) _
 0 And Row 
Gruß
yummi

AW: InStr Befehl
09.09.2014 14:49:26
Florian
Hey,
vielen Dank erst einmal für die schnelle Antwort!
Allerdings gibt gibt er mir jetzt den Wert "5" aus, obwohl der gesuchte Wert "11" sein müsste :/
Grüße,
Florian

AW: InStr Befehl
09.09.2014 15:00:44
yummi
Hallo Florian,
dann poste doch mal die Datei
Gruß
yummi

AW: InStr Befehl
09.09.2014 15:17:08
yummi
Hallo Florian,
wenn ich deine Sub Test laufen lasse, dann sucht er nach dem Inhalt von C2, welcher leer ist und findet in zeile 82 die erste leere Zelle und diese Zahl schreibt er in C10, warum auch immer du die Zeile dort speichern wilst. Aber Instr liefert korrekt.
Gruß
yummi

AW: InStr Befehl
09.09.2014 15:23:44
Florian
Hallo,
sobald ich allerdings dort einen Wert eingebe, gibt er mir wieder den Wert "5" aus, weißt du zufällig woran das ligen könnte?
Grüße,
Florian

AW: InStr Befehl
09.09.2014 15:30:41
yummi
Hallo Florian,
du solltest deien Variablen mal deklarieren. Setz mal ein Option Expecit in die erste Zeile vor allem anderen, dass ist sauberer
Hier dein korigierter Code (noch ohne Deklaration)

Sub Test()
ValueToBeFound = ActiveWorkbook.Worksheets(1).cells(2, 3).Value
Row = 5
col = 3
While (InStr(1, UCase(ActiveWorkbook.Worksheets(3).cells(Row, col).Value), UCase(ValueToBeFound) _
, vbTextCompare) = 0 And Row 
Gruß
yummi

Anzeige
AW: InStr Befehl
09.09.2014 15:34:49
Florian
Hallo,
keine Ahnung warum, aber jetzt funktioniert alles so wie gewünscht :)
Danke vielmals für die Hilfe!
Grüße

AW: InStr Befehl
09.09.2014 15:43:25
yummi
Hallo Florian,
die Änderung ist = 0 anstatt 0 bei der Abfrage von Instr
wenn Du = 0 abfragst, dann sucht er solange weiter bis entweder der Begriff gefunden wird (Rückgabewert 0) oder deine Zeilengrenze erreicht.
Wenn Du = 0 suchst, so wie vorher, dann sucht er solange, bis er die 1. Zeile findet, wo der Begriff nicht vorkommt bzw. bis deine Zeilengrenze erreicht ist.
Die Rückgabe von Instr ist die Position des ersten Auftreten des gesuchten Begriffs im Suchstring, wenn also nicht drin, ist die Position im String = 0
Gruß
yummi

Anzeige
AW: InStr Befehl
09.09.2014 15:32:24
yummi
sry Schreibfehler
Option Explicit

Row ....
09.09.2014 16:04:33
Rudi
... sollte nicht als Variablenname genutzt werden, da Row ein Objekt/ Eigenschaft in VBA ist.
Gruß
Rudi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige