Greetz
Dominic Küchler
"Dominic Küchler" <Dominic...@gmx.de> wrote:
>Moinsen !
>Ist es möglich, dass die jeweils aktive Zelle / der "Cursor" (also das Ding
>halt, womit man sich in der Tabelle "bewegt") farbig hinterlegt ist ??
>
füge folgende Ereignis-Prozedur im VBA Editor in den Codebereich der
entsprechenden Tabelle ein:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
UsedRange.Interior.ColorIndex = xlNone
Target.Interior.ColorIndex = 5
End Sub
Hoffe, dass dir das weiterhilft.
mit Gruß
Melanie
--
__________________________________________________________
News suchen, lesen, schreiben mit http://newsgroups.web.de
>Ist es möglich, dass die jeweils aktive Zelle /
>der "Cursor" (also das Ding halt, womit man sich in der
>Tabelle "bewegt") farbig hinterlegt ist ??
Meines Wissens ist das nur per VBA möglich.
Hier ein Lösungsansatz:
Private Sub Workbook_SheetSelectionChange _
(ByVal Sh As Object, ByVal Target As Excel.Range)
Static Bereich As Range
If Not Bereich Is Nothing Then
Bereich.Interior.ColorIndex = xlColorIndexNone
End If
Target.Interior.ColorIndex = 20
Set Bereich = Target
End Sub
Schreib die Ereignisprozedur in der VBA-Umgebung, in der
gewünschten Mappe direkt hinter "DieseArbeitsmappe".
--
Ich hoffe, dass dir das weiterhilft.
Es liebs Grüessli aus der Schweiz
Monika Weber
------------------------------------------
Microsoft MVP für Excel
http://www.jumper.ch
http://excel.codebooks.de/excel/
Gruß
"Dominic Küchler" schrieb:
>
> Sieht schon ganz gut aus. Wenn ihr nun noch die eine oder andere Zeile
> einfügt, die verhindert, dass bisherige Füllfarben nach verlassen der Zelle
> gelöscht werden, ist's perfekt :)
Oh, _davon_ stand in Deiner ursprünglichen Frage aber nichts ;-)
Aber das krigst Du wohl selbst hin?
--
Mit freundlichen Grüssen
Thomas Ramel
- MVP für Microsoft-Excel -
Hm, lass mich überlegen ... würde ich dann posten ?? Hab von VB nicht so den
Plan. Und es stand davon nichts in der ursprünglichen Frage, weil ich ja
nicht wusste, was für Nebeneffekte auftreten können.
"Dominic Küchler" <Dominic...@gmx.de> schrieb im Newsbeitrag
news:ahm5i4$cq8$1...@news1.ewetel.de...
> Sieht schon ganz gut aus. Wenn ihr nun noch die eine oder andere Zeile
> einfügt, die verhindert, dass bisherige Füllfarben nach verlassen der Zelle
> gelöscht werden, ist's perfekt :)
da muss man keine Zeile einfügen, nur weglassen!
bei Melanie's Tip zB die 2. Zeile ;-)
mfg Peter
--
MVP für MS-Excel
---------------------------
Peter Dorigo schrieb:
>
> da muss man keine Zeile einfügen, nur weglassen!
> bei Melanie's Tip zB die 2. Zeile ;-)
Oochh, dann bleiben die Zellen aber mit der Farbe stehen, in der sie
markiert wurden ;-)
Spass beiseite: Soo trivial ist das Ganze nicht:
Du musst den letzten Range in einer globalen Variablen speichern, dazu
auch noch dessen Farbe.
Nach dem Verlassen der Zelle dann die Rormatierung wieder zurücksetzen.
Sobald Du _mehrere_ Zellen zugleich selektierst, musst Du die Werte
_jeder einzelnen_ festhalten; dies vermutlich in einer Array-Variaben.
Beim Wechsel dann alle Zellen zurücksetzen und die selektierten neu
einfärben.
Eben :)
>Du musst den letzten Range in einer globalen Variablen speichern, dazu
>auch noch dessen Farbe.
>Nach dem Verlassen der Zelle dann die Rormatierung wieder zurücksetzen.
Und wie mach ich das ?!?! Hab doch keinen Plan von VB.
>Sobald Du _mehrere_ Zellen zugleich selektierst, musst Du die Werte
>_jeder einzelnen_ festhalten; dies vermutlich in einer Array-Variaben.
>Beim Wechsel dann alle Zellen zurücksetzen und die selektierten neu
>einfärben.
Hm, das leuchtet mir ein, aber das wird ja tierisch kompliziert ...
Vielleicht kann noch jemand ne kleine Lösung posten, wie es bei einzelnen
Zellen funzt ??
Gruß
Dominic
Also Melanie's Tipp geht gar nicht, da wird nichts farbig. Und wenn ich den
von Monika nehme und die besagte Zeile
Bereich.Interior.ColorIndex = xlColorIndexNone
rausnehme, dann wird die Farbe nicht mehr zurückgeschrieben, also bleibt sie
in der Farbe. Dann hab ich irgendwann das ganze Blatt in der Farbe.
Gruß
Dominic
"Dominic Küchler" schrieb:
>
> >Du musst den letzten Range in einer globalen Variablen speichern, dazu
> >auch noch dessen Farbe.
> >Nach dem Verlassen der Zelle dann die Rormatierung wieder zurücksetzen.
>
> Und wie mach ich das ?!?! Hab doch keinen Plan von VB.
>
> >Sobald Du _mehrere_ Zellen zugleich selektierst, musst Du die Werte
> >_jeder einzelnen_ festhalten; dies vermutlich in einer Array-Variaben.
> >Beim Wechsel dann alle Zellen zurücksetzen und die selektierten neu
> >einfärben.
>
> Hm, das leuchtet mir ein, aber das wird ja tierisch kompliziert ...
> Vielleicht kann noch jemand ne kleine Lösung posten, wie es bei einzelnen
> Zellen funzt ??
Also: in ein allgemeines Modul der Mappe kopierst Du folgende Zeilen:
Option Explicit
Public lastRange As String
Public lastColor As Integer
In 'Tabelle1' kopiertst Du folgende Zeilen:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
Range(lastRange).Interior.ColorIndex = lastColor
lastRange = Target.Address
lastColor = Target.Interior.ColorIndex
Target.Interior.ColorIndex = 15
End Sub
Und in 'Diese Arbeitsmappe' die folgenden Zeilen:
Option Explicit
Private Sub Workbook_Open()
lastRange = ActiveCell.Address
lastColor = ActiveCell.Interior.ColorIndex
End Sub
Schliesse die Mappe und öffne sie anschliessend wieder.
Nun werden beim Öffnen der Mappe den beiden Variablen die Adresse und
Farbe der aktiven Zelle übergeben.
Beim selektieren einer Zelle wird die vorherige auf die in den Variablen
gespeichrten ere zurückgesetzt, die Werte de neu selektierten Zelle an
die Variablen übergeben und die aktive Zelle neu eingefärbt. Dies
geschieht solange nur eine Zelle selektiert wird. Werden mehrere Zellen
selektiert spricht die Prozedur nicht an.
> "Thomas Ramel" <Schle...@ggs.ch> schrieb im Newsbeitrag
news:3D3EACC7...@ggs.ch...
> Grüezi Peter
> Peter Dorigo schrieb:
>>
>> da muss man keine Zeile einfügen, nur weglassen!
>> bei Melanie's Tip zB die 2. Zeile ;-)
> Oochh, dann bleiben die Zellen aber mit der Farbe stehen, in der sie
> markiert wurden ;-)
ich habe gedacht, das sollte so sein!
ich sehe jetzt aber ein, dass ich das gründlich missverstanden hatte! :-(
> Spass beiseite: Soo trivial ist das Ganze nicht:
in der Tat, aber wenn man die Einfärbung über bedingte Formatierung erzeugt, tangiert
man die bestehenden Formate nicht:
- Bereich markieren, in welchem man den Cursor farbig spazieren führen will
- Format - bedingte Formatierung - Formel ist:
=ADRESSE(ZEILE(A1);SPALTE(A1))=ZELLE("adresse")
(wobei A1 die aktive Zelle der Markierung ist)
- Format (Hintergrundfarbe) wählen.
es muss jetzt nur noch über das Worksheet_SelectionChange - Ereignis eine
Neuberechnung ausgelöst werden.
Peter Dorigo schrieb:
>
> > Spass beiseite: Soo trivial ist das Ganze nicht:
>
> in der Tat, aber wenn man die Einfärbung über bedingte Formatierung erzeugt, tangiert
> man die bestehenden Formate nicht:
> - Bereich markieren, in welchem man den Cursor farbig spazieren führen will
> - Format - bedingte Formatierung - Formel ist:
> =ADRESSE(ZEILE(A1);SPALTE(A1))=ZELLE("adresse")
> (wobei A1 die aktive Zelle der Markierung ist)
> - Format (Hintergrundfarbe) wählen.
>
> es muss jetzt nur noch über das Worksheet_SelectionChange - Ereignis eine
> Neuberechnung ausgelöst werden.
Wahrlich eine _sehr_ elegante Lösung, die mit lediglich 3 Zeilen
VBA-Code auskommt. Der Vollständigkeit halber seien diese hier
nachgeliefert:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.Calculate
End Sub
Ein weiteres Beispiel der fruchtbaren Zusammenarbeit in diesem Forum.
Herzlichen Dank Peter.
"Thomas Ramel" <Schle...@ggs.ch> schrieb im Newsbeitrag
news:3D3EC200...@ggs.ch...
[...]
> Ein weiteres Beispiel der fruchtbaren Zusammenarbeit in diesem Forum.
ja, genau, gemeinsam Lösungen erarbeiten und immer wieder neue Erkenntnisse gewinnen
;-)
> Herzlichen Dank Peter.
auch meinerseits ein herzliches "Danke sehr!"
MfG Frank
_____________________________________________________
Frank Arendt-Theilen, Microsoft MVP für Excel, Hameln
eMail: Thei...@t-online.de, Homepage: http://www.xl-faq.de
Frank Arendt-Theilen schrieb:
>
> Hallo Thomas,
> prima Lösung!
> Kleiner Schönheitsfehler: Man kann keine neu Hintergrundfarbe in
> diesem Tabellenblatt setzen. Es müsste noch ein Ein- Ausschalter für
> das Ereignis eingebaut werden.
Das Ereignis ist nicht aktiv, wenn mehr als eine Zelle markiert wird; so
ist es auch möglich eine andere Hintergrundfarbe zu setzen.