MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 25.09.2018, 07:20   #1
AleXT_22
Neuer Benutzer
Neuer Benutzer
Standard Frage - Ändern der Hintergrundfarbe einer Zelle bei Auswahl bestimmter anderer Zellen

Guten Morgen zusammen,

mein Name ist Alex und ich habe mich bei euch angemeldet, da ich ein Problem mit Excel nicht gelöst bekomme und mir die bisherigen Beiträge zu dem Thema nicht weitergeholfen haben.

Ich möchte der Übersicht halber, dass die Zelle C7 eine andere Hintergrundfarbe bekommt, wenn eine der Zellen D7, G7, J7, M7, P7, S7, V7, Y7 ausgewählt ist.
Das gleiche soll dann mit C8 bis C15 jeweils bei D8,...,Y8 bis D15,...,Y15 passieren.

Wenn eine Zelle in der jeweiligen Zeile nicht mehr markiert ist, soll C7 bis C15 die zuvor verwendete Hintergrundfarbe wieder bekommen.

Bei den Vorschlägen, die ich bisher gefunden habe, hat das Annehmen der alten Hintergrundfarbe nicht geklappt oder auch außerhalb des von mir benötigten Bereichs wurde die Markierung angezeigt.

Ich könnte auch damit leben, wenn die von mir gewünschten Zellen keine neue Hintergrundfarbe bekommen, sondern vorübergehend fett umrahmt werden.

Ich hoffe, ich konnte mein Problem verständlich erläutern und freue mich auf eure Rückmeldungen.

Gruß, Alex
AleXT_22 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 25.09.2018, 07:34   #2
lupo1
MOF Koryphäe
MOF Koryphäe
Standard

Rechtsklicke den Blattreiter; Code Anzeigen; dort folgenden Code einfügen:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
r = Target.Row: c = Target.Column: If [IV1] Then Cells([IV1], 3).Interior.Color = xlNone 'Entfärben des Vorgängers
If r > 6 And r < 16 And c > 3 And c < 26 And c Mod 3 = 1 Then Cells(r, 3).Interior.Color = 999: [IV1] = r 'Färben und Merken des Nachfolgers
End Sub

Das mit der "vorigen Hintergrundfarbe" ist ein wenig frickelig; sind die Farben in Spalte C denn alle unterschiedlich? Wenn nicht, könnte man doch auch die der Zeile darunter verwenden:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
r = Target.Row: c = Target.Column: If [IV1] Then Cells([IV1], 3).Interior.Color = Cells([IV1] + 1, 3).Interior.Color 'Rückfärben des Vorgängers
If r > 6 And r < 16 And c > 3 And c < 26 And c Mod 3 = 1 Then Cells(r, 3).Interior.Color = 999: [IV1] = r 'Färben und Merken des Nachfolgers
End Sub

__________________

MfG Lupo - und ein Hallo ebenfalls!

Geändert von lupo1 (25.09.2018 um 09:33 Uhr).
lupo1 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 25.09.2018, 09:38   #3
lupo1
MOF Koryphäe
MOF Koryphäe
Standard

Hinweis für alle: Editieren ist 120 Minuten lang möglich :-) Gerade gemerkt.

__________________

MfG Lupo - und ein Hallo ebenfalls!
lupo1 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 25.09.2018, 10:00   #4
AleXT_22
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo Lupo,

vielen Dank für deine Antwort!

Die Hintergrundfarbe der Zellen C7 bis C15 ist immer dieselbe.

Ich habe deine Vorschläge getestet. Es kommt dann bei der Auswahl einer der Zellen eine Fehlermeldung: Laufzeitfehler '1004': Anwendungs- oder objektorientierter Fehler. Nach Klick auf "debuggen" markiert er folgenden Teil: Cells(r, 3).Interior.Color = 999 und es wird keine Hintergrundfarbe geändert.

Gruß, Alex

PS: das mit dem editieren ist mir auch aufgefallen. Ich wollte nach Hinweis aus dem Nachbarforum office-hilfe.com hier noch meinen Beitrag dort verlinken: http://www.office-hilfe.com/support/...anderer-Zellen
AleXT_22 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 25.09.2018, 10:16   #5
lupo1
MOF Koryphäe
MOF Koryphäe
Standard

Ich habe eine frische Datei genommen mit nur einem Blatt
C7:C16 gelb eingefärbt (nicht nur C7:C15!)
Das zweite Makro (Stand 10:15) im Blatt-Code (nicht: Modul!) eingefügt
Ich habe Office 365

läuft

Hintergrund: Ich nehme die Farbe der nachfolgenden Zelle in C statt der vorhergehenden, was auch ginge ...

__________________

MfG Lupo - und ein Hallo ebenfalls!

Geändert von lupo1 (25.09.2018 um 10:30 Uhr).
lupo1 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 25.09.2018, 10:29   #6
AleXT_22
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Zitat: von lupo1 Beitrag anzeigen

In Zeile 1048576 läuft man nicht so viel rum ...



Okay, mein Fehler.
Der Fehler kam natürlich aufgrund des Blattschutzes.
Verdammt, das hab ich nicht bedacht. Es funktioniert, vielen vielen Dank!!!

Gibt es eine Möglichkeit, den Blattschutz kurzzeitig für jede Änderung für diese Zellen zu entfernen und automatisch wieder zu aktivieren bzw. kann man das direkt in den Code hinterlegen?
Sodass die Einfärbung klappt, die Zelle aber dennoch nicht editiert werden kann?

Des Weiteren ist mir gerade aufgefallen, wenn ich meine Datei drucken will, dass noch irgendwo anders in der Tabelle Inhalt sein muss, da er alles stark verkleinert, um es auf eine Seite zu bringen.
Ohne deinen Code ist das nicht. Hast du da noch ne Ahnung?

Geändert von AleXT_22 (25.09.2018 um 10:49 Uhr).
AleXT_22 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 25.09.2018, 10:54   #7
lupo1
MOF Koryphäe
MOF Koryphäe
Standard

Möglicherweise kann man den Zellschutz auf Formate wegnehmen.

Beachte dabei, dass IV1 nicht geschützt sein darf (Schutz ist ja die Standardeinstellung einer Zelle).

Das Switchen des gesamten Schutzes: Da weiß ich grad nicht, wie sich das auf die Performance auswirkt - ist aber gedanklich schon ziemlich heftig. Ich glaube, dass ich dann die bedF vorziehen würde.

Hättest Du meinen Code auch verstanden, sähest Du, dass in Spalte IV Schluss ist. Statt IV1 kannst Du gern auch Z1, AH1 oder sonstwas nehmen. Dann hast Du das Problem nicht. Allerdings habe ich (fast) noch nie ein Blatt ohne Festlegen des Druckbereichs gedruckt - ist mir viel zu gefährlich.

__________________

MfG Lupo - und ein Hallo ebenfalls!

Geändert von lupo1 (25.09.2018 um 11:18 Uhr).
lupo1 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 25.09.2018, 10:58   #8
AleXT_22
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Das etwas in IV1 geschrieben wird, habe ich gerade verstanden.
Ich habe das auf A1 und die Schrift in weiß geändert, so habe ich wieder meine normale Druckansicht und man sieht nicht, was in der Zelle passiert.

Wenn ich jetzt noch das mit der temporären Wegnahme des Blattschutzes wegbekäme, wäre ich vollends zufrieden.
AleXT_22 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 25.09.2018, 11:00   #9
AleXT_22
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Verstanden habe ich deinen Code ehrlicherweise nur halb, ansonsten hätte ich mich wahrscheinlich auch nicht hier ans Forum wenden müssen.
Aber ich kann in etwa nachvollziehen, was da passiert.
Okay, das mit dem Druckbereich habe ich mir auch gedacht.
AleXT_22 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 25.09.2018, 11:16   #10
lupo1
MOF Koryphäe
MOF Koryphäe
Standard

Das mit dem Blattschutz musst Du hier nicht fragen. Lass einfach den Makrorekorder laufen und füge die beiden Zeilen dann in mein Ereignis ein, welches Du ja halb, also genügend, verstanden hast.

Schön allerdings ist anders. Denn der Blattschutz ist gegen Eingaben, nicht gegen Navigation gedacht. Die Navigation kann man über die Tabelleneigenschaften begrenzen.

Hier eine Beschreibung, was passiert:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
r = Target.Row: c = Target.Column: If [IV1] Then Cells([IV1], 3).Interior.Color = Cells([IV1] + 1, 3).Interior.Color 'Rückfärben des Vorgängers
If r > 6 And r < 16 And c > 3 And c < 26 And c Mod 3 = 1 Then Cells(r, 3).Interior.Color = 999: [IV1] = r 'Färben und Merken des Nachfolgers
End Sub

Pseudocode:
Weise aktueller Zeile und Spalte schreibweiseverkürzend r und c zu
Wenn in IV1 was drinsteht, färbe die in IV1 gespeicherte Zeile in C:C mit der Farbe ihrer Folgezeile
Wenn Du in Deinem Signalbereich D7:Y15 auf die jeweils 3. Zelle (Mod!) kommst, färbe sie rot
Nur dann merke Dir die aktuelle Zeile in IV1

__________________

MfG Lupo - und ein Hallo ebenfalls!

Geändert von lupo1 (25.09.2018 um 11:33 Uhr).
lupo1 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 25.09.2018, 14:26   #11
AleXT_22
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Vielen Dank für deine Erklärung des Codes.

Das Thema mit den geschützten Zellen habe ich auch ohne den Blattschutz aufheben zu müssen hinbekommen.

Ich ganz großes Dankeschön für deine Hilfe!!!
AleXT_22 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 25.09.2018, 14:48   #12
lupo1
MOF Koryphäe
MOF Koryphäe
Standard

Wie denn genau?

__________________

MfG Lupo - und ein Hallo ebenfalls!
lupo1 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 25.09.2018, 15:07   #13
AleXT_22
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Indem ich folgenden Code direkt in "DieseArbeitsmappe" (und nicht in eines der Tabellenblätter) packe:

Private Sub Workbook_open()
ActiveSheet.Protect Password:="xxx", UserInterfaceOnly:=True
End Sub

Dadurch wird direkt beim Öffnen der Datei der Blattschutz aktiviert. Mit der Eigenschaft UserInterfaceOnly:=True wird die Ausnahme hinzugefügt, dass auch gesperrte Zellen formatiert werden dürfen.

So zumindest habe ich es verstanden.
AleXT_22 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:33 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.