Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1912to1916
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Cancel=False Funktioniert nicht

Cancel=False Funktioniert nicht
11.01.2023 06:56:24
oraculix
Hallo Alle!
Ich rufe meine Userform mit untenstehenden Coda auf.
Da die Userform mit Rechtsklick in einer Zelle aufgerufen wird, geht beim öffnen das Menü von Excel auf in der Userform.
Damit das Menü ausgeschaltet wird muss ich Cancel = True setzen.
Aber beim beenden der Userform kann ich dann im Tabellenblatt nicht mehr mit der rechten Maus klicken.
Habe schon versucht Cancel =False in den verschiedensten Varianten einzubauen nütz alles nichts.
Frage:
Wer weis wie man Cancel =False setzen soll damit ich in der tabelle nach beenden der Userform wieder mit Rechtsklick normal arbeiten kann?
'Userform Schauspieler öffnen per Rechtsklick

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim lLastRow&
With Schauspieler
Cancel = True
If Not Intersect(Target, Rows(1)) Is Nothing Then
.Show vbModeless
.ComboBox1.ListIndex = Target.Cells.Column - 1
End If
End With
Cancel = True
' Cancel = False' Hebt Cancel = True sofort wieder auf und das Menü erscheint dann in der Userform.
End Sub
Geuß
Oraculix

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Cancel=False Funktioniert nicht
11.01.2023 08:25:31
Daniel
Du hast das Cancel = False mit dem Hochkomma davor zum Kommentar gemacht, so dass diese Zeile nicht ausgeführt wird.
Das sind VBA-Basiskenntnisse!
Oder lösche die Cancel = True Zeilen.
False ist hier der Default-Wert.
Gruß Daniel
AW: Cancel=False Funktioniert nicht
11.01.2023 08:47:30
oraculix
Hallo guten Morgen Daniel!
Sooo ein Anfänger bin ich nun auch wieder nicht!
Also ich habe das bewusst Ausdokumentiert weil True damit sofort aufgehoben wird!
Ich habe es Quasi als Beispiel reingeschrieben zur besseren Orientierung das es so nicht funktioniert.
Wenn ich Cancel = True lösche dann hab ich beim öffen der Userform das Excelmenü drinnen.
Deshalb habe ich Cancel = True ja drinnen.
Also versuchte ich es mit dem beenden der Userform wieder auf False zu setzten geht auch nicht!!
'Beendet Userform

Private Sub Image32_Click()
Unload Me
Cancel = False ' Nütz nichts die Tabelle lässt sich nicht mehr rechtsklicken.
End Sub
Bin schon langsam am verzweifeln.
Gruß aus Wien
Oraculix
Anzeige
AW: Cancel=False Funktioniert nicht
11.01.2023 11:14:21
onur
"Sooo ein Anfänger bin ich nun auch wieder nicht!" ? Ach deswegen meldest du dich gefühlt 5x pro Woche immer mit dem selben Projekt, wo wirklich langsam "Copyright Herber-Forum" drin stehen sollte.
AW: Cancel=False Funktioniert nicht
11.01.2023 08:37:18
ChrisL
Hi
Ich glaube das Problem liegt bei der Reihenfolge. Rechtsklick möchtest du vermutlich nur für Zeile 1 unterbinden, weil damit das UF gestartet wird.

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Rows(1)) Is Nothing Then
Cancel = True
With Schauspieler
.Show vbModeless
.ComboBox1.ListIndex = Target.Cells.Column - 1
End With
End If
End Sub
ShowModal=False würde ich übrigens fix in den UF-Eigenschaften einstellen.
cu
Chris
Anzeige
Danke Chris Erledigt!!
11.01.2023 08:55:55
oraculix
Vielen Dank Funktioniert Super!!!
Ich verstehe aber nicht warum es mit Cancel = False nicht wieder aufheben muss.
Hauptsache es funktioniert.
Gruß aus Wien
Oraculix
Erklärungsversuch
11.01.2023 10:15:09
ChrisL
Hi
Worksheet_BeforeRightClick ist ein Event, welches sich generell auf jeden Rechtsklick bezieht. Cancel ist im nächsten Durchgang zwar wieder auf False, aufgrund des erneuten Ausführen des Codes, wird es aber trotzdem wieder auf True gestellt. Simpler Test:

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
MsgBox Cancel
Cancel = True
End Sub
Optional kannst Cancel auf eine bestimmte Situation (im vorliegenden Fall den Klick innerhalb eines bestimmten Bereichs) einschränken. Also eine If-Then Bedingung.
Die Event-bezogene Reaktion ist nicht zu verwechseln mit Applikations-bezogenen Einstellungen wie z.B. Application.EnableEvents. Solche Applikations-Einstellungen müssen im Anschluss wieder auf den Default-Wert zurück gestellt werden, sonst bleibt die Einstellung für die ganze Applikation bestehen.
(Ausnahme ScreenUpdating)
cu
Chris
Anzeige
AW: Erklärungsversuch
11.01.2023 11:13:31
oraculix
Danke Tolle Beschreibung!
Habe es vorher versucht mit dem Neuen ChatGPT zu lösen der war zwar nicht schlecht , aber ich denke gegen einen Menschen hat er keine Chance.
Gruß
Oraculix

143 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige