Hallo Excelperten,
ich möchte Zellen die in einer Tabelle angeklickt werden mit einem bestimmten Fomat belegen, jedoch nur Zellen die NICHT im Bereich A10:smiley:20 liegen.
Ich bin auf folgende Idee gekommen, die aber leider nicht funktioniert:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Bereich As Range
Set Bereich = Range(„A10:smiley:20“)
If ActiveCell.Address Bereich Then
…
wie sollte der Quelltext nach „If“ lauten um mein Vorhaben zu ermöglichen?
Bin für eine Lösung sehr Dankbar.
Gruß
Roland
so geht das Nicht.
mir ist nur eingefallen:
Format auf 2. Arbeitsplatt sichern:
Sheets(„Tabelle1“).Select
Range(„A10:smiley:20“).Select
Selection.Copy
Sheets(„Tabelle2“).Select
Range(„A10:smiley:20“).Select
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
dann alle Formate ändern
und alte Format wieder zurückschreiben.
’
Sheets(„Tabelle2“).Select
Range(„A10:smiley:20“).Select
Selection.Copy
Sheets(„Tabelle1“).Select
Range(„A10:smiley:20“).Select
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
Selection.Copy
Hilft das ?
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo SAM,
ich befürchte das hilft nicht, denn es soll nur die angeklickte Zelle sofort das Format ändern. Und das soll nicht für alle Zellen der Tabelle gelten, sondern ein festgelegter Bereich (A10:smiley:20) soll davon unberührt bleiben.
Gruß
Roland
Bereich mit Loch markieren/formatieren
Also irgendwie scheint mein Antwort-Artikel hier heute vorhin nicht angekommen zu sein. Ich versuch´s nochmal:
So geht´s also:
'################################################################################################
'Artikel: http://www.wer-weiss-was.de/cgi-bin/forum/showarticle.fpl?ArtikelID=2010886
'################################################################################################
Option Explicit
Const str\_rGesperrt As String = "A10:E20"
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Type t\_recRangeKoords
B As Long
H As Long
x1 As Long
y1 As Long
x2 As Long
y2 As Long
End Type 't\_recRangeKoords
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Function KoordsAusText(str\_rBereich\_ As String) As t\_recRangeKoords
Dim R As Range
With KoordsAusText
.B = -1
On Error GoTo KoordsAusText\_Ende
Set R = Range(str\_rGesperrt)
.B = R.Columns.Count
.H = R.Rows.Count
.x1 = R.Column
.y1 = R.Row
.x2 = .x1 + .B - 1
.y2 = .y1 + .H - 1
On Error GoTo 0
End With 'KoordsAusText
KoordsAusText\_Ende:
Set R = Nothing
End Function 'KoordsAusText
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Function ZelleInBereich(rZelle\_ As Range, str\_rBereich\_ As String) As Boolean
With KoordsAusText(str\_rBereich\_)
ZelleInBereich = \_
(rZelle\_.Column \>= .x1) And \_
(rZelle\_.Column = .y1) And \_
(rZelle\_.Row
Bereich markieren (kann sich mit dem gesperrten Bereich überlappen oder auch darin liegen) und Prozedur "Test" aufrufen.
Kristian
Hallo Kristian,
ich habe alles markiert und in den VBA-Editor kopiert, leider schreibt er alles in eine Programmzeile. Und ich habe mir noch nicht die Zeit genommen die einzelnen Programmzeilen zu trennen.
Weiterhin würde ich gerne von Dir wissen ob ich mit meiner Idee (siehe unten) auf der richtigen Spur war.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Bereich As Range
Set Bereich = Range(„A10:smiley:20“)
If ActiveCell.Address Bereich Then
…
Soweit schon mal einen Dank an Dich.
Gruß
Roland
Blöde Implementierung von PRE …
Moin Roland,
ach, das liegt an der blöden Implementierung vom „PRE“-Tag hier im Forum. Muss ich gleich mal bemänglen.
Ich habe das Teil mal als Zip bereitgestellt:
http://de.geocities.com/kristian_zarse/BereichMitLoc…
Kristian