Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1928to1932
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

löschen verhindern - freigegebene Datei

löschen verhindern - freigegebene Datei
26.04.2023 09:38:43
Manu

Hallo Zusammen,

wir haben eine große Excel Datei auf die mehrere Benutzer gleichzeitig zugreifen müssen. Deshalb ist die Arbeitsmappe freigegeben, somit kann ich leider keinen Blattschutz anwenden. Im Hintergrund ist auch viel über VBA programmiert. (Noch zur Info, die Datei hatte eine Praktikantin erstellt, die jetzt natürlich nicht mehr da ist...)

Jetzt bekommen wir immer wieder Probleme, weil User Zeilen löschen oder verschieben. Wichtig ist hier jedoch, dass in jedem Tabellenblatt die Spalte A immer die gleichen Nummern in der gleichen Zeile enthält.

Am schönsten wäre natürlich wenn ich über VBA das löschen von Zellen / Zeilen verhindern könnte. Ich hab aber leider nichts brauchbares gefunden.

Die andere Überlegung war eine MsgBox aufzurufen mit der Abfrage "Soll wirklich gelöscht werden?" oder zumindest eine Info per Mail an mich was gelöscht wurde.
Leider komme ich da auch nicht wirklich weiter, da ich nicht weiß wie ich das abfrage.

Vielleicht habt ihr eine Idee für mich. Ich hab schon viel gegoogelt, aber irgendwie gibt es immer eine Hacken :(
Ich wäre wirklich sehr dankbar.

Viele Grüße
Manu

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: löschen verhindern - freigegebene Datei
26.04.2023 10:01:06
Rudi Maintaire
Hallo,
somit kann ich leider keinen Blattschutz anwenden.
aber sicher!
Freigabe entfernen, Blattschutz setze, freigeben.

Gruß
Rudi


AW: löschen verhindern - freigegebene Datei
26.04.2023 10:39:09
Manu
OK ja das funktioniert. Aber über die VBA Programmierungen werden teilweise auch Formatierungen vorgenommen oder auch Zellen gelöscht.
Es soll nur das manuelle Löschen verhindert werden.

Wenn ich jetzt den Blattschutz vorher setzte, dann muss ich den bei Bedarf ja über die VBA Programmierung wieder aufheben. Was nicht geht wenn die Datei freigegeben ist. Oder gibt es da noch einen Trick?


AW: löschen verhindern - freigegebene Datei
26.04.2023 10:52:01
Rudi Maintaire
Es soll nur das manuelle Löschen verhindert werden.
das geht nicht.

Gruß
Rudi


Anzeige
AW: löschen verhindern - freigegebene Datei
26.04.2023 10:57:14
Heli
Hi zusammen,
nur so als Alternativ-Gedanke: per Worksheet-Change-Ereignis vielleicht das manuelle löschen abfangen und dann per Undo (oder so) rückgängig machen? Dann könntest Du vielleicht beides Kombinieren - Blattschutz und Zugriff durch VBA.

VG, Heli


AW: löschen verhindern - freigegebene Datei
26.04.2023 12:27:26
Manu
Danke für eure Antworten.
@Heli -> Ja das wäre auch eine gute Möglichkeit. Wenn es nicht funktioniert das ganze abzufangen, würde mir vorerst auch ne Mail reichen mit ner Info was gelöscht wurde. Leider bekomme ich es nicht hin das manuelle löschen irgendwie abzufangen. Vielleicht kann mir da von euch noch jemand helfen.

Hab jetzt über Selection.Address(0,0) den markierten Bereich ausgelesen, aber komme dann nicht weiter :(


Anzeige
AW: löschen verhindern - freigegebene Datei
26.04.2023 13:41:58
Rudi Maintaire
du kannst ermitteln, wo geändert wurde aber nicht was. Wenn, dann nur extrem aufwändig.


AW: löschen verhindern - freigegebene Datei
26.04.2023 13:43:39
Heli
Hi,
bin jetzt kein VBA-Profi aber so in die Richtung müsste das gehen:
_ die Zellen markieren die nur vom Makro gelöscht werden dürfen
_ einen Namen dafür vergeben (z. B. NICHT_LOESCHEN)
_ Zell- & Blattschutz entsprechend setzen (Löschen von Zeilen unterbinden usw.)
_ Im Codemodul des Blattes den folgenden Code einfügen
Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Range("NICHT_LOESCHEN")) Is Nothing Then Exit Sub

If Target.Value = "" Then
    MsgBox Target.Address, vbExclamation, "Hinweis"
    
    With Application
        .EnableEvents = False
        .Undo
        .EnableEvents = True
    End With
End If

End Sub
VG, Heli


Anzeige
das geht so nicht
26.04.2023 14:09:08
Rudi Maintaire
Hallo,
wenn du die Spalte 'nicht_löschen' löschst, rennt der Name in einen Bezugsfehler.
Die Change-Prozedur schlägt erst nach dem Löschen zu. Somit läuft Intersect in einen Fehler.

Der TE hat 2 Chancen:
1. Das Projekt so zu überarbeiten, dass es auch mit Blattschutz funktioniert.
2. Dem ersten, der Zellen löscht, zur Abschreckung die Finger abzuhacken. ;-)

Gruß
Rudi


AW: das geht so nicht
26.04.2023 16:48:40
Heli
Hi,

na da habe ich wohl nicht weit genug gedacht.... kann man das eventuell auch abfangen?
If Target.Address = Target.EntireRow.Address Then
    With Application
        .EnableEvents = False
        .Undo
        .EnableEvents = True
    End With
    Exit Sub
End If
Für Spalten dann eventuell genauso nur kann dann keine Zeile/Spalte mehr gelöscht werden.

VG, Heli


Anzeige
AW: löschen verhindern - freigegebene Datei
26.04.2023 18:20:36
Daniel
Hi
das Löschen von Zellen kannst du beispielsweise so feststellen, mit diesem Code im Modul des Tabellenblatts:

Option Explicit

Dim rng As Range


Private Sub Worksheet_Change(ByVal Target As Range)
Dim test As Long
On Error Resume Next
test = rng.Row
On Error GoTo 0
If test = 0 Then
    MsgBox "Zellen löschen verboten"
    With Application
        .EnableEvents = False
        .Undo
        .EnableEvents = True
    End With
End If
    
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set rng = Selection
End Sub
wenn Makros Zellen löschen dürfen, dann reicht es aus, hierfür die Events zu deaktivieren.
Gruß Daniel


Anzeige
AW: löschen verhindern - freigegebene Datei
26.04.2023 18:23:31
Daniel
Hi
wenns nur darum geht, dass Spalte A nicht verändert wird, dann könnte es auch reichen, im Change-Event zu prüfen, ob die Spalte A betroffen ist.

if Not Intersect(Target, Columns(1)) is nothing then

Gruß Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige