Herbers Excel-Forum - das Archiv

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

Informationen und Beispiele zu den hier genannten Dialog-Elementen:


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

Excel-Beispiele zum Thema "Klick-Ereignis während anderer Prozedur"
Aufzurufenden Makronamen während der Laufzeit aus Zelle entnehmen Während der Laufzeit aktives Modul löschen
Zellinhalt während der Laufzeit in Prozedur übernehmen UserForm-Schaltfläche während der Laufzeit hinzufügen
ComboBox-Breiten während der Laufzeit festlegen Während der Laufzeit TextBox erstellen und auslesen
Bereich aus anderer Tabelle für 2 Sekunden anzeigen Suchbegriff-Fundstelle mit anderer Zelle multiplizieren
Einer Zeichenfolge eine zweite in anderer Schriftart hinzufügen Bei Zellauswahl Wert aus anderer Zelle eintragen