Feldname als Kopieranweisung nutzen

carstenn

Grünschnabel
Hallo zusammen,
ich hoffe, ich finde hier hilfe für mein problem:

ich habe eine ziemliche große excel tabelle mit diversen arbeitsblättern. In den Arbeitsblättern
befinden sich diverse "bausteine", die ich oft kopiere und dann in einem anderen arbeitsblatt einfüge.
ich brauche natürlich jedesmal andere bausteine. Für die lästige markier/kopier/einfüge arbeit
möchte ich mir ein makro basteln.
ich habe den einzelnen "bausteinen" feldnamen gegeben. die feldnamen sind in einer liste. wenn
ich einen feldnamen anklicke wird dieser in die Zelle "M5" geschrieben. mein makro soll nun das
feld, das in zelle "M5" benannt ist kopieren, in "Tabelle3" an das ende springen und dort einfügen.
dann markiere ich in der liste den nächsten "baustein" und starte das makro erneut.

Leider kopiert das makro immer wieder nur den ersten baustein (hier "vers4") auch wenn in zelle
"M5" jedesmal etwas anderes steht.

ich habe keine ahnung von VBA und zeichne makros nur auf. hier mein Code:

Visual Basic:
' sige Makro
'
' Tastenkombination: Strg+q
    Range("M5").Select
    Selection.Copy
    Application.Goto Reference:="vers4"
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Tabelle3").Select
    Range("F2").Select
    Selection.End(xlDown).Select
    ActiveCell.Offset(1, -4).Range("A1").Select
    ActiveSheet.Paste
    Sheets("Tabelle1").Select
    Range("A1").Select

End Sub

unter "Application.Goto Reference:="vers4" soll der jeweils aktuelle inhalt von M5 stehen. Hier bleibt aber
der Inhalt des ersten makrolaufes stehen.

wäre toll wenn mir jemand helfen könnte.

carstenn
 
Zuletzt bearbeitet von einem Moderator:
Sorry
Visual Basic:
'Sheet1 durch dein Sheet auswecheseln. 
Application.Goto (Sheet1.Range("M5").Value)

Das ganez davor kannst du löschen.
Visual Basic:
'das wird nicht gebraucht
    Range("M5").Select
    Selection.Copy

Das ganze sieht dann so aus um den Wert der in Sheet 1 in M5 definiert wurde in Spalte A von Sheet2 den Wert anzufügen
Visual Basic:
    Call Application.Goto(Sheet1.Range("M5").Value)
    Call Selection.Copy
    Call Sheet2.Paste(Sheet2.Cells(Rows.Count, "A").End(xlUp).Offset(1))
 
Toll, vielen Dank. Jetzt Klappt es.
Beim Makro aufzeichnen werden ja doch ne Menge Überflüssige Anweisungen geschrieben,
die man sich sparen kann wenn man die Befehle und Syntax kennt. Tu ich aber leider nicht.
Gut das man dann immer schlaue Leite im Netz findet. :D

Tschüss
Carsten
 
Ich kenn die Befehle auch nicht. Ohne Hilfedatei oder Webhilfe zu den Befehlen währe ich aufgeschmissen.
Der VBA-Editor von Excel hat auch den Schönen Vorteil, dass es eine Auswahl angibt *g*
 
Zurück