Ich versuche ein wenig Visual Basic-Code zu schreiben, um zu verhindern, dass versehentlich Zellen über mehrere Blätter hinweg überschrieben werden, wenn mehrere Blätter ausgewählt sind.Erstellen einer Warnung in Excel, wenn mehrere Seiten ausgewählt sind, um versehentliches Überschreiben von Zellen zu verhindern
Ich möchte jedoch die Möglichkeit, Zellen über mehrere Blätter hinweg zu überschreiben, sollte dies zu irgendeinem Zeitpunkt erforderlich sein.
Also, wenn ich mehrere Blätter ausgewählt habe, möchte ich ein Popup mit 2 Optionen, wie folgt: "Sind Sie sicher, dass Sie die Zellen über die Blätter, die Sie ausgewählt haben, überschreiben?" OK Abbrechen
Ich denke, ich bin fast da mit dem Code unten, aber wenn ich 3 Blätter ausgewählt habe, erscheint das Popup 3 Mal (einmal für jede Seite). Natürlich möchte ich nur das Popup einmal erscheinen lassen, egal wie viele Blätter ich ausgewählt habe.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If ActiveWindow.SelectedSheets.Count > 1 Then
If MsgBox("Are you sure you want to overwrite the cells across the sheets you have selected?", vbOKCancel) = vbCancel Then Exit Sub
Application.EnableEvents = False
Application.Undo
End If
Application.EnableEvents = True
End Sub
Oder eine noch bessere Lösung wäre tatsächlich sein:
„Sind Sie sicher, dass Sie die Zellen über die Blätter zu überschreiben möchten, dass Sie gewählt haben?“
Ja (mit allen ausgewählten Seiten, um fortzufahren),
Nein (aktuelle Seite wählen und weiter),
Abbrechen (Vorgang abzubrechen und aktuelle Auswahl halten).
Dieser Code ist perfekt. Vielen Dank!! :) – Michael
Das ist, was Sie wollten, dass 'Nein' nur das' activesheet' ändert, die Annullierung des Undo ist der Nebeneffekt, den Sie nicht erwartet haben. Wie unentschlossen sind Ihre Nutzer? – EEM