Makro - bestimmten Spaltewert der aktiven Zeile kopieren und einfügen

a535394

Newbie
Registriert
März 2018
Beiträge
2
Hallo zusammen,

ich brauche ein Makro, mit dem man den Spalten-Inhalt (ggf. von mehreren Spalten) der aktiven Zeile von Tabellenblatt B in bestimmte Zellen des Tabellenblatts A kopieren kann.
Ich habe einen Code aufgenommen und angepasst - leider erfolglos:

HTML:
Sub Makro4()
'
' Makro4 Makro
'

'
      Range(Cells(ActiveCell.Row, 8)).Select
    Selection.Copy
    Sheets("Deckblatt Management Summary").Select
    Range("E9:F9").Select
    ActiveSheet.Paste
End Sub

Wie muss der Code aussehen?

Tabellenblatt A (=Deckblatt Management Summary), in den die Werte kopiert werden sollen, ist geschützt und soll auch nach dem Copy-Paste-Vorgang geschützt werden.
Wie kann der Blattschutz des Tabellenblatts A im Code aufgehoben und wieder gesetzt werden.
Kann jemand weiterhelfen?

Vielen Dank im Voraus für eure Hilfe! :)
Ergänzung ()

Sub DatenExportieren()
'
' DatenExportieren Makro
'

'
ActiveSheet.Unprotect
Sheets("Masterliste").Select
Range(Cells(ActiveCell.Row, 8)).Select
Selection.Copy
Sheets("Deckblatt Management Summar (2").Select
Range("E9:H9").Select
ActiveSheet.Paste
Sheets("Masterliste").Select
Range(Cells(ActiveCell.Row, 10)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Deckblatt Management Summar (2").Select
Range("E11:H11").Select
ActiveSheet.Paste
Sheets("Masterliste").Select
Range(Cells(ActiveCell.Row, 9)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Deckblatt Management Summar (2").Select
Range("E13:H13").Select
ActiveSheet.Paste
Sheets("Masterliste").Select
Range(Cells(ActiveCell.Row, 1)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Deckblatt Management Summar (2").Select
Range("E15:H15").Select
ActiveSheet.Paste
Sheets("Masterliste").Select
Range(Cells(ActiveCell.Row, 2)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Deckblatt Management Summar (2").Select
Range("E17:H17").Select
ActiveSheet.Paste
Sheets("Masterliste").Select
Range(Cells(ActiveCell.Row, 7)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Deckblatt Management Summar (2").Select
Range("E19:H19").Select
ActiveSheet.Paste
Sheets("Masterliste").Select
Range(Cells(ActiveCell.Row, 5)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Deckblatt Management Summar (2").Select
Range("E21:H21").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub


Habe erneut ein Makro aufgezeichnet und manuell angepasst. Jedoch stimmt etwas in der rot markierten Zeile nicht. Wie muss diese lauten, damit die Spalte x der aktiven Zeile kopiert wird?
 
Schau mal.

Range(Cells(ActiveCell.Row, 8)).Select (<- Komplette Spalte markiert.)

Range("E9:F9").Select (E9 bis F9 ??)
ActiveSheet.Paste <- Kann nicht gehen.

Ist das Gleiche, als wenn Du manuell eine Spalte markierst, kopierst, dann auf einem anderen Blatt nur ein paar Zellen auswählst und einfügen willst. Excel meldet dann: Geht nicht, da der kopierte- und der einfügen Bereich unterschiedliche Größen haben.
Du kannst Spalten nach Spalten kopieren oder Zelle nach Zelle. Aber nicht Spalte nach Zellbereich.

Schau mal die hier nach.
 
Zuletzt bearbeitet:
Sun_set_1 schrieb:
Schau mal.

Range(Cells(ActiveCell.Row, 8)).Select (<- Komplette Spalte markiert.)

Range("E9:F9").Select (E9 bis F9 ??)
ActiveSheet.Paste <- Kann nicht gehen.

Ist das Gleiche, als wenn Du manuell eine Spalte markierst, kopierst, dann auf einem anderen Blatt nur ein paar Zellen auswählst und einfügen willst. Excel meldet dann: Geht nicht, da der kopierte- und der einfügen Bereich unterschiedliche Größen haben.
Du kannst Spalten nach Spalten kopieren oder Zelle nach Zelle. Aber nicht Spalte nach Zellbereich.

Schau mal die hier nach.

Hallo Sun_set_1,

vielen Dank für deine Antwort! Ich habe das Problem jetzt verstanden.
Tabellenblatt B ist ein Abzug aus einem System mit mehreren hunderten Zeilen. Ich dachte, dass es iwie möglich wäre bspw. in die Zeile 6 zu klicken und mit Hilfe eines Buttons die Daten in das andere Tabellenblatt zu übertragen. Mit Daten meine ich eben: Hx wobei x die aktive Zeilennummer sein soll.
Ist das so grundsätzlich nicht möglich?
Würde bei "lastRow" nicht die letzte befüllte Zeile kopiert werden?
Ich hoffe, dass ich mich verständlich ausdrücken konnte...
Ergänzung ()

siehe auch:

http:// www.office-loesung.de/p/viewtopic.php?f=166&t=760625
http:// www.office-fragen.de/index.php/topic,54704.0.html


bitte das Leerzeichen zwischen "/" und "www"entfernen, falls ihr die Links nutzen wollt.
 
Sollte Range(Cells(ActiveCell.Row, 8)).Select nicht eigentlich nur eine Zelle markieren? Und zwar in Spalte H? Um die gesamte Zeile zu markieren nimmst du am Besten Rows(ActiveCell.Row).Select. Ob dir das allerdings weiterhilft kann ich nicht sagen, habe leider keine Zeit mir alles durchzulesen.
 
Zurück
Oben