Hi Stefan,
mit Deiner vorgeschlagenen Zeile kommt auch wieder:
"Die Delete-Methode des Range-Objektes konnte nicht ausgeführt werden."
@Stefan!
Puuuh! Gefährlich, was Du da vorschlägst!
So von wegen ActiveSheet und so …
Gruß Ralf
@Ralf:
Ich hab Dir Deine PN beantwortet.
Vielleicht ist es ja wirklich am sinnvollsten, dass Du mir die Datei schickst.
Gruß Ralf
Soderle!
Ich habe mir die Datei angesehen.
Loeschen sieht jetzt so aus und funktioniert problemlos.
(Ich schrieb aber ja auch vom Switchen des Blattschutzes)
Sub Loeschen() 'Datensatz löschen
If MsgBox("FGGK: " & frm_UserForm1.Controls("TextBox" & 1).Value & " wirklich löschen?", vbYesNo) = vbYes Then
MsgBox suchErgebnis.Row
Tabelle1.Unprotect
suchErgebnis.EntireRow.Delete
Tabelle1.Protect
End If
Call Controls_Urzustand1
End Sub
Gruß Ralf
Ohne Datei bleibt's nur Raterei.
HI,
Zitat:Ich schrieb aber ja auch vom Switchen des Blattschutzes
Warum switchen?
Ich verstehe einfach nicht warum aufmachen und zumachen!?
Du hast natürlich Recht, dass man dies auch im WB_Open() oder im UF_Initialize() mit dem Parameter
UserInterfaceOnly:= regeln kann.
Aber ist im Prinzip Jacke wie Hose …
hi,
nun habe ich die Lösung:
in dem Löschen-Makro muß nochmal direkt der Blattschutz ausgeschaltet werden.
Dann hat es mit diesem Code funktioniert:
Code:
Sub Loeschen() 'Datensatz löschen
Sheets("Stammdaten").Unprotect
If MsgBox("FGGK: " & frm_UserForm1.Controls("TextBox" & 1).Value & " wirklich löschen?", vbYesNo) = vbYes Then
'MsgBox suchErgebnis.Row
Sheets("Stammdaten").ListObjects("Tabelle3").ListRows(suchErgebnis.Row - 6).Delete
End If
Sheets("Stammdaten").Protect AllowDeletingRows:=True
Call Controls_Urzustand1
End Sub
-6, weil da die Zeilen-Nummer der intelligenten Tabelle genommen wird und nicht die Blattzeile.
Die anderen vorgeschlagenen Code-Zeilen habe ich jetzt nicht mehr getestet.
Bei diesem Code
Code:
Sheets("Stammdaten").Unprotect
frm_UserForm1.Show
Sheets("Stammdaten").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowDeletingRows:=True
wird also nicht der Blattschutz aufgehoben, bis die Userform geschlossen wird, sondern nur so lange, bis das Userform-CodeModul verlassen wird. Wenn die Löschen-Sub also in einem allgemeinen Modul steht, dann ist der Blattschutz schon wieder aktiv.
PS: da das Tool für einen VBA-Anfänger entwickelt wurde, wird überall "Call" und ".Value" verwendet.
Hi,
^^
Zitat:Aber ist im Prinzip Jacke wie Hose … [img]
Dateiupload bitte im Forum! So geht es: Klick mich!
]
nöö,
Warum ich der Meinung bin:
- Viele Anwender haben ein Problem wo Sie nun auf und zumachen sollten.
- Bleibt der Code jetzt zwischen unprotect und Protect hängen, ist das Blatt nicht geschützt und ist ggf. einer Herde von Dau's ausgeliefert.
- Es ist zumeist kürzer, da ja zumeist PW und andere Parameter auch noch übergeben werden.
- Mir bislang kein Nachteil eingefallen ist.
lg
Chris