Microsoft Excel

Herbers Excel/VBA-Archiv

Klick-Ereignis während anderer Prozedur | Herbers Excel-Forum


Betrifft: Klick-Ereignis während anderer Prozedur von: MBorn
Geschrieben am: 10.01.2010 14:46:05

Hallo,

ich wünsche Euch einen schönen, verschneiten Sonntag.

Weiß jemand, wie ich vorgehen muß, wenn ich während einer Prozedur ein
Klickereignis starten möchte?

Folgende Aufgabe:

Sub Uebertragen
Set Blatt1 = Sheets("Blatt1")
Set Blatt2 = Sheets("Blatt2")
...
Blatt2.activate
wenn ich auf eine Zelle klicke, soll in Blatt1 was eingetragen werden.
Wenn ich auf eine Schaltfläche klicke soll das Blatt wechseln:
Blatt1.activate

End Sub
Leider funktioniert das Ereignis

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set Blatt1 = Sheets("Blatt1")
Set Blatt2 = Sheets("Blatt2")
    If Target.Count = 1 Then
    lrow = Blatt1.Range("B1000").End(xlUp).Row

        If Not Intersect(Target, Blatt2.Range("D4:P6")) Is Nothing Then
            If Blatt1.Cells(lrow + 1, 3) = "" Then
                Blatt1.Cells(lrow + 1, 3) = Target.Value
            Else
                Blatt1.Cells(lrow + 1, Blatt1.Cells(lrow + 1, 7).End(xlToLeft).Column + 1) =  _
Target.Value
            End If
        End If
    End If
End Sub
nur außerhalb einer Prozedur und wie das mit der Schaltfläche
gehen soll entzieht sich bis jetzt auch meiner Kenntnis.

Kann jemand helfen bitte?

Danke,

Born

  

Betrifft: AW: Lösung gefunden von: MBorn
Geschrieben am: 10.01.2010 14:53:03

Hallo,

habe gerade selber eine Lösung gefunden indem ich die Prozedur in zwei Prozeduren aufgeteilt
habe und das klick-ereignis zwischen den beiden stattfindet.

Born


  

Betrifft: AW: Lösung funktioniert nicht von: MBorn
Geschrieben am: 10.01.2010 16:16:17

Leider funktioniert es mit den zwei Prozeduren nicht. Das ganze Ding muß
in einer Prozedur laufen. Hat vielleicht doch einer eine Idee, wie man während
einer laufenden Prozedur abfragen kann, welche Zellen angeklickt wurden und
das Skript nach Klick auf eine Schaltfläche weiterlaufen lassen?

born


  

Betrifft: AW: Lösung funktioniert nicht von: A.gerken
Geschrieben am: 10.01.2010 17:53:07

Hallo,

du könntest probieren, an den stellen, wo abgefragt werden soll wo hingeklickt wurde

DoEvents

reinzuschreiben. Dadurch wird der Code angehalten und die Events (auch die Worksheet funktion SelectionChange) abgefragt

grüße Andi


  

Betrifft: AW: Lösung funktioniert nicht von: MBorn
Geschrieben am: 10.01.2010 17:58:43

Hallo Andi,

danke für die Idee. Hab gerade innerhalb des Loops DoEvents ausprobiert
Do
If CBool(GetAsyncKeyState(VK_RBUTTON) And &H8000) Then Exit Do
DoEvents
Loop

und gehofft, daß durch doEvents die ChangeEvents abgerufen werden. Aber
das passiert leider nicht??? Das einzige was passiert, ist das durch das obige
skript bei Rechtsklick der loop verlassen wird.

Huuuuh,

Born


  

Betrifft: AW: Lösung funktioniert nicht von: Daniel
Geschrieben am: 10.01.2010 18:04:32

Hi

man kann die Events oder Ereingnisse auch direkt aufrufen, z.B. mit :

Call Commandbutton1_Klick
Call Selection_Change(Range("A1"))

dabei muss man folgendes beachten:
steht der Aufruf in einem anderen Modul auf das aufgerufene Ereignis, muss dieses als PUBLIC deklariert werden (der VBA-Editor stellt automatisch PRIVATE ein, aber das kann man ändern)

Gruß, Daniel


  

Betrifft: AW: Lösung funktioniert nicht von: MBorn
Geschrieben am: 11.01.2010 08:02:21

DAS wollte ich wissen. Vielen Dank. Das wars.

Born


Beiträge aus den Excel-Beispielen zum Thema "Klick-Ereignis während anderer Prozedur"