Aktuell kann es Probleme bei der Anmeldung mit dem Chrome oder Edge Browser geben. Ihr müsstet in die Einstellungen des Browsers gehen und Cache, Cookies und sofern vorhanden, gespeicherte Passwörter vom CEF löschen oder alternativ auf einen anderen Browser ausweichen. Ursache sind vermutlich kürzliche Browserupdates. x

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
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
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
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"
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
Top
#6
das funktioniert einwandfrei! Danke dir :)

Wieder etwas dazu gelernt!
Top


Gehe zu:


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