Anzeige
Archiv - Navigation
1296to1300
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 markieren

Zellen markieren
29.01.2013 10:19:00
Pampel
Hallo zusammen,
ich habe einen VBA-Code, der mir automatisch die Zellen einer Zeile sowie die Zellen einer Spalte bis zur aktuellen Cursor-Position farblich verändert, wenn ich den Cursor in eine beliebige Zelle setze (s.u.).
Wenn ich allerdings einen größeren Bereich markiere, z.B. die Zellen von L9 bis P13, dann bleibt die Markierung bei L9 auch dann erhalten, wenn ich innerhalb der Auswahl mit der Eingabetaste den Cursor in eine andere Zelle bewege.
Kann man das auch mit einer Auswahl hinbekommen, dass die Markierung in einer bestehenden Auswahl "mitwandert"?
Danke für Hinweise.
Hier noch der VBA-COde
----------------------------------

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
intFarbe = 40
intFarbe2 = 22
' zuweisen von variablennamen
intAktiveSpalte = ActiveCell.Column
intAktiveZeile = ActiveCell.Row
' zurücksetzen
Cells.Interior.ColorIndex = xlNone
Cells.Font.Bold = False
For tmpSpalte = 1 To intAktiveSpalte
Cells(intAktiveZeile, tmpSpalte).Interior.ColorIndex = intFarbe
Next
For tmpZeile = 1 To intAktiveZeile
Cells(tmpZeile, intAktiveSpalte).Interior.ColorIndex = intFarbe
Next
Cells(ActiveCell.Row, ActiveCell.Column).Interior.ColorIndex = intFarbe2
End Sub

----------------------------------

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen markieren
29.01.2013 11:12:38
Daniel
HI
sorry, ich finde jetzt kein Event, welches auslöst wenn du innerhalb einer Selektion die aktive Zelle mit der TAB-Taste wechslest.
da sich die grundsätzliche Selektion nicht änderd, spricht das Selection-Change-Event nicht an.
notwendig wäre hier ein Tastaturklick-Event, welches du dann auf die Tab-Taste abfragen kannst, aber das existiert nicht für Tabellenblätter
Das heißt, dein Vorhaben wird so nicht funktionieren.
ein Workaround wäre, wenn du die aktive Zelle nicht per TAB-Taste wechselst, sondern mit der Maus bei gedrückter STRG-Taste auf die gewünschte Zelle klickst.
dann spricht das Selection-Change-Event wieder an.
Gruß Daniel

Anzeige
AW: Zellen markieren
29.01.2013 11:41:23
Pampel
Hallo Daniel,
Danke für Deine Info.
Ich muss für Mitarbeiter in verschiedenen Filialen einen Einatz mit einem X markieren. Daher habe ich den Bereich der Filialen und der Mitarbeiter in eine Auswahl genommen. So kann ich, wenn ich mit der Eingabe-Taste (nicht der Tabulator-Taste) zur nächsten Filiale nach unten springe, schnell alle X eintragen. Am Ende springt der Cursor dann zum nächten Mitarbeiter und das Ganze geht wieder von vorne los.
Dein Vorschlag, die Strg-Taste zusammen mit der Maus zu benutzen, macht die Eingabe leider langsamer.
Schade, dass das nicht geht.
Nochmals Danke!
Gruß,
Stefan

Anzeige
AW: Zellen markieren
29.01.2013 12:52:11
Rudi
Hallo,
geht nur mit einer zusammenhängenden Markierung.
im Tabellenmodul
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then
Application.OnKey "{Tab}", "prctab"
Application.OnKey "~", "prcenter"
Application.OnKey "{enter}", "prcenter"
Application.OnKey "+{Tab}", "prcshifttab"
Else
Application.OnKey "{Tab}"
Application.OnKey "~"
Application.OnKey "{enter}"
Application.OnKey "+{Tab}"
End If
FaerbMich
End Sub

in ein Modul
Option Explicit
Sub prcTab()
Dim iFirstR As Long, iLastR As Long, iFirstC As Long, iLastC As Long
With Selection
iFirstC = .Column
iLastC = .Column + .Columns.Count - 1
iFirstR = .Row
iLastR = .Row + .Rows.Count - 1
End With
Select Case ActiveCell.Column
Case iFirstC To iLastC - 1
ActiveCell.Offset(, 1).Activate
Case iLastC
Select Case ActiveCell.Row
Case iFirstR To iLastR - 1
ActiveCell.Offset(1, -iLastC + iFirstC).Activate
Case iLastR
ActiveCell.Offset(-iLastR + iFirstR, -iLastC + iFirstC).Activate
End Select
End Select
FaerbMich
End Sub
Sub prcEnter()
Dim iFirstR As Long, iLastR As Long, iFirstC As Long, iLastC As Long
With Selection
iFirstC = .Column
iLastC = .Column + .Columns.Count - 1
iFirstR = .Row
iLastR = .Row + .Rows.Count - 1
End With
Select Case ActiveCell.Row
Case iFirstR To iLastR - 1
ActiveCell.Offset(1).Activate
Case iLastR
Select Case ActiveCell.Column
Case iFirstC To iLastC - 1
ActiveCell.Offset(-iLastR + iFirstR, 1).Activate
Case iLastC
ActiveCell.Offset(-iLastR + iFirstR, -iLastC + iFirstC).Activate
End Select
End Select
FaerbMich
End Sub
Sub prcShiftTab()
Dim iFirstR As Long, iLastR As Long, iFirstC As Long, iLastC As Long
With Selection
iFirstC = .Column
iLastC = .Column + .Columns.Count - 1
iFirstR = .Row
iLastR = .Row + .Rows.Count - 1
End With
Select Case ActiveCell.Column
Case iFirstC + 1 To iLastC
ActiveCell.Offset(, -1).Activate
Case iFirstC
Select Case ActiveCell.Row
Case iFirstR + 1 To iLastR
ActiveCell.Offset(-1).Activate
Case iFirstR
ActiveCell.Offset(iLastR - iFirstR, iLastC - iFirstC).Activate
End Select
End Select
FaerbMich
End Sub
Sub FaerbMich()
Const F1 = 40
Const F2 = 22
With Cells
.Interior.ColorIndex = xlNone
.Font.Bold = False
End With
With Range(Cells(ActiveCell.Row, 1), ActiveCell)
.Interior.ColorIndex = F1
.Font.Bold = True
End With
ActiveCell.Interior.ColorIndex = F2
End Sub
Gruß
Rudi
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige