Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Excel: Ausgewählte Zeile markieren





Frage

Hallo zusammen. Ich habe eine ziemlich lange und breite Excel Tabelle und wenn ich einer Zeile arbeite, dann muss ich darauf achten in der richtigen zu sein. Ich habe mir die ersten Spalten bereits über "Fenster fixieren" fixiert, um die Übersicht zu behalten. Ich fände es aber besser, wenn die Zeile in der ich mich befinde farbig markiert wird. Sobald ich die Zeile verlasse soll die ursprünglich Formatierung wieder da sein, sprich die ursprüngliche Färbung. Kann mir da jemand weiterhelfen? Vielen Dank schonmal Markus

Antwort 1 von M.O.

Hallo Markus,

kopiere den folgenden Code in das VBA-Projektes deines Arbeitsblatts (Alt + F11)



Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
´Alle Farben in Tabelle löschen
Cells.Interior.ColorIndex = xlNone
´neue Zeile einfärben
Rows(Target.Row).Interior.ColorIndex = 33
End Sub


Mit der 33 setzt du die Farbe fest.

Gruß

M.O.

Antwort 2 von Markus21

Hallo M.O.,

ich hab das kopiert und die 2. und 4. zeile gelöscht. aber leider funktioniert es bei mir nicht.

ich hab das ganze in Modul eingefügt, dass ist doch soweit richtig, oder?

Gruß

Markus

Antwort 3 von M.O.

Hallo Markus,

du musst das Makro in das VBA-Projekts des Arbeitsblattes einfügen und nicht in ein Modul.
Schau mal auf dieser Seite
http://www.excelbeispiele.de/
bei Anleitungen, Beispiel 2 nach.


Gruß

M.O.

Antwort 4 von Markus21

@ M.O.

Jo, danke fuktioniert jetzt wunderbar.

Wünsch dir noch ne schöne Woche

Antwort 5 von M.O.

Danke, gleichfalls :-).

Gruß

M.O.

Antwort 6 von cyberschub

Dieser Code hilft mir schon bei meinem Probelm weiter. Allerdings werden bei Einbindung in meine Mappe die Formatierungen gelöscht, das heißt, z.B. grau formatierte Zellen werden dann wieder transparent. Kann man das irgendwie verhindern?
Viele Grüße
cyberschub

Antwort 7 von Beverly

Hi,

schau mal auf die HP von Hajo Ziplies, Seite "VBA Beispiele" Unterseite "Zellen färben". Dort findest du 2 Beispiele zum Markieren von Zeilen (Zeile markieren1 und Zeile markieren 2)

Bis später,
Karin

Link zur HP

Antwort 8 von nighty

hi all :-)

dachte waere was zum tuefteln grrr war es nicht :-(

gruss nighty

hier meine variante eines fadenkreuzes :-)

rem einzufeuegen alt+f11/projektexplorer/AllgemeinesModul
Global pos(3) As Integer
Global poszelle As Range

rem einzufeuegen alt+f11/projektexplorer/DeineArbeitsMappe

Private Sub Workbook_Open()
Set poszelle = ActiveCell
If poszelle.Row > 1 Then
pos(0) = Cells(poszelle.Row - 1, poszelle.Column).Interior.ColorIndex
Cells(poszelle.Row - 1, poszelle.Column).Interior.ColorIndex = 3
End If
If poszelle.Row < 65535 Then
pos(1) = Cells(poszelle.Row, poszelle.Column + 1).Interior.ColorIndex
Cells(poszelle.Row + 1, poszelle.Column).Interior.ColorIndex = 3
End If
If poszelle.Column > 1 Then
pos(2) = Cells(poszelle.Row, poszelle.Column - 1).Interior.ColorIndex
Cells(poszelle.Row, poszelle.Column - 1).Interior.ColorIndex = 3
End If
If poszelle.Column < 255 Then
pos(3) = Cells(poszelle.Row, poszelle.Column + 1).Interior.ColorIndex
Cells(poszelle.Row, poszelle.Column + 1).Interior.ColorIndex = 3
End If
End Sub

rem einzufeuegen alt+f11/projektexplorer/DeinArbeitsBlatt

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If poszelle.Row > 1 Then Cells(poszelle.Row - 1, poszelle.Column).Interior.ColorIndex = pos(0)
If poszelle.Row < 65535 Then Cells(poszelle.Row + 1, poszelle.Column).Interior.ColorIndex = pos(1)
If poszelle.Column > 1 Then Cells(poszelle.Row, poszelle.Column - 1).Interior.ColorIndex = pos(2)
If poszelle.Column < 255 Then Cells(poszelle.Row, poszelle.Column + 1).Interior.ColorIndex = pos(3)
Set poszelle = ActiveCell
If poszelle.Row > 1 Then
pos(0) = Cells(poszelle.Row - 1, poszelle.Column).Interior.ColorIndex
Cells(poszelle.Row - 1, poszelle.Column).Interior.ColorIndex = 3
End If
If poszelle.Row < 65535 Then
pos(1) = Cells(poszelle.Row, poszelle.Column + 1).Interior.ColorIndex
Cells(poszelle.Row + 1, poszelle.Column).Interior.ColorIndex = 3
End If
If poszelle.Column > 1 Then
pos(2) = Cells(poszelle.Row, poszelle.Column - 1).Interior.ColorIndex
Cells(poszelle.Row, poszelle.Column - 1).Interior.ColorIndex = 3
End If
If poszelle.Column < 255 Then
pos(3) = Cells(poszelle.Row, poszelle.Column + 1).Interior.ColorIndex
Cells(poszelle.Row, poszelle.Column + 1).Interior.ColorIndex = 3
End If

datei speichern,neu laden,fertig :-)

Antwort 9 von nighty

hi all :-)

ups das speichen vergessen grummel,man koennte auch sagen mit fehlt es an betatestern :-))

gruss nighty

rem einzufeuegen alt+f11/projektexplorer/DeineArbeitsMappe

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Set poszelle = ActiveCell
If poszelle.Row > 1 Then Cells(poszelle.Row - 1, poszelle.Column).Interior.ColorIndex = pos(0)
If poszelle.Row < 65535 Then Cells(poszelle.Row + 1, poszelle.Column).Interior.ColorIndex = pos(1)
If poszelle.Column > 1 Then Cells(poszelle.Row, poszelle.Column - 1).Interior.ColorIndex = pos(2)
If poszelle.Column < 255 Then Cells(poszelle.Row, poszelle.Column + 1).Interior.ColorIndex = pos(3)
End Sub

Antwort 10 von Beverly

Hi nighty,

nicht schlecht, nur hast du 2 Dinge nicht bedacht (die bei Hajo's Variante übrigens berücksichtigt sind) - verschiebe mal einen Wert und versuche, einen Wert zu kopieren...

Bis später,
Karin

Antwort 11 von nighty

hi karin :)

das ist morgen fertig :-)

gruss nighty

Antwort 12 von nighty

hi karin :)

uebrigens war oder ist hajo immer mein geheimer lehrer,viel von ihm gelernt :-)))
ich recherchiere lieber als zu fragen :-))
der hammerlehrer ueberhaupt ist jinx hihi streng wie beim bund und fachwissen ohne ende wow

gruss nighty

Antwort 13 von nighty

hi karin :-)

was hälst davon

das modul selection_change mit folgenden austauschen

gruss nighty

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Selection.Count < 2 Then
If poszelle.Row > 1 Then Cells(poszelle.Row - 1, poszelle.Column).Interior.ColorIndex = pos(0)
If poszelle.Row < 65535 Then Cells(poszelle.Row + 1, poszelle.Column).Interior.ColorIndex = pos(1)
If poszelle.Column > 1 Then Cells(poszelle.Row, poszelle.Column - 1).Interior.ColorIndex = pos(2)
If poszelle.Column < 255 Then Cells(poszelle.Row, poszelle.Column + 1).Interior.ColorIndex = pos(3)
Set poszelle = ActiveCell
If poszelle.Row > 1 Then
pos(0) = Cells(poszelle.Row - 1, poszelle.Column).Interior.ColorIndex
Cells(poszelle.Row - 1, poszelle.Column).Interior.ColorIndex = 3
End If
If poszelle.Row < 65535 Then
pos(1) = Cells(poszelle.Row, poszelle.Column + 1).Interior.ColorIndex
Cells(poszelle.Row + 1, poszelle.Column).Interior.ColorIndex = 3
End If
If poszelle.Column > 1 Then
pos(2) = Cells(poszelle.Row, poszelle.Column - 1).Interior.ColorIndex
Cells(poszelle.Row, poszelle.Column - 1).Interior.ColorIndex = 3
End If
If poszelle.Column < 255 Then
pos(3) = Cells(poszelle.Row, poszelle.Column + 1).Interior.ColorIndex
Cells(poszelle.Row, poszelle.Column + 1).Interior.ColorIndex = 3
End If
End If
End Sub

Antwort 14 von Beverly

Hi nighty,

der Code hat keine Veränderung gebracht. Wenn du einen Wert verschiebst, dann bleiben die Markierungen der umliegenden Zellen nach wie vor erhalten. Auch das Kopieren eines Wertes geht nicht.

Bis später,
Karin

Antwort 15 von nighty

hi karin :-)

stimmt :-( ist ja nding hatte nur die selection beobachtet,hast vielleicht einen tip fuer mich fuer die richtige richtung,nöchte nun nicht auf hajos seite schauen man eignet zu schnell fremden code an.

gruss nighty

Antwort 16 von Beverly

Hi nighty,

erst einmal meine generelle Meinung, was fremde Beispiele betrifft: alle (oder zumindest die meisten) Webseiten, die ich kenne, haben den Vermerk, dass die dort präsentierten Beispiele Copyright des Autors/der Autoren sind. Das heißt jedoch nur, dass man sie bei Weiterverwendung entsprechend kennzeichnen muss. Zum einen ist das gesetzliche Pflicht (siehe Haftungsausschluss/Disclaimer) und zum anderen ist es aus meiner Sicht auch einfach ein Gesetz der Fainess, dass man das geistige Eigentum und die Mühen bei der Erstellung anerkennt. Hält man sich an diese Regel, hat kein Autor etwas dagegen, dass die Beispiele (auch Auszugsweise) verwendet werden - andernfalls würden sie nicht öffentlich zugänglich gemacht werden. Wenn man also ein Problem lösen will - weshalb sich nicht Anregungen aus fremden Beispielen holen oder komplette Codes verwenden und an die eigenen Bedürfnisse anpassen? Dafür sind sie ja gedacht. Hajo ist da genau derselben Meinung wie ich. Schau also ruhig in seinen Beispielen nach, was du für deinen Zweck verwenden kannst.

Bis später,
Karin

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: