Anzeige
Archiv - Navigation
1448to1452
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

Vor überschreiben warnen

Vor überschreiben warnen
02.10.2015 13:25:46
Max
Hallo zusammen,
ich habe diesen tollen Beitrag gefunden:
https://www.herber.de/forum/archiv/216to220/217269_Vor_Ueberschreiben_warnen.html#217904
Nur leider wird bei mir die Fehlermeldung immer angezeigt ... also auch bei leeren Zellen, die ganz normal beschrieben werden, oder etwas hinein kopiert wird.
Es würde vollkommen reichen, wenn die Fehlermeldung nur kommt, wenn jemand versucht etwas per Paste zu überschreiben. Es soll quasi beim konsolidieren von mehreren Listen verhindert werden, dass ausversehen ein bereits gefüllter Bereich per Einfügen überschrieben wird.
Ein normales überschreiben einer Zelle per draufklicken und schreiben, soll weiterhin ohne Warnung funktionieren.
Evlt. liegt es auch einfach nur daran, dass die Lösung hier für XP ist?
Ich benötige sie für Win 7 und Excel 2010
Wäre super, wenn mir hier jemand helfen könnte?
Sind weitere Infos nötig?
Warnung, bin absoluter VBA-Rookie ;-)
Vielen Dank schon mal und beste Grüsse,
Max

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eine Möglichkeit...
02.10.2015 14:11:56
Michael
Hallo Max,
ist bspw.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Application.CutCopyMode Then
If WorksheetFunction.CountA(Target) > 0 Then
MsgBox "Achtung: Bereich enthält bereits Werte!", vbCritical, "Warnung"
Application.CutCopyMode = False 'Einfüge-Modus verlassen, Optional
End If
End If
End Sub
Dieser Code muss in das Klassenmodul jener Tabellenblätter, in denen die Funktion greifen soll - Alt + F11 um den VB-Editor aufzurufen, DoKlick auf zB Tabelle1(DeinBlattname) und Code dort einfügen; für jedes Tabellenblatt entsprechend wiederholen, wenn benötigt.
Achtung: Die Warnungmeldung kommt in diesem Fall nur bei XL-internen Kopier-/Ausschneide-Vorgängen zum Tragen; d.h. sobald der Benutzer innerhalb XL, innerhalb des Tabellenblattes, einen Bereich kopiert/ausschneidet und dann einen weiteren Bereich auswählt, der bereits Werte (also mehr als "0" nicht-leere Zellen) enthält, erscheint die Warnmeldung - zusätzlich wird der XL-Einfüge-Kopier-Modus verlassen, d.h. ein etwaiger Einfügevorgang abgebrochen.
Allerdings ist es nach wie vor möglich direkt aus der Zwischenablage Zellen zu überschreiben - d.h. kopiert ein Benuzter außerhalb XL (bspw. aus einem Textfile) einen Wert und fügt diesen in eine Zelle ein, die bereits Werte enthält, ist dies a) möglich und b) läuft an der Warnmeldung vorbei (diese erscheint nicht).
LG
Michael

Anzeige
AW: Eine Möglichkeit... (Vor überschreiben warnen)
02.10.2015 14:49:09
Max
Hallo Michael,
vielen Dank für die schnelle Rückantwort, das funktioniert einwandfrei :-)
Ein Frage hätte ich noch, könnte man das so erweitern, dass man die Warnung bekommt, aber für den Fall*, dass man es trotzdem überschreiben möchte, eine Auswahlmöglichkeit bekommt?
Also z.B. "OK" für überschreiben und "Abbrechen" um den Vorgang entsprechend abzubrechen.
* also der Fall könnte sein, dass es jetzt noch gar nicht darum geht die einzelnen Inhalte zu konsolidieren, sonder man beim bearbeiten etwas überschreiben möchte ... oder derartiges
Vielen Dank schon mal und beste Grüsse,
Max

Anzeige
AW: Sollte möglich sein...
02.10.2015 18:24:48
Michael
Max,
Bin aber heute nicht mehr am Rechner! Melde mich bis Montag wieder mit einer Ergänzung!

AW: Sollte möglich sein...
02.10.2015 18:46:01
Max
Hallo Michael,
hört sich super an ... vielen Dank für die Zwischeninfo und ein schönes WE!!
Beste Grüsse,
Max

AW: Ergänzung mit Abfrage
05.10.2015 08:20:20
Michael
Hallo Max!
Hier die gewünschte Ergänzung:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Info As Byte
If Application.CutCopyMode Then
If WorksheetFunction.CountA(Target) > 0 Then
Info = MsgBox("Achtung: Bereich enthält bereits Werte! Fortfahren?", vbYesNo, " _
Warnung")
Select Case Info
Case Is = vbNo
Application.CutCopyMode = False 'Nicht fortfahren, Kopier-Einfüge-Modus  _
verlassen
End Select
End If
End If
End Sub
Alle Anmerkungen zu meinem ersten Code haben nach wie vor Gültigkeit - in diesem Fall erhalten die Benutzer nur eben die Möglichkeit Ja/Nein auf die Warnung zu antworten - bei Nein wird der Kopier-Einfügemodus-Verlassen, bei Ja bleibt dieser bestehen und ein Einfügen ist möglich.
LG
Michael
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige