Clever-Excel-Forum

Normale Version: Wie eine Ereignisprozedur, über ActiveX-Steuerelement (Befehlsschaltfläche) ansprech
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

Hab hier einen VBA-Code - Fadenkreuz- (ist wohl von Beverly hier aus dem Forum)


Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim r As Long
    Dim c As Integer

    If Not Intersect(Target, Range("A12:BA163")) Is Nothing Then
        Range("A10:BA163").Interior.ColorIndex = xlNone

        r = Target.Row
        c = Target.Column

        Range(Cells(r, 1), Cells(r, 53)).Interior.ColorIndex = 35
        Range(Cells(10, c), Cells(163, c)).Interior.ColorIndex = 35
    Else
        Range("A12:BA163").Interior.ColorIndex = xlNone
    End If
'End Sub


Der Code funktioniert auch einwandfrei.

Es ist ja eine Ereignisprozedur, die automatisch ausgeführt wird, sobald ein bestimmtes Ereignis eintritt.
Hier die Auswahl einer Zelle.

Soweit so gut.

Mein Problem ist, das der Kollege dieses Fadenkreuz in der Tabelle nicht haben will, ich wiederum das sehr hilfreich finde,
 da ich immer genau sehe wo ich im Tabellenblatt bin um dort dann mein Eingabe zu machen.

Mit den normalen Formular-Steuerelementen ( hier die Schaltfläche ) kann ich ja keine Ereignisprozedur zuweisen.

Mit den ActiveX-Steuerelementen  ( hier Befehlsschaltfläche ) sollte das gehen.

Wie kann ich die Ereignisprozedur über den Button ansprechen.

Wenn das gehen sollte, kann der Kollege das Fadenkreuz ja deaktivieren und ich dann nutzen.

Mit freundlichen Grüßen
Roger
Moin!
Der Kollege braucht doch nur das Ausführen von Makros unterbinden.

Du könntest natürlich beim Öffnen der Datei abfragen, ob das FK aktiviert werden soll, dies in einer globalen Boolean-Variable in einem allgemeinen Modul "speichern" und diese Variable im _Change auf True prüfen.

Gruß Ralf
Moin
(gelöscht)
Gruss Igel

Edit: Nehme alles zurück.
Ralf hat recht.
Mein Hirn funktioniert heute nicht richtig.
Sorry
Edit:
Da Igel gelöscht hat, hat sich mein Beitrag erledigt.

Gruß Ralf
Hallo Roger
Wenn Dein Kollege nicht zufälligerweise auch Roger heisst, könntest Du Dein Makro so ergänzen:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   Dim r As Long
   Dim c As Integer
   
   If Not Intersect(Target, Range("A12:BA163")) Is Nothing Then
       If Environ("Username") = "Roger" Then
           Range("A10:BA163").Interior.ColorIndex = xlNone

           r = Target.Row
           c = Target.Column

           Range(Cells(r, 1), Cells(r, 53)).Interior.ColorIndex = 35
           Range(Cells(10, c), Cells(163, c)).Interior.ColorIndex = 35
       End If
   Else
       Range("A12:BA163").Interior.ColorIndex = xlNone
   End If
 
End Sub
Hallo, RPP63, 

Hallo, Helvetier,

Danke für die Antwort.

Werde das mal so probieren.

Mit freundlichen Grüßen
Roger