2.2k Aufrufe
Gefragt in Tabellenkalkulation von frapo Einsteiger_in (31 Punkte)
HI!
Ich habe ein Tabellenblatt, das ich mit einem Kennwort geschützt habe, damit die Formeln nicht gelöscht werden. Nun suche ich eine Möglichkeit um mehrere Zeilen der Tabelle zu kopieren und am Ende der Tabelle einzufügen. Die Tabelle soll danach wieder geschützt sein.
Kann mir jemand helfen?

4 Antworten

0 Punkte
Beantwortet von theblackbird_ Mitglied (605 Punkte)
Moin,

Auch im Makro musst Du da den Schutz erst aufheben, dann die Zeilen kopieren, und anschliessend den Blattschutz wieder setzen.
Zeichne Dir das Vorgehen einfach einmal mit dem MakroRecorder auf. Ich bin sicher, in Verbindung mit dem aufgezeichneten Code und der VBA-Hilfe bekommst Du das dann hin. Sollten da noch Fragen offen bleiben, wirst Du hier im Forum dann sicher Hilfe finden.

Cu
TheBlackBird ®
0 Punkte
Beantwortet von frapo Einsteiger_in (31 Punkte)
Hallo!

Ich habe ein Makro aufgezeichnet. Wenn ich es dann ausführe, muss ich das Passwort eingeben. Ich nehme an, das lässt sich in einem VBA-Projekt lösen. Nur weiß ich nicht wie.
Weiters sollen die Zeilen immer am Ende der Tabelle eingefügt werden. Dafür möchte ich einen Button einbauen.
Vielleicht kann mir jemand helfen.

LG Frapo
0 Punkte
Beantwortet von theblackbird_ Mitglied (605 Punkte)
Moin,

Was Du da aufgezeichnet hast, sollte ja in etwa aussehen wie folgt:
ActiveSheet.Unprotect
Range("A1:F2").Select
Selection.Copy
Range("A21").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True


Wenn Du in diesem aufgezeichneten Code den Cursor auf z.B. Protect stellst, und dann die F1-Taste drueckst, sollte die VBA-Hilfe doch ein paar Hinweise geben koennen, wie mit der Protect-Methode umzugehen ist.
Das Ermitteln der ersten freien Zeile einer bestimmten Spalte haette sich hier im Forum in den verschiedensten Variationen finden lassen, nehme ich an. Noch ein wenig in der Hilfe und im Forum stoebern... Dazu ein klein wenig Probieren, und es koennte bei Dir aussehen, wie folgt:
Sub Frapo()
Const strPassWort As String = "mein_Passwort" 'hier zwischen den Anfuehrungszeichen Passwort eintragen/anpassen
Dim lngFFRow As Long 'Variable fuer erste Freie Zeile

With ThisWorkbook.Worksheets("Tabelle1") 'gilt fuer die Tabelle mit Namen "Tabelle1"
.Unprotect Password:=strPassWort 'Schutz aufheben (Pass aus der Konstanten)
.Range("A1:F2").Copy 'A1:F2 kopieren
lngFFRow = IIf(IsEmpty(.Range("A" & .Rows.Count)), _
.Range("A" & .Rows.Count).End(xlUp).Row + 1, .Rows.Count) 'erste freie Zeile ermitteln Range (Spalte A)
.Range("A" & lngFFRow).PasteSpecial 'Einfuegen
Application.CutCopyMode = False 'Zwischenablage loeschen
.Protect DrawingObjects:=True, Contents:=True, _
Scenarios:=True, Password:=strPassWort 'Tabelle schuetzen (Pass aus der Konstanten)
End With
End Sub


Cu
TheBlackBIrd ®
0 Punkte
Beantwortet von frapo Einsteiger_in (31 Punkte)
Danke TheBlackBird!
Funktioniert alles, wie ich es brauche! Super und rasche Hilfe!

LG frapo
...