Wie eine Ereignisprozedur, über ActiveX-Steuerelement (Befehlsschaltfläche) ansprech
#1
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
Top
#2
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Roger
Top
#3
Moin
(gelöscht)
Gruss Igel

Edit: Nehme alles zurück.
Ralf hat recht.
Mein Hirn funktioniert heute nicht richtig.
Sorry
Ich kann nicht alles wissen,
aber vieles lernen ! 19
Top
#4
Edit:
Da Igel gelöscht hat, hat sich mein Beitrag erledigt.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#5
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
[-] Folgende(r) 1 Nutzer sagt Danke an Helvetier für diesen Beitrag:
  • Roger
Top
#6
Hallo, RPP63, 

Hallo, Helvetier,

Danke für die Antwort.

Werde das mal so probieren.

Mit freundlichen Grüßen
Roger
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste