Excel: Doppelmausklicklinks

  • #1
B

Billy

Guest
hi

erstmal sorry für thread name, fiel mir nichts bessers ein =D

nun zu meinem Probi: ich hab ein kleines makro geschrieben welches mir auf doppelten mausklick mit der linken taste reagiert. süss oder? nun sollte das ding wenn ein X in der Zelle ist, NUR ein makro ausführen und nichts anders. sprich nichts editieren am X oder sonstiges

kann man das? oder kann mir jemand sagen wie ich in diesem folgendem befehl ein Knopf machen kann wo dann das makro ausgeführt wird?

Code:
  If Cells(fuehrer_zeile, x).Value =  Then
    Cells(fuehrer_zeile, x).Value = X
  End If

wäre dankbar wenn ich ne antwort kriege

sonst steh ich vor meinem chef blöd da :'(

mfg billy
 
  • #2
Hi billy,

folgendes Makro in der Code-Seite der Tabelle reagiert auf Doppelklicks auf der Tabelle. Es prüft, ob die Zelle in der relevanten Spalte (c_SP_X ) liegt und die Zeile >= c_ZeileMin ist. Wenn dann auch noch ein X in dieser Zelle steht, kommt die Meldung. Dort könntest Du den Aufruf deines Makros einbauen.

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
  
  Const c_SP_X = 10
  Const c_ZeileMin = 2
  Const c_Zeichen = X
  
  Dim Zelle As Range
  
  For Each Zelle In Target
   ->Doppelklick auf eine Zelle der Spalte 10
   ->und die Zeile ist >= 2
    If Zelle.Column = c_SP_X And Zelle.Row >= c_ZeileMin Then
     ->ist in der Zelle schon ein X
      If Zelle.Value = c_Zeichen Then
        MsgBox (Hier könnte dein Makro aufgerufen werden.)
       ->Call myMakro
        
       ->Den Doppelklick Canceln - also zurücknehmen
       ->Da sonst der Cursor in der Zelle im Editier-Modus steht
        Cancel = True
      End If
    End If
  Next
End Sub
Gruß Matjes :)
 
  • #3
danke

jetzt hm... wäre noch gut wenn ich das gebiet wo das X vorkommt irgend wie eingrenzen.

ich könnt ja einfach die sachen von oben übernehem

Code:
Private Sub WorkSheet_Change(ByVal Target As Excel.Range)
 Call abruf(ActiveSheet, schulze, Schulzer Einrico, B, BE, 11, 49, 4)
 Call abruf(ActiveSheet, reimann, Reimann Norbert, B, BE, 11, 49, 6)
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
MsgBox (links klick in  & Target.Address(rowabsolute:=False, Columnabsolute:=False))
If Cells(Target.Row, Target.Column) = X Then
 usr.Show
 Cancel = True
End If
End Sub

wie kann ich machen dass ich die Angaben B, BE, 11, 49 fest bleiben auf dem ganzen Tabellenblatt?

ist das mit Const oder? aber wie genau geht das.. muss da immer ein c_ vorne stehen?
 
  • #4
Hi billy,

die Variablen und Konstanten kannst Du nennen wie du willst. Ich hab mir angewöhnt im ersten Buchstaben den Typ der Variablen zu kennzeichen, als s_... für String, l_... für long und eben c_... für Konstante. Ander verwenden z.B. die Großschreibung für Konstante ( wie KONSTANTE). Das liegt im Belieben jedes einzelnen.


bzgl Gültigkeitsbereich der Konstanten:

Konstanten, die in einer Funktion definiert sind, sind auch nur in dieser zu erreichen.

Wenn in der Code-Seite der Tabelle mehrere Funktionen/Makros auf die Konstanten zugreifen sollen, kannst Du sie mit->Const' vor alle Funktionen/Makros in die Code-Seite schreiben.

Wenn die Konstanten auch in Modulen erreichbar sein sollen, mußt Du sie in ein Modul schreiben, mit dem Vorsatz->Global Const'.

Also in deinem Fall hiesse das, die Konstanten an den Anfang der Tabellen-Code-Seite schreiben.

Gruß Matjes  :)
 
  • #5
oki danke ^^
 
Thema:

Excel: Doppelmausklicklinks

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben