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

Zellen Färben unabhängig Groß- & Kleinschreibung

Zellen Färben unabhängig Groß- & Kleinschreibung
26.09.2018 15:50:52
Clancy
Hello again zusammen!
Der Werner hatte mir etwas Cooles gezeigt:
Offenbar, wenn ich den Kniff "UCase" verwende, führt mein Code eine Filterkopierung unabhängig von der Groß-und Kleinschreibung aus.
Das finde ich klasse und würde ich gerne in eine andere Funktion einbauen:
Aufgabe: Zellen in Spalte "AG" durchsuchen und bei Treffern einfärben.
Ziel: Dass gefärbt wird, unabhängig von Schreibweise.
(Beispiel: Sowohl "Auto", als auch "AuTo" u.dgl.m. werden gefärbt.)
Problem: Kriege "UCase" nicht richtig verbaut.
Anbei mein Code ohne "UCase":

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Zelle                   As Range
For Each Zelle In Range("AG:AG")
'Blattname = UCase(strSearch)  Auszug aus Werners Code. Versucht, hier mit dranzubauen. Ohne  _
Erfolg.
If InStr(Zelle.Value, "Auto") > 0 Then
Zelle.Interior.ColorIndex = 4
ElseIf InStr(Zelle.Value, "Banane") > 0 Then
Zelle.Interior.ColorIndex = 45
ElseIf InStr(Zelle.Value, "Tomate") > 0 Then
Zelle.Interior.ColorIndex = 6
ElseIf InStr(Zelle.Value, "Panzer") > 0 Then
Zelle.Interior.ColorIndex = 3
ElseIf InStr(Zelle.Value, "Stadion") > 0 Then
Zelle.Interior.ColorIndex = 41
ElseIf InStr(Zelle.Value, "Stadt") > 0 Then
Zelle.Interior.ColorIndex = 38
ElseIf InStr(Zelle.Value, "Winterfell") > 0 Then
Zelle.Interior.ColorIndex = 53
End If
Next Zelle
End Sub
Danke vorab für eure Hilfe!
Gruß, Clancy

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

Betreff
Datum
Anwender
Anzeige
AW: Zellen Färben unabhängig Groß- & Kleinschreibung
26.09.2018 15:54:35
Clancy
Oh, Mist. Grad gesehen, dass ich blöd formuliert habe.
Reflex von der Arbeit. Sorry!
Grußsatz am Ende soll lauten:
Könnt ihr mir bei meinem Problem bitte helfen?
Gruß, Clancy
AW: Zellen Färben unabhängig Groß- & Kleinschreibung
26.09.2018 16:16:23
Nepumuk
Hallo Clancy,
so:
If InStr(Zelle.Value, "Auto", vbTextCompare) > 0 Then

Gruß
Nepumuk
AW: Zellen Färben unabhängig Groß- & Kleinschreibu
26.09.2018 16:11:15
Daniel
HI
mit UCase so:
InStr(UCase(Zelle.Value), "auto")

man kann dem Instr aber auch mitteilen, ob es Groß/Kleinschreibung berücksichtigen soll oder nicht.
dann muss man aber die Paramenter auch vollständig angeben so wie vorgesehen und als ersten Parameter die Startposition angeben:
InStr(1, Zelle.Value, "Auto", vbTextCompare) 

das Gegenstück wäre dann vbBinaryCompare
bzw, Schleifen über ganze Spalten können länger dauern, weil Excel mittlerweile verdammt viele Zeilen hat (1,04 Mio)
hier sollte man entsprechen auf den genutzen Bereich oder die Zellen mit Text einschränken.
For Each Zelle In Intersect(Range("AG:AG"), Me.UsedRange)
For Each Zelle In Range("AG:AG").SpecialCells(xlcelltypeconstants, 2)
auch ist das SelectionChange-Event hier nicht unbedingt das geeignete.
Wenn die Werte in AG von Hand eingegeben werden, wäre das Change-Event besser, denn dann brauchst du das ganze nur ausführen, wenn eine Zelle in Spalte AG geändert wurde und auch nur für diese Zelle.
oder du machst die Färbung ohne Code mit hilfe der Bedingten Formatierung. Das wäre hier wahrscheinlich die bessere Lösung.
Gruß Daniel
Daniel
Anzeige
AW: Zellen Färben unabhängig Groß- & Kleinschreibung
26.09.2018 16:14:23
Piet
Hallo Clancy
mit dem unteren Code sollte es klappen.Probiere es bitte aus.
mfg Piet
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Zelle                   As Range
For Each Zelle In Range("AG:AG")
'Blattname = UCase(strSearch)  Auszug aus Werners Code. Versucht, hier mit dranzubauen.  _
Ohne _
Erfolg.
If InStr(UCase(Zelle), "Auto") Then
Zelle.Interior.ColorIndex = 4
ElseIf InStr(UCase(Zelle), "Banane") Then
Zelle.Interior.ColorIndex = 45
ElseIf InStr(UCase(Zelle), "Tomate") Then
Zelle.Interior.ColorIndex = 6
ElseIf InStr(UCase(Zelle), "Panzer") Then
Zelle.Interior.ColorIndex = 3
ElseIf InStr(UCase(Zelle), "Stadion") Then
Zelle.Interior.ColorIndex = 41
ElseIf InStr(UCase(Zelle), "Stadt") Then
Zelle.Interior.ColorIndex = 38
ElseIf InStr(UCase(Zelle), "Winterfell") Then
Zelle.Interior.ColorIndex = 53
End If
Next Zelle
End Sub

Anzeige
AW: Zellen Färben unabhängig Groß- & Kleinschreibung
26.09.2018 16:19:59
Nepumuk
Hallo,
UCase = Uppercase also Großbuchstaben. Das mit "auto" oder "Auto" zu vergleichen kann nicht funktionieren.
Gruß
Nepumuk
AW: Zellen Färben unabhängig Groß- & Kleinschreibung
26.09.2018 16:36:11
Piet
Hallo Nepumuk
stimmt, Denkfehler von mir. Danke!
mfg Piet
AW: Zellen Färben unabhängig Groß- & Kleinschreibung
26.09.2018 17:04:42
Clancy
Wow, beeindruckend, wie das Forum agiert.
@Nepumuk:
Danke schön für deine Lösung und deinen Hinweis bzgl. dem UCase! Richtig verstanden habe ich nicht, worum es geht, aber Piet hat dich ja offenbar verstanden :-D
Deine Lösung hat bei mir leider nicht geklappt.
Fehlermeldung:
"Laufzeitfehler 5: Ungültiger Prozeduraufruf oder ungültiges Argument."
@Piet:
Danke schön auch an dich für deine schnelle Lösung! Leider funktioniert sie nicht.
Es gibt keinen Laufzeitfehler, das ist bestimmt gut. Aber es passiert nichts Sichtbares.
@Daniel:
Danke für deine Lösung und die Erklärungen! Gerade die finde ich oft schwer zu finden, weil viele Probleme so, so spezifisch sind, dass es schwierig ist, genau dazu eine Antwort aus einem anderen Thread für einen selbst heranziehen zu können! Ich freue mich darüber!
Deine Lösung habe ich leider nicht verstanden (das liegt aber an mir, weil ich keinen Plan habe!).
@all:
Soll ich vielleicht einfach mal eine "Show"-Datei hochladen?
Viele Grüße und DANKE an alle!
Clancy
Anzeige
AW: Zellen Färben unabhängig Groß- & Kleinschreibung
26.09.2018 17:06:28
Clancy
PS: Keine Ahnung, woher dieses rote Ausrufezeichen kommt! Ich möchte keine Aufmerksamkeit erheischen! Die anderen haben ja auch Probleme.
AW: Zellen Färben unabhängig Groß- & Kleinschreib
26.09.2018 17:12:19
Daniel
naja, meine Lösungen mit Instr sind doch die gleichen wie die von Nepumuk und Piet.
wenn du die verstanden hast, solltest du meine auch verstehen.
wobei auch LCase mit UCase verwechselt habe.
du musst halt nur beachten, wenn du den Langen Text in Groß(UCase)- oder Kleinbuchstaben(LCase) wandelst, musst du auch den Suchbegriff entsprechen angeben.
Instr(LCase(Zelle.Value), "auto")
Instr(UCase(Zelle.Value), "AUTO")
oder wenn du ganz Sicher gehen willst:

Instr(LCase(Zelle.Value), LCase("Auto"))
den Rest meines Beitrags kannst du erstmal ignorieren und dir erst dann anschauen, wenn der Code prinzipell funktioniert und du dich über lange Laufzeiten wunderst.
Gruß Daniel
Anzeige
AW: Zellen Färben unabhängig Groß- & Kleinschreib
26.09.2018 17:35:09
Clancy
Danke schön Daniel!
Den Teil habe ich nicht verstanden:
"InStr(UCase(Zelle.Value), "auto")"
(das hier hat leider nicht funktioniert, das hatte ich probiert)
"man kann dem Instr aber auch mitteilen, ob es Groß/Kleinschreibung berücksichtigen soll oder nicht.
dann muss man aber die Paramenter auch vollständig angeben so wie vorgesehen und als ersten Parameter die Startposition angeben:
InStr(1, Zelle.Value, "Auto", vbTextCompare)
das Gegenstück wäre dann vbBinaryCompare"
Das mit der Laufzeit hatte ich geblickt! :-) Hatte dafür extra an- und aus-Buttons gemacht, weil es immer so lange gedauert hat :-D Habe den Bereich auf 5.000 Zeilen begrenzt, das klappt besser.
Die Lösung oben funktioniert! :-)
Habe die Lösungen der anderen aber vielleicht auch nur falsch umgesetzt.
Bis zu deiner Erklärung eben hatte ich nicht geblickt, dass man, wenn z.B. mit UCase alles "großgemacht" wird in den Zellen, man im Code auch alles groß anlegen muss.
Ist logisch, aber habe ich nicht bedacht.
Danke an alle für eure Hilfe!! :-)
Lieben Gruß,
Clancy
PS: Zur besseren Leserlichkeit versuche ich die ganze Zeit, Abschnitte kursiv/fett zu machen. Macht er aber nicht :-/ Sorry!
Anzeige
AW: Zellen Färben unabhängig Groß- & Kleinschreib
26.09.2018 20:25:36
Daniel
Naja bei UCase eben "AUTO" und bei LCase "auto".
Das haben Piet und ich beim ersten mal falsch gemacht.
Du darfst, wenn du hier was nicht sofort versteht, auch erstmal in der Excelhilfe nachlesen, diese lässt sich mit F1 in det Regel problemlos zum markierten Befehl aufrufen.
Gruß Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige