Kopieren und einfügen kompliziert

Hallo zusammen,

vielleicht kann mir jemand bei folgendem Fall helfen:

ich möchte auf Blatt 2 per Mausklick eine Zelle markieren.
Nun soll er automatisch den Zellinhalt kopieren, zurückspringen auf Blatt 1 und den kopierten Wert in Zelle D4 einfügen.

Auf deutsch, ich will einen Preis in einer Tabell anklicken, den er dann auf einem anderen Blatt einfügt.

Das aufgezeichnete Makro sieht so aus:

Sub cp()

’ cp Makro
’ copynpast

Range(„C6“).Select
Selection.Copy
Sheets(„Tabelle1“).Select
Range(„D4“).Select
ActiveSheet.Paste
End Sub

Jetzt muß ich „nur“ noch die Automatisierung hinbekommen wie
„Selection.Copy bei mouse down“ oder sowas. *igitt*

Kann jemand helfen?

Gruß und danke

Rolf

Hallo Rolf

Das aufgezeichnete Makro sieht so aus:

Range(„C6“).Select
Selection.Copy
Sheets(„Tabelle1“).Select
Range(„D4“).Select
ActiveSheet.Paste

SELECT ist immer schlechter Stil!
Schreibe in Tabelle2 (nicht in ein Modul) folgendes Makro

Option Explicit
Dim wert
Private Sub Worksheet\_SelectionChange(ByVal Target As Range)
wert = Target.Value
If wert \> "" Then Worksheets("Tabelle1").Range("D4") = wert
End Sub

Gruss
Erich

Moin Erich,

das klappt prima. Vielen Dank für Deine schnelle Hilfe.
Auf sowas komme ich nicht.

Kannst Du mir noch verraten, wie ich anschließend wieder
in „Tabelle1, Zelle D4“ gelange?

Wenn ich
Sheets(„Tabelle1“).Select
Range(„D4“).Select
dranhänge, gibt’s natürlich wieder ne Fehlermeldung :frowning:

Gruß

Rolf

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

Hallo Rolf

Kannst Du mir noch verraten, wie ich anschließend wieder
in „Tabelle1, Zelle D4“ gelange?
Wenn ich
Sheets(„Tabelle1“).Select
Range(„D4“).Select
dranhänge, gibt’s natürlich wieder ne Fehlermeldung :frowning:

Ja, weil das Makro steht in Tabelle2 und nicht in einem Modul. Deshalb musst du die Rückkehr ungefähr so machen:
In Tabelle 2 ergänzen:

Fall1: Geht nur auf Blatt1 zurück, falls Zelle mit Wert angeklickt in Tabelle2

Option Explicit
Dim wert
Private Sub Worksheet\_SelectionChange(ByVal Target As Range)
wert = Target.Value
If wert \> "" Then
 Worksheets("Tabelle1").Range("D4") = wert
 NachHause
End If
End Sub

Fall2: Geht nach Klick in Tabelle2 immer auf Blatt1:

Option Explicit
Dim wert
Private Sub Worksheet\_SelectionChange(ByVal Target As Range)
wert = Target.Value
If wert \> "" Then Worksheets("Tabelle1").Range("D4") = wert
NachHause
End Sub

und das NachHause-Makro in ein MODUL schreiben:

Sub NachHause()
Application.Worksheets("Tabelle1").Activate
Range("D4").Select
End Sub

Das Select(„D4“) macht Sinn, falls du genau an dieser Stelle weiter arbeiten willst. Wenn jedoch der Cursor sowieso dort stand beim Start, brauchst du das nicht. Beim Blattwechsel bleibt der Cursor im „verlassenen“ Blatt an Ort stehen.

Gruss
Erich

Hallo Erich,
„Nach Hause-Makro“ ist gut :smile:
Jetzt klappt’s bestens. *freu*

Vielen Dank nochmal für die Hilfe

Gruß und schönen Tag noch

Rolf

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