[VBA] Löschen eines Datensatzes
#11
Hi Stefan,

mit Deiner vorgeschlagenen Zeile kommt auch wieder:

"Die Delete-Methode des Range-Objektes konnte nicht ausgeführt werden."
Top
#12
@Stefan!
Puuuh! Gefährlich, was Du da vorschlägst!
So von wegen ActiveSheet und so …

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#13
@Ralf:
Ich hab Dir Deine PN beantwortet.
Vielleicht ist es ja wirklich am sinnvollsten, dass Du mir die Datei schickst.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#14
Hi,

Zitat:- Die Daten in der Tabelle sind als intelligente Tabelle formatiert.


CodeNameSheet.ListObjects("Name_der_Liste").ListRows(suchErgebnis.Row).Delete

Wobei Blattname und Listenname natürlich angepasst werden sollten.

Und bei dem Blattschutz gibt es den Parameter UserInterfaceOnly
lg Chris
Feedback nicht vergessen.
[Bild: v.gif]
3a2920576572206973742064656e20646120736f206e65756769657269672e
[-] Folgende(r) 1 Nutzer sagt Danke an chris-ka für diesen Beitrag:
  • Rabe
Top
#15
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Rabe
Top
#16
Ohne Datei bleibt's nur Raterei.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#17
HI,

Zitat:Ich schrieb aber ja auch vom Switchen des Blattschutzes
Warum switchen?
Ich verstehe einfach nicht warum aufmachen und zumachen!?
lg Chris
Feedback nicht vergessen.
[Bild: v.gif]
3a2920576572206973742064656e20646120736f206e65756769657269672e
Top
#18
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 … Wink
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#19
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.
Top
#20
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
lg Chris
Feedback nicht vergessen.
[Bild: v.gif]
3a2920576572206973742064656e20646120736f206e65756769657269672e
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste