Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1244to1248
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

Highlighten von mehreren Zellen

Highlighten von mehreren Zellen
mehreren
Hallo alle zusammen,
ich habe ein etwas vertracktes Problem:
Ich möchte gerne in einem teilweise geschützten Arbeitsblatt Teile einer Zeile highlighten, indem man auf eine beliebige ungeschützte Zelle in dieser Zeile klickt.
Als ersten Schritt habe ich einen Code für die gesamte Zeile ausprobiert:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static target_alt As String
Static index_alt As Integer
On Error Resume Next
Range(target_alt).EntireRow.Interior.ColorIndex = index_alt
index_alt= Target.Interior.ColorIndex
Rows(Target.Row).Interior.ColorIndex = 5
target_alt= Target.Address
End Sub

Das Problem bei diesem Code ist, dass er keine Zellen formatiert, welche eine bedingte Formatierung aufweisen. Außerdem funktioniert er nicht, wenn das Blatt geschützt ist. Wobei letzteres durch unprotect und protect umgangen werden könnte.
Für mich ist es jetzt notwendig, dass nur ein Teil der Zeile (z.B. B13 bis BB13) kurzzeitig eingefärbt oder anderweitig gehighlightes werden soll. Nach dem man schließlich in eine andere Zelle klickt, soll die ursprüngliche bedingte Formatierung der vorhergehenden Zeile wiederhergestellt werden.
Leider habe ich keine Ahnung wie ich meinen obigen Code anpassen kann. Könnt Ihr mir hier bitte auf die Sprünge helfen!
Danke schon mal im Voraus!
VG Peter
PS:
Dieser ganze Klimmzug ist nur deshalb notwendig, da viele, schmale Spalten editierbar sind und man leicht in der Zeile verrutschen kann.

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Highlighten von mehreren Zellen
24.01.2012 00:18:45
mehreren

Hallo Peter,
wieso nicht einfach so?
' **********************************************************************
' Modul: Tabelle4 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  On Error Resume Next
  Target.EntireRow.Select
  Target(1, 1).Activate
End Sub



« Gruß Sepp »

Anzeige
DrawingObjects dürfen dabei aber nicht ...
24.01.2012 04:30:24
Luc:-?
…mitgeschützt sein, Sepp!
Gruß Luc :-?
AW: DrawingObjects dürfen dabei aber nicht ...
24.01.2012 14:29:54
Peter
Servus Sepp,
danke für die Anregungen, ich hab deinen Code ein wenig abgewandelt und erweitert und das Problem inzwischen so gelöst:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
Dim PosOK As Single ' Position in Points
Dim PosLK As Single ' Position in Points
Dim PosRK As Single ' Position in Points
Dim acr As Integer
Dim shp As Shape
Dim ShapeName As String
Dim i As Integer
acr = ActiveCell.Row
PosOK = ThisWorkbook.ActiveSheet.Cells(acr, 2).Top
PosLK = ThisWorkbook.ActiveSheet.Cells(acr, 2).Left
PosRK = ThisWorkbook.ActiveSheet.Cells(acr, 34).Offset(0, 1).Left
ShapeName = "marker"
For Each shp In ActiveSheet.Shapes
If shp.Name = ShapeName Then
i = 1
Else
i = i
End If
Next shp
If i = 1 Then
GoTo Ändern
Else
GoTo Erstellen
End If
Erstellen:
With ActiveSheet.Shapes.AddShape(msoShapeRectangle, 1, 2, 1, 1)
.Name = ShapeName
.Visible = msoTrue
End With
GoTo Ändern
Ändern:
ActiveSheet.Shapes("marker").Fill.Visible = msoFalse
With ActiveSheet.Shapes("marker").Line
.Weight = 2.5
.ForeColor.RGB = RGB(0, 128, 0)
End With
With ThisWorkbook.ActiveSheet.Shapes("marker")
.Left = PosLK
.Top = PosOK
.Height = Target(1, 1).Height
.Width = PosRK - 16
End With
End Sub

Anzeige
Anmerkung
24.01.2012 14:34:09
Josef

Hallo Peter,
in einem Tabellenmodul reicht es, wenn du
Me.Shapes("marker")

schreibst statt
ThisWorkbook.ActiveSheet.Shapes("marker")


außerdem solltest du in der Ereignisprozedur
acr = Target.Row

statt
acr = ActiveCell.Row

verwenden.
« Gruß Sepp »

Anzeige
AW: Highlighten von mehreren Zellen
24.01.2012 00:20:15
mehreren
Hallo Peter,
such mal hier einen Beitrag von Hajo, er nennt da seine WEbseite, u.v.a. gibt es da auch Code für ein "fadenkreuz".
Gruß
Reinhard
Nicht nur durch Un/Protect! UserInterfaceOnly! orT
24.01.2012 04:43:40
Luc:-?
Gruß Luc :-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige