Registriert seit: 12.09.2020
Version(en): 2016
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
Registriert seit: 12.06.2020
Version(en): 2024, 365business
19.09.2020, 17:37
(Dieser Beitrag wurde zuletzt bearbeitet: 19.09.2020, 17:37 von ralf_b.)
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:1 Nutzer sagt Danke an ralf_b für diesen Beitrag 28
• Soshi
Registriert seit: 12.09.2020
Version(en): 2016
19.09.2020, 18:01
(Dieser Beitrag wurde zuletzt bearbeitet: 19.09.2020, 18:01 von Soshi.)
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
Registriert seit: 12.06.2020
Version(en): 2024, 365business
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"
Registriert seit: 02.05.2018
Version(en): Excel 365 & 2016
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
Registriert seit: 12.09.2020
Version(en): 2016
das funktioniert einwandfrei! Danke dir :)
Wieder etwas dazu gelernt!