VBA-Frage

Pascal, Basic und andere nicht aufgelistete
Antworten
Wolke
Beiträge: 18
Registriert: Di Aug 30, 2011 1:53 pm

VBA-Frage

Beitrag von Wolke » Fr Dez 14, 2018 2:44 pm

Ich möchte in Excel den Inhalt einer Zelle per Button in eine bestimmte Zelle (hier im Beispiel G12) auf einer bestimmten Mappe ("Zielmappe") kopieren.
Folgenden Code habe ich dafür probiert, bekomme jedoch immer eine Fehlermeldung:

Code: Alles auswählen

Sub kopieren()

    Selection.Copy
    Sheets("Zielmappe").Select
    cells(12, G). Select
    ActiveSheet.Paste

End Sub
Könnte mir da jemand helfen? Vielen Dank im Voraus.

EDIT nufan: Code-Tags

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: VBA-Frage

Beitrag von Xin » Fr Dez 14, 2018 3:06 pm

FAQ: Frage formulieren

"Eine Fehlermeldung" ist keine hilfreiche Problembeschreibung. :-)
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Wolke
Beiträge: 18
Registriert: Di Aug 30, 2011 1:53 pm

Re: VBA-Frage

Beitrag von Wolke » Fr Dez 14, 2018 8:44 pm

Entschuldige.
Die Fehlermeldung lautet:
"Laufzeitfehler 1004, Anwendungs- oder objektdefinierter Fehler"

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: VBA-Frage

Beitrag von cloidnerux » Sa Dez 15, 2018 11:35 am

Google sagt, dass das meist ein Fehler ist mit den Zugriffen, daher dein "ActiveSheet.Paste" bezieht sich evt auf das Sheet, auf dem dein Script gestartet ist und nicht deine "Zielmappe". Oder irgendwas ist Schreibgeschützt.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Wolke
Beiträge: 18
Registriert: Di Aug 30, 2011 1:53 pm

Re: VBA-Frage

Beitrag von Wolke » So Dez 16, 2018 7:29 am

Die Zielmappe wird bei der Ausführung des Codes aufgerufen, auch die jeweilige Zelle in der "Startmappe" wird kopiert (es erscheint der charakteristische Rahmen um die Zelle), nur der Inhalt nicht in die Zelle G12 geschrieben, sondern stattdessen taucht o.g. Fehlermeldung auf. Schreibgeschützt ist die Mappe auch nicht. :(
Es scheitert im Prinzip am Schreiben des Zelleninhalts in die Zelle G12 auf der Zielmappe.

nufan
Wiki-Moderator
Beiträge: 2557
Registriert: Sa Jul 05, 2008 3:21 pm

Re: VBA-Frage

Beitrag von nufan » So Dez 16, 2018 1:54 pm

Hallo Wolke!
Ich kann deinen Fehler bei mir reproduzieren, allerdings bin ich kein VBA-Experte.

Ich konnte aber eine funktionierende Variante über die "Makro aufzeichnen" Funktion erstellen:

Code: Alles auswählen

Sub kopieren()
    Selection.Copy
    Sheets("Zielmappe").Select
    Range("G12").Select
    ActiveSheet.Paste
End Sub
Der Unterschied liegt also in der Verwendung der "Range" Funktion anstelle von "Cells".

Wolke
Beiträge: 18
Registriert: Di Aug 30, 2011 1:53 pm

Re: VBA-Frage

Beitrag von Wolke » Mo Dez 17, 2018 6:40 am

Vielen Dank. Probiere ich gleich aus. :)

nufan
Wiki-Moderator
Beiträge: 2557
Registriert: Sa Jul 05, 2008 3:21 pm

Re: VBA-Frage

Beitrag von nufan » Mo Dez 17, 2018 4:15 pm

Ich habe mir deinen ursprünglichen Code nochmal angesehen. Das Problem am "Cells"-Aufruf ist, dass der Spaltenindex nicht unter Anführungszeichen gesetzt ist. So sieht der korrekte Aufruf aus:

Code: Alles auswählen

Cells(12, "G").Select

Wolke
Beiträge: 18
Registriert: Di Aug 30, 2011 1:53 pm

Re: VBA-Frage

Beitrag von Wolke » Mi Dez 19, 2018 1:53 pm

Dankeschön. Was mich hier wundert - zwei Codes, gleiche Funktion...?

nufan
Wiki-Moderator
Beiträge: 2557
Registriert: Sa Jul 05, 2008 3:21 pm

Re: VBA-Frage

Beitrag von nufan » Mi Dez 19, 2018 2:05 pm

Sie sind ähnlich, aber doch nicht gleich:
Cells usually reference a single cell at a time, while Range references a group of cells at once.
Quelle: https://www.makeuseof.com/tag/excel-cel ... tions-vba/

Antworten