Auf 'Knopfdruck' einen Zelleninhalt kopieren

Hallo liebe Experten,
ich bin ein Makro-Laie, benötige aber trotzdem unbedingt eine Funktion die folgendes ermöglicht:

  • Eine bestimmte Aktion (Knopfdruck, Aufruf eines Tabellen-Tabs, etc.) startet eine einmalige Funktion.

  • Diese Funktion kopiert den Zelleninhalt aus einer ganz bestimmten Zelle aus einer anderen Excel-Datei in meine Excel-Datei in eine vordefinierte Zelle.

  • Dieser Vorgang wird für >20 Zellen auf einmal durchgeführt.

  • Die kopierten Einträge bleiben wie zum Kopierzeitpunkt auch wenn sich die Daten in der Ausgangsdatei ändern.

Könnt ihr mir helfen? Ich würde mich sehr freuen.
Vielen Dank und schönen Gruß
D.K.

Hallo,

Sub Kopieren_II()

’ Tastenkombination: Strg+Umschalt+C

Workbooks.Open Filename:= „C:\Dokumente und Einstellungen\Alexander\Eigene Dateien\Henkel.xls“
'Dieser Befehl öffnet eine Arbeitsmappe
Range(„A1:B21“).Select
'Auswahl der Zellen
Selection.Copy
'Auswahl Kopieren
Windows(„Mappe1“).Activate
'Auswahl des aktiven Blatts
Range(„D6“).Select
'Auswahl der Zielzelle
ActiveSheet.Paste
'Einfügen der Daten

End Sub

Wenn ich dich richtig verstanden habe, müsste dieses Makro hinhauen.

Gruß Alex

Hallo Alex,
vielen Dank für die schnelle Antwort.
Kopieren macht er ja schon mal, aber… :smile:
Mein Debugger stolpert noch über folgenden Bereich:

Windows(„Mappe1“).Activate
'Auswahl des aktiven Blatts

Ich nehme an damit ist der Tab in meiner Zieldatei gemeint, damit das Makro weiß auf welchem Blatt es das kopierte ablegen soll. Ich hab schon versucht den gesamten Pfad dort anzuwenden. Ging leider nicht. Hast du mir noch einen Tip, was das Makro an dieser Stelle braucht?

Vielen Dank und Gruß
D.K.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

das Makro braucht an der Stelle statt „Mappe1“ den Namen der Datei, in die eingefügt werden soll. Ansonsten kann es sich den Focus nicht zurückhoen.
Allerdings seh ich nicht so den Zweck darin ein Makro nur eine bestimmte Range einer anderen Datei zu holen.
Evtl wäre es doch einfacher da einfach mit den Verweisen zu arbeiten - also ohne VBA.
Einfach mal in das Ziel ein „=“ eintragen und dann auf die andere Mappe wechseln und die Quellzelle eintragen.
Beim neu öffnen wird dann gefragt, ob die Daten aktualisiert werden sollen…
wäre m.E. nach wesentlich unkomplizierter.

Ansonsten würde ich eigentlich eher mit
inhalt = Range(„A1“).Value
bzw
Range(„A1“).Value = inhalt
arbeiten da so Formatierungen nicht überschrieben werden und ausserdem der Inhalt der Zwischenablage des Nutzers erhalten bleibt.

Hallo,
danke für deine Mühe.
Die „=“ Variante kenne ich.
Doch ich will einen Datensatz zu einem bestimmten Zeitpunkt rüberholen und in dem Ziel-Dokument speichern. Bei der „=“ Variante würden sich die Werte im Zieldokument ja auch ändern wenn sich das Quelldokument ändert. Ich denke das geht (leider) nur über ein Makro, oder?
Danke für den Value-Tip.
Gruß
D.K.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

moin moin :wink:

danke für deine Mühe.
Die „=“ Variante kenne ich.
Doch ich will einen Datensatz zu einem bestimmten Zeitpunkt
rüberholen und in dem Ziel-Dokument speichern. Bei der „=“
Variante würden sich die Werte im Zieldokument ja auch ändern
wenn sich das Quelldokument ändert.

nicht zwingend…
nachdem Du ja ohnehin mit einem Makro arbeitest kannst Du Dir so doch auch helfen…
Du holst die Daten „immer“ aus der anderen Mappe - das tust Du mit dem „= Weg“.
Mit einem Makro verschiebst Du die abgeholten Werte zu Deinem Lieblingszeitpunkt - und nur die Werte in einen statischen Bereich.
Der Vorteil liegt dabei auf der Hand: Wenn die Daten nicht aktualisiert werden können (multiuser netzwerkzugriff) stehen immernoch die alten Werte drin und Dein Makro läuft nicht ins leere wenn es versucht eine nicht existente Datei zu öffnen.
Ich find Makros, die mit mehreren Dateien spielen nämlich äusserst unschön und nur in Ausnahmefällen angebracht.

Ich denke das geht
(leider) nur über ein Makro, oder?

ja, dann wohl schon…

Danke für den Value-Tip.

np - ich hoffe Du kannst ihn nutzen :smile:

Hallo,
absolut heldenhafte Antwort…vielen dank.
Kannst du mir vielleicht noch sagen wie ich das tolle Makro von Alex umschreiben kann? (was muß ich beachten, wenn ich innerhalb einer Datei kopiere?)
Dein Tip war jedenfalls Gold wert. Danke
D.K.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

absolut heldenhafte Antwort…vielen dank.

*grins* np :wink:

Kannst du mir vielleicht noch sagen wie ich das tolle Makro
von Alex umschreiben kann? (was muß ich beachten, wenn ich
innerhalb einer Datei kopiere?)

im Prinzip musst Du nur beachten, dass Du die Werte auch wirklich kopierst und nicht die Formeln…

Wie Du das machst…
Fang am besten neu an und nimm nicht das Makro von Alex…
Lass Dir die Visual-Basic Toolbar anzeigen falls noch nicht da (Ansicht -> Symbolleisten -> Visual Basic)
anschliessend klickst Du auf den runden Kringel - damit startet der Aufzeichnungsmodus. Das Symbol wird zum Viereck.
Dann nimmst Du die ganzen Befehlsfolgen vor.
Du markierst den Quellbereich, kopierst ihn in die Zwischenablage, markierst dann den Zielbereich bzw dessen erste Zelle…
dann auf
Bearbeiten -> Inhalte einfügen… -> Werte -> OK
dann klickst Du auf das Kästchen. Erstellst Deinen Button und verlinkst das neue Makro darauf - das ist der einfachste weg.
Alles andere wäre ein wenig komplizierter weil Du dann mit einer for-schleife arbeiten müsstest…

schau Dir am besten danach mal den VBA Code an und versuch nachzuverfolgen was welche Aktion sein könnte - so lernst Du am schnellsten (imho)…

gruss
Munich