Frage z uMakro

  • #1
K

Krenni

Mitglied
Themenersteller
Dabei seit
03.10.2006
Beiträge
7
Reaktionspunkte
0
Hi,
meine Frage ist, kann mir jemand sagen wie ich bei folgendem Makro einen Bereich auswähle bzw.
die Zellen A11,A12,A13..., mit ein und der seleben Strg+b zb., (über optionen makros..) ansteuern kann;
Das Makro soll bei drücken von Strg + B die Farbe von Zelle A11 ändern (wenn die Zelle markiert ist)
weiters soll es können dass bei Strg + D zb. die Ursprungsfareb(Fontcolor-0) herstellt bei Markierung,..
und dieses soll für mehrere Zellen gelten,...

If Cells(11, 1).Activate = True Then Cells(11, 1).Font.ColorIndex = 3
End Sub
Sub textfarbe1_1()
If Cells(11, 1).Activate = True Then Cells(11, 1).Font.ColorIndex = 0
End Sub

Danke Krenni
 
  • #2
Hallo Krenni ,

die folgende Makros sollten in einem Modul liegen.
Code:
Option Explicit

'******************************************************************************
Private Function MeineZellen(vZellen As Variant)
 ->Angabe der Zellen, die überwacht werden sollen
  vZellen = Array(A11, A12, A13)
End Function

'******************************************************************************
Sub Excel_STRGB_ColorIndexA11A12A13Setzen()
  Dim MyRange As Range, vZellen As Variant, x As Long
  
  Call MeineZellen(vZellen)
  
  For x = LBound(vZellen) To UBound(vZellen)
    Set MyRange = Application.Intersect(Range(vZellen(x)), Selection)
    If Not MyRange Is Nothing Then MyRange.Interior.ColorIndex = 3
  Next
  
  Set MyRange = Nothing
End Sub

'******************************************************************************
Sub Excel_STRGD_ColorIndexA11A12A13Loeschen()
  Dim MyRange As Range, vZellen As Variant, x As Long
  
  Call MeineZellen(vZellen)
  
  For x = LBound(vZellen) To UBound(vZellen)
    Set MyRange = Application.Intersect(Range(vZellen(x)), Selection)
    If Not MyRange Is Nothing Then MyRange.Interior.ColorIndex = xlColorIndexNone
  Next
  
  Set MyRange = Nothing
End Sub

'******************************************************************************
Sub KeysSetzen_STRGB_Und_STRGD()
  Application.OnKey ^{B}, Excel_STRGB_ColorIndexA11A12A13Setzen
  Application.OnKey ^{D}, Excel_STRGD_ColorIndexA11A12A13Loeschen
End Sub

'******************************************************************************
Sub KeysUrspungzustand_STRGB_Und_STRGD()
  Application.OnKey ^{B}, 
  Application.OnKey ^{D}, 
End Sub
In MeineZellen werden die Zellen definiert, die überwacht werden sollen.
Excel_STRGB_ColorIndexA11A12A13Setzen setzt Farbe in überwachter Zelle, wenn diese selektiert ist.
Excel_STRGD_ColorIndexA11A12A13Loeschen löscht Farbe in überwachter Zelle, wenn diese selektiert ist.
KeysSetzen_STRGB_Und_STRGD schaltet die Tastenkombintionen STRG+SHIFT+b und STRG+SHIFT+d auf die Makros.
KeysUrspungzustand_STRGB_Und_STRGD stellt die ursprünglichen Tastenkombintionen für STRG+SHIFT+b und STRG+SHIFT+d wieder her.

Damit beim Öffnen/Aktivieren der Mappe die Keys gesetzt werden, muß beim Aktivieren der Mappe KeysSetzen_STRGB_Und_STRGD aufgerufen werden.
Damit die Keys nur auf diese Mappe beschränkt bleiben, müssen die Keys beim Deaktivieren der Mappe wieder zurückgesetzt werden (mit KeysUrspungzustand_STRGB_Und_STRGD).

Das macht folgender Code, der in der Code-Seite der Arbeismappe ('DieseArbeitsmappe) liegen muß.
Code:
Private Sub Workbook_Activate()
  Call KeysSetzen_STRGB_Und_STRGD
End Sub
Private Sub Workbook_Deactivate()
  Call KeysUrspungzustand_STRGB_Und_STRGD
End Sub
Gruß Matjes :)
 
Thema:

Frage z uMakro

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.838
Beiträge
707.961
Mitglieder
51.491
Neuestes Mitglied
haraldmuc
Oben