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

Probleme mit like

Probleme mit like
23.09.2014 16:29:15
Franz
Hallo Fachleute,
ich hab folgendes, das funtkioniert:
With cells(x, y)
If .Value Like "*Beispiel_1*" Or .Value Like "*Beispiel_2*" Or .Value Like "*Beispiel_3*" Or . _
Value Like "*Beispiel_4*" Or .Value Like "*Beispiel_5*" Or .Value Like "*Beispiel_6*" Or .Value Like "*Beispiel_7*" Or .Value Like "*Beispiel_8*" Then
.Interior.ColorIndex = 7
end if
end with

Diese Abfrage wird nun aber an mehreren Stellen in verschiedenen Makros benötigt. Darum wollte ich das Ganze vereinheitlichen wir folgt:
in einem benamten Bereich stehen untereinander die Suchkriterien "Beispiel_1" bis "Beispiel_8" - der Bereich hat den Namen "SonderFormat"
und abfragen wollte ich diesen Bereich mit:
Dim rngSForm as range
With cells(x, y)
For each rngSForm in Range("SonderFormat")
If .value like "*rngSForm *" then
.Interior.ColorIndex = 7
end if
next
end with

Das geht aber leider nicht. Was mache ich da falsch? Muss ich anders deklarieren? Oder geht es überhaupt nicht so? Ich hab Verschiedenes ausprobiert, krieg's aber nicht hin. Drum bitte ich um Eure Hilfe.
danke schonmal und Grüße
Franz

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Probleme mit like
23.09.2014 16:58:00
Daniel
Hi
probiers mal so
Dim rngSForm as range
With cells(x, y)
For each rngSForm in Range("SonderFormat")
If .value like "*" & rngSForm.Value &  "*" then
.Interior.ColorIndex = 7
Exit For
end if
next
end with
oder so, dann läuft die Schleife nicht über die Zellen, sondern die Inhalte eines Arrays, was etwas schneller ist (was sich bei der Datenmenge aber nicht bemerkbar machen sollte)
Dim SForm
With cells(x, y)
For each SForm in Range("SonderFormat").Value
If .value like "*" & SForm &  "*" then
.Interior.ColorIndex = 7
Exit For
end if
next
end with

Das Exit For bricht nach dem ersen Färben die Schleife ab.
Es ist dann ja nicht mehr notwendig, dass die weitern Werte auch noch geprüft werden.
Gruß Daniel

Anzeige
AW: Probleme mit like
23.09.2014 17:06:04
Franz
Hallo Daniel,
vielen Dank, das funktioniert! Wär ich nicht drauf gekommen, die Sternchen extra zu schreiben, das hab ich nicht versucht...
Und Du hast recht, der Unterschied ist in diesem Fall tatsächlich nicht spürbar. Aber wer weiß, vielleicht brauch ich's ja mal an anderer Stelle.
Danke nochmal und Grüße
Franz

AW: Probleme mit like
23.09.2014 17:21:59
Luschi
Hallo Franz,
die Lösung von Daniel ist aber nicht voll kompatibel mit Deiner Forderung:
If .Value Like "*Beispiel_1*" Or .Value Like "*Beispiel_2*" ...
Hier entsprechen die folgenden Begriffe:
'abBeispiel_1xy', 'ooBeispiel_1', 'abBeispiel_2zz', 'Beispiel_3rr', ...
alle dem Like-Muster und die entsprechende Zelle wird eingefärbt.
Denn ist nur wichtig, ob die Wörter 'Beispiel_1', 'Beispiel_2' usw. im Zellwert vorkommen,
egal was vorn und hinten noch so steht.
Hier muß man mit RegExp (RegularExpression) arbeiten. Bin z.Z leider unterweg - schau noch mal später hier rein.
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Probleme mit like
23.09.2014 17:36:20
Franz
Hallo Luschi,
eigentlich brauch ich's genauso. Aber ich werde sehen, was Du vorschlägst, vielleicht verstehe ich dann was Du meinst. Aber bitte bedenke, dass ich xl2003 habe, den Begriff RegExp findet meine VBA-Hilfe nicht.
(bin auch erst spät wieder da)
Grüße
Franz

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige