[GELÖST] Alle Zellen einer bestimmten Farbe automatisch markieren

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Longyearbyen
**
Beiträge: 21
Registriert: Mi, 10.02.2016 17:35

[GELÖST] Alle Zellen einer bestimmten Farbe automatisch markieren

Beitrag von Longyearbyen »

Moin in die Runde!

Ausgangssituation: Ich habe ein Tabellenblatt mit Zellen, die als Hintergrund verschiedene Farben ohne weitere Funktionen erhalten haben.
So erarbeite ich mir Anleitungen zum Weben.
Frage dazu: Gibt es eine Funktion wie.... ich markiere z.B. eine gelbe Zelle und "Suche alle Zellen mit derselben Farbe und markiere sie"
Leider konnte ich ähnliches hier im Forum nicht finden. Wäre klasse, würde sich hierfür eine Lösung finden.
Herzliche Grüße aus Dänemark,
Jörg

Programm-Version: OpenOffice 4.1.3 auf einem Mac-Book
Zuletzt geändert von Longyearbyen am Sa, 28.09.2019 12:41, insgesamt 1-mal geändert.
quotsi
******
Beiträge: 767
Registriert: Do, 14.11.2013 10:04

Re: Alle Zellen einer bestimmten Farbe automatisch markieren

Beitrag von quotsi »

Du kannst die gelben Zellen als Formatvorlage speichern. Dasselbe geht mit allen anderen Farben.
Was willst Du mit der Markierung der gelben Zellen erreichen? Wenn du sie z.B. durch grün ersetzen willst, dann mache doch eine grüne Fromatvorlge und ersetze die gelben mit Menü Suchen&Ersetzen zu der gewünschten Farbe. Man muß Formatvorlage ankreuzen!
Dieses Menü ist scheinbar ein wenig fehlerhaft. Ich habe es hinbekommen, indem ich in diesem Menü Suchen gelber Hintergrund (so heißt meine Formatvorlage für gelben Hintergrund), dann zuerst alle Suchen machte, wonach alle gelben markiert waren. Danach mußte ich allerdings alle ersetzen mehrfach drücken, weil eigentlich wir mit alle zwar alle meinen, aber das Programm nur zeilenweise oder spaltenweise vorgeht.
Zuletzt geändert von quotsi am Fr, 27.09.2019 16:57, insgesamt 1-mal geändert.
win11 - Avira - LO 24.8.4.2 (X86_64)
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Longyearbyen
**
Beiträge: 21
Registriert: Mi, 10.02.2016 17:35

Re: Alle Zellen einer bestimmten Farbe automatisch markieren

Beitrag von Longyearbyen »

Moin HeritzP,

Ich dachte auch nicht, dass eine Formel das erledigen kann.
Das wäre ja mein Weg gewesen, nachdem sie markiert sind, sollen sie eine bedingte Formatierung erhalten und dann kann ich mir die Farben aussuchen, wie gewünscht.
bisher muss ich sie alle einzeln markieren und dann die bed. Formatierung zuweisen.... das ist mehr als anstrengend.
Ich denke mir irgendwie muss das doch per makro gehen... set.cellstyle o.ä. leider kann ich nicht programmieren
LG
quotsi
******
Beiträge: 767
Registriert: Do, 14.11.2013 10:04

Re: Alle Zellen einer bestimmten Farbe automatisch markieren

Beitrag von quotsi »

Ich habe weder was programmiert noch mit bedingter Vorlage das gemacht. Nur mit vielen Formatvorlagen für jede Farbe. Das hat den Vorteil, dass man jeder beliebigen Zelle durch klick auf die Vorlagenliste sofort eine Farbe zuweisen kann.
win11 - Avira - LO 24.8.4.2 (X86_64)
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Longyearbyen
**
Beiträge: 21
Registriert: Mi, 10.02.2016 17:35

Re: Alle Zellen einer bestimmten Farbe automatisch markieren

Beitrag von Longyearbyen »

Moin quotsi,

das mache ich mit künftigen web-Vorlagen ja auch. Alle Zellen, die eingefärbt werden, werden nur noch mit Formatvorlagen "markiert" und dann - wie schon geschrieben - kann ich die Farben nach belieben verändern. Die ALTEN Webvorlagen hatte ich leider nach Standard gefärbt und die möchte ich nun nachbearbeiten :-)
LG
quotsi
******
Beiträge: 767
Registriert: Do, 14.11.2013 10:04

Re: Alle Zellen einer bestimmten Farbe automatisch markieren

Beitrag von quotsi »

Longyearbyen hat geschrieben: Fr, 27.09.2019 17:07 .... Die ALTEN Webvorlagen hatte ich leider nach Standard gefärbt und die möchte ich nun nachbearbeiten :-)
Einzeln anklicken, mühe- aber wirkungsvoll :shock:
win11 - Avira - LO 24.8.4.2 (X86_64)
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
F3K Total
********
Beiträge: 3719
Registriert: Mo, 28.02.2011 17:49

Re: Alle Zellen einer bestimmten Farbe automatisch markieren

Beitrag von F3K Total »

Moin,
quotsi hat geschrieben: Fr, 27.09.2019 19:02 Einzeln anklicken, mühe- aber wirkungsvoll
...oder du schreibst ein Makro nach folgendem Muster:
  • Markiere den relevanten Zellbereich
  • Lese alle vorkommenden Hintergrundfarben je einmal aus
  • Lege für jede vorkommende Farbe eine eigene Formatvorlage an
  • Weise den selektierten Zellen die jeweilige Formatvorlage zu
  • Lösche die ursprüngliche Hintergrundfarbe
Hilfe dazu bekommst du sicherlich im Forumsteil Makros und allgemeine Programmierung
Gruß R
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Alle Zellen einer bestimmten Farbe automatisch markieren

Beitrag von Stephan »

Frage dazu: Gibt es eine Funktion wie.... ich markiere z.B. eine gelbe Zelle und "Suche alle Zellen mit derselben Farbe und markiere sie"
Folgendes Makro erledigt das:

Code: Alles auswählen

Sub Main
	If ThisComponent.getCurrentSElection.supportsService("com.sun.star.sheet.SheetCell") Then
			akt_farbe = Thiscomponent.getCurrentSelection.CellBackColor
		Else
			Msgbox "Bitte nur EINE Zelle markieren."
	End If
	
	blatt = ThisComponent.CurrentController.ActiveSheet
	cur = blatt.CreateCursor
	cur.GotoEndOfUsedArea(True)
	letzte_zeile = cur.RangeAddress.EndRow
	letzte_spalte = Cur.RangeAddress.EndColumn
	
	bereiche = ThisComponent.CreateInstance("com.sun.star.sheet.SheetCellRanges")
	
	For i = 0 to letzte_zeile
	For j = 0 To letzte_spalte
		If blatt.getCellByPosition(j, i).CellBackColor = akt_farbe Then
			bereiche.addRangeAddress(blatt.getCellByPosition(j, i).RangeAddress, False)
		End If
	Next j
	Next i
	
	ThisComponent.CurrentController.select(bereiche)

End Sub
Gruß
Stephan
quotsi
******
Beiträge: 767
Registriert: Do, 14.11.2013 10:04

Re: Alle Zellen einer bestimmten Farbe automatisch markieren

Beitrag von quotsi »

@Stephan
Das Makro arbeitet nicht (LO) bei mir!
Ich habe eine kleine calc-Datei mit zwei Hintergrundvorlagen für rot und gelb, jeweils drei solcher Zellen,
dann noch zwei Zellen mit grün hart formatiert.
calc - Hintergrundfrabe zu Formatvorlage.ods
(10.33 KiB) 149-mal heruntergeladen
Wenn ich auf eine Standardzelle (ohne Farbe) gehe und das Makro starte, werden alle Zellen von A1 bis F999 markiert (In F3 befindet sich eine rote Zelle),
es kommt nie eine Aufforderung.
Wenn ich die letzte grüne Zelle markiere und das Makro starte, dann springt er zwar zur ersten grünen, aber das wars auch schon. Diese Zelle hat noch immer standard und sollte ich sie mit einer Vorlage bedenken, hätte die andere noch nichts davon.
Gruß
Pit
win11 - Avira - LO 24.8.4.2 (X86_64)
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Longyearbyen
**
Beiträge: 21
Registriert: Mi, 10.02.2016 17:35

Re: Alle Zellen einer bestimmten Farbe automatisch markieren

Beitrag von Longyearbyen »

Stephan hat geschrieben: Sa, 28.09.2019 09:44
Frage dazu: Gibt es eine Funktion wie.... ich markiere z.B. eine gelbe Zelle und "Suche alle Zellen mit derselben Farbe und markiere sie"
Folgendes Makro erledigt das.....

Gruß
Stephan
JA! Genau das! Excellent!

Danke Dir Stefan und Euch dafür, dass Ihr euch die Gedanken gemacht habt.
Es funktioniert tadellos.
Ich weiss, ich hätte schon zu Anfang mit Formatvorlagen arbeiten sollen, aaaber jeder fängt mal an und macht sich keine Gedanken darüber, was mal in Jahren sein wird...

Herzliche Grüße aus Dänemark,
Jörg
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: [GELÖST] Alle Zellen einer bestimmten Farbe automatisch markieren

Beitrag von Stephan »

Wenn ich auf eine Standardzelle (ohne Farbe) gehe und das Makro starte, werden alle Zellen von A1 bis F999 markiert


Richtig, so soll es sein.

Das Makro bearbeitet immer den kompletten genutzen Zellbereich, das ist der Bereich der begrenzt ist durch die letzte benutzte Zelle die am weitesten unten ist (A999) und die letzte benutzte Zelle rechts (F3).
es kommt nie eine Aufforderung
es gibt keine "Aufforderung". Markiere eine Zelle im benutzten Bereich, starte das Makro und das Makro markiert alkle Zellen mit gleichem Hintergrund im benutzten Bereich.
Wenn ich die letzte grüne Zelle markiere und das Makro starte, dann springt er zwar zur ersten grünen, aber das wars auch schon.
Bitte schaue genau hin. Es werden beide Zellen markiert, wobei nur eine Zelle einen breiten Rahmen , hat die andere ist nur hinterlegt. Genauso sehen abe alle Markierungen in Calc aus auch wenn Du per Hand mehrere Zellen (Einzelne oderr ZUsammenhängende) Markierst nur eine Zelle hat einen Markierungsrahmen (das ist die aktive Zelle) und alle anderen Zellen werden nur hinterlegt.

Du kannst das auch prüfen: markiere eine Grüne Zelle, lass das Makro laufen, weise, ohne die Markierung anzutasten, die Hintergrundfarbe Schwarz zu und Du siehst das sie auf beide Zellen angewendet wird.

bei mir alles getestet in LO 6.2.5.2


Gruß
Stephan
quotsi
******
Beiträge: 767
Registriert: Do, 14.11.2013 10:04

Re: Alle Zellen einer bestimmten Farbe automatisch markieren

Beitrag von quotsi »

Longyearbyen hat geschrieben: Sa, 28.09.2019 12:36 Es funktioniert tadellos.
Wieso funktioniert das bei dir und nicht bei mir (weder mit LO noch mit AOO)?
Bei mir wirkt es so wie oben beschrieben, also gar nicht.
Sollte ich das Makro verfälscht haben... es ist in meiner obigen Beispieldatei drin.

Ich korrigiere mich: Es wirkt. Man kann danach dem einen noch markierten Feld eine neue Formatvorlage benennen und alle (grünen in meinem Beispiel) habe dann diese.
Mein Irrtum wurde befördert, weil die Markierung sich nicht auf alle (grünen) erstreckte bzw. sichtbar war.

Danke Stephan
win11 - Avira - LO 24.8.4.2 (X86_64)
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: [GELÖST] Alle Zellen einer bestimmten Farbe automatisch markieren

Beitrag von Stephan »

Bei mir wirkt es so wie oben beschrieben, also gar nicht.
Wieso garnicht? Du selbst schriebst doch:

"Wenn ich auf eine Standardzelle (ohne Farbe) gehe und das Makro starte, werden alle Zellen von A1 bis F999 markiert "

was bedeutet da das Makro funktioniert. Dir erschien diese Markierung 'komisch', aber ich habe Dir erklärt warum sie richtig ist.

Warum es bei der grünen Zelle nicht funktionieren sollte, ist mir rätselhaft. Bei mir funktioniert es und ich habe zum Testen Deine Datei und dass dortige Makro genutzt.

Gruß
Stephan
Dateianhänge
ablauf.gif
ablauf.gif (28.36 KiB) 5057 mal betrachtet
Longyearbyen
**
Beiträge: 21
Registriert: Mi, 10.02.2016 17:35

Re: [GELÖST] Alle Zellen einer bestimmten Farbe automatisch markieren

Beitrag von Longyearbyen »

Natürlich könnte das irritieren, wenn ich eine blaue Zelle markiere, dann das Makro starte, ich dann erst keine Reaktion sehe, weil (bei mir) dann keine Farbveränderung erfolgt. Quasi eine blaue markierte Zelle sieht genauso aus wie eine manuell eingefärbte. Es dauert natürlich bis zu 15 Sekunden, bis alle gleichfarbigen Zellen auf dem Tabellenblatt "abgegrast" sind. Es sind einige 1000. Aber dann erfolgt der erlösende Augenblick :-)

Nochmals 1000 Dank Dir Stephan für den Code!

Herzliche Grüße,
Jörg
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: [GELÖST] Alle Zellen einer bestimmten Farbe automatisch markieren

Beitrag von Stephan »

Es dauert natürlich bis zu 15 Sekunden, bis alle gleichfarbigen Zellen auf dem Tabellenblatt "abgegrast" sind. Es sind einige 1000. Aber dann erfolgt der erlösende Augenblick :-)
Ich bin mir bewusst das das Makro lange braucht und ich hatte sogar die Vermutung das wegen des Stichworts "Weben" besonders viele Zellen zu prüfen sind und es so besonders lange dauert.
Leider kenne ich bei gegebenen Rahmenbedingungen keinen schnelleren Weg (ginge es darum alle Zellen gleichen Zahlen- oder Textinhalts zu markieren wäre das anders).

Vielleicht kennt jemand anderes einen schnelleren Weg?


Gruß
Stephan
Antworten