Clever-Excel-Forum

Normale Version: Meldung unterdrücken.
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo VBA- Freunde,

in einer passwortgeschützten Tabelle füge ich mit dem folgenden Code in eine Zelle einen Buchstaben und das Datum + Zeit daneben ein.
Das geht auch alles.

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 
   ActiveSheet.Unprotect
   Application.DisplayAlerts = False
   Application.EnableEvents = False
   
   If Not Intersect(Target, Range("K5:K17,N5:N17, O29:O44")) Is Nothing Then
       Target.Value = Cells(Target.Row, Target.Column - 1).Value
           If Target.Row < 18 Then
               Cells(Target.Row, Target.Column + 1).Value = Date + Time
           End If
               
           If Target.Row > 28 Then
               QNT = Cells(Target.Row, 3).Value
               Range("D25").Value = QNT
               
               DatenHolen
               
               Range("D25").Select
           End If
   End If
   Application.DisplayAlerts = True
   Application.EnableEvents = True
   ActiveSheet.Protect
   
End Sub

Mich stört nur am Ende die Meldung:

Die Zellen oder das Diagramm befinden sich .....

Ich dachte, mit Application.DisplayAlerts = False wäre die Meldung weg.
Ist aber nicht so.
Wo liegt mein Gedankenfehler, oder wie muss ich den Code abändern um die Meldung zu unterdrücken.

Vielen Dank für eure Überlegungen

Heinz
Hallo
Code:
   Cancel = True
weil ...

Gruß Carsten
Hallo Carsten,

danke für die Antwort,

nur ich verstehe sie nicht ganz.

Was macht Cancel = True, als ich das eingebaut hatte war die Meldung weg.

Gruß Heinz
Hallo Heinz,

ich dachte Du kommst selbst darauf ...  ;)

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Du entsperrst, führst etwas aus und sperrst wieder.
Danach wird der Doppelklick ausgeführt.

Und dann musst Du halt die 'Cancelei' an die richtige Stelle setzen:

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  ActiveSheet.Unprotect
  Application.EnableEvents = False
 
  If Not Intersect(Target, Range("K5:K17,N5:N17, O29:O44")) Is Nothing Then
      Target.Value = Cells(Target.Row, Target.Column - 1).Value
          If Target.Row < 18 Then
              Cells(Target.Row, Target.Column + 1).Value = Date + Time
              Cancel = True
          End If
             
          If Target.Row > 28 Then
              QNT = Cells(Target.Row, 3).Value
              Range("D25").Value = QNT
              DatenHolen
              Range("D25").Select
              Cancel = True
          End If
  End If
  ActiveSheet.Protect
  Application.EnableEvents = True
End Sub

Oder auch am Anfang oder Ende, dann wird der Doppelklick gar nicht ausgeführt (Dein Code schon).
Reicht das als Erklärung?


Gruß Carsten
Hallo Carsten,

danke für die Erklärung.

Manche Sachen wendet man an, ohne die Hintergründe zu wissen.

Jetzt weis ich mehr.


Gruß Heinz
Hallo Heinz,

(20.04.2017, 19:32)Heinz Ulm schrieb: [ -> ]Manche Sachen wendet man an, ohne die Hintergründe zu wissen.

Tröste Dich, ich steh ganz nah neben Dir. :D


Gruß Carsten