Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Zeile hinzufügen im geschützten Blatt und Formeln übernehmen
#1
Ein wunderschönen Samstag liebe Forum-Mitglieder,

ich möchte durch eine Befehlsschaltfläche meinen Kollegen erlauben eine neue Zeile (innerhalb einer Tabelle) einzufügen.
Zitat:Private Sub CommandButton1_Click()
    Dim rowNum As Integer
    On Error Resume Next
    rowNum = Application.InputBox(Prompt:="In welcher Zeile wollt ihr eine neue Zeile hinzufügen? Bitte wählt die angegebene Zahl links neben dem Knopf:", _
                                    Title:="Leere Zeile hinzufügen", Type:=1)
    Rows(rowNum & ":" & rowNum).Insert Shift:=xlDown
End Sub

Nun muss ich das Arbeitsblatt leider schützen und mehrere Spalten sind komplett geschützt.
Dadurch werden die Formeln aus den anderen Zeilen nicht übernommen. (z.B. =Summe, =Monat). 
Hätte jemand eine Idee, wie man dies besser machen könnte? Wenn ich den Schutz aufhebe, ist das gar kein Problem. 
Das ist leider keine Option.

LG Soshi
Antworten Top
#2
dann heb den schutz kurz auf. zeile einfügen, schutz wieder setzen. 

Rows(rowNum & ":" & rowNum)  wenns funktioniert ok, aber da reicht auch Rows(rowNum).entirerow
[-] Folgende(r) 1 Nutzer sagt Danke an ralf_b für diesen Beitrag:
  • Soshi
Antworten Top
#3
vielen Dank ralf_b!

Ich bin mir immer noch nicht bewusst, welche Möglichkeiten mit VBA bestehen.
Damit funktioniert es in meiner Testmappe aufjeden Fall :)

Edit: Es funktioniert leider nicht und fügt gar keine neue Zeile ein...

Code:
Sub Blattschutz_ein_mit_Passwort()
    Sheets("Tabelle1").Protect Password:="123"
End Sub

Private Sub CommandButton1_Click()
    Dim rowNum As Integer
    On Error Resume Next
    rowNum = Application.InputBox(Prompt:="In welcher Zeile wollt ihr eine neue Zeile hinzufügen? Bitte wählt die angegebene Zahl links neben dem Knopf:", _
                                    Title:="Leere Zeile hinzufügen", Type:=1)
    Rows(rowNum).EntireRow.Insert Shift:=xlDown
End Sub
Sub Blattschutz_aus_mit_Passwort()
    Sheets("Tabelle1").Unprotect Password:="123"
End Sub
Antworten Top
#4
nur so mal zum probieren.
aber zum schutz solltest du mal mehr recherchieren. habe damit leider wenig erfahrung.
    
Sheets("Tabelle1").Unprotect Password:="123"
Rows(rowNum).EntireRow.Insert Shift:=xlDown
Sheets("Tabelle1").protect Password:="123"
Antworten Top
#5
Die Methode von Ralf ist zu vermeiden, denn wenn der Code nach dem Aufheben des Blattschutzes - warum auch immer - abschmiert, bleibt das Blatt ungeschützt. Bessere Methode:

In das Modul DieseArbeitsmappe
Code:
Private Sub Workbook_Open()
Worksheets("Tabelle1").Protect Password:="Kennwort", UserInterfaceOnly:=True
End Sub

Und dann dein Code, aber bitte ohne OnError, das soll auch vermieden werden.
Code:
Private Sub CommandButton1_Click()
    Dim rowNum As Integer
    rowNum = Application.InputBox(Prompt:="In welcher Zeile wollt ihr eine neue Zeile hinzufügen? Bitte wählt die angegebene Zahl links neben dem Knopf:", _
                                    Title:="Leere Zeile hinzufügen", Type:=1)
    Rows(rowNum).Insert Shift:=xlDown
End Sub
Schöne Grüße
Berni
[-] Folgende(r) 1 Nutzer sagt Danke an MisterBurns für diesen Beitrag:
  • Soshi
Antworten Top
#6
das funktioniert einwandfrei! Danke dir :)

Wieder etwas dazu gelernt!
Antworten Top


Gehe zu:


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