Frage von Sascha19833891, 42

Macro für Excel mit dem man die Werte aus einem Blatt in ein anderes automatisch einfügen kann?

Hallo :) Ich benötige ein Makro Code, mit dem ich einen Wert aus bsp. Blatt2 in Spalte A Reihe 1 in die entsprechende Zelle im Blatt 1 einfügen kann - wen in der ursprungsspalte nix steht, dann soll in der neuen Spalte auch nix stehen und die Zelenformatierung soll auch beibehalten werden; ich weiss es funktioniert mit z.B. =Sheet2!A1 und dann die Formel ziehen oder mit copy and past all, aber es sollte mit einem Makro gemacht werden, da das Sheet1 protected ist und man keine Formeln eingeben kann und ich hoffe das so umgehen zu können.

Grüße und Danke schonal im vorraus :)

Expertenantwort
von Suboptimierer, Community-Experte für Excel, 29

Du kannst mittels VBA den Blattschutz aufheben.

  Tabelle1.Unprotect
  Tabelle1.Range("A1").Value = Tabelle2.Range("A1").Value
  Tabelle1.Protect

Übergibst du kein Passwort, wirst du zur Laufzeit zur Eingabe aufgefordert. Ansonsten wird der übergebene Parameter verwendet.

Würdest du mittels VBA passwortlos das Kennwort aufheben können (man könnte es mit Brute Force probieren), wäre das Sperren von Arbeitsblättern eine ziemlich sinnlose Zeitverschwendung.

Das wäre so, wie wenn du immer zuhause mit einem Schlüssel abschließen würdest, von dem jeder eine Kopie hat.

Kommentar von Sascha19833891 ,

In welchen Kontext mus ich den Code denn setzen, bin ziemlicher Newbie...:P

Muss ich Private Sub davor scheiben und end sub am Ende? reicht das schon?

Kann ich das auch machen ohne das "protect sheet" aufzuheben?

ist ein GXS-Grid

Grüße

Kommentar von Suboptimierer ,

Du kannst ein Dummy-Makro aufzeichnen und den Code dort hinein kopieren.

Anschließend erzeugst du im Tabellenblatt eine Schaltfläche und weist das Makro zu.

Oder du erstellst direkt den Button (Formularsteuerelement) und wählst im Makrozuweisungsdialog "Neu".

Kommentar von Sascha19833891 ,

Habe es mit dem Makrorecorder gamacht und es funktioniert ganz gut bis auf di Sache, dass, wenn ich den Namen des Workbooks ändere, kommt subscription range error:

Sub Macro1()
'
' Macro1 Macro
'

'
Windows("Book2").Activate
Range("A3").Select
Selection.Copy
Windows("Book3").Activate
Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("Book2").Activate
Range("C5").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Book3").Activate
Range("C5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Book 2 und 3 sollten änderbar sein, da gibts immer Probleme dann...Könnte ich
Windows("Book3").Activate, in das die Werte eingefügt werden, ändern durch ThisWorkbook.Activate ?

Grüße

Keine passende Antwort gefunden?

Fragen Sie die Community