Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Macrocode funktioniert über Befehlsschaltfläche nicht

Forumthread: Macrocode funktioniert über Befehlsschaltfläche nicht

Macrocode funktioniert über Befehlsschaltfläche nicht
03.08.2024 13:59:48
Lutz Mergen
Folgendes, per Makrorecorder aufgezeichnete Makro funktioniert:

Sub Test()


Sheets("Tabelle-1").Select
ActiveSheet.Unprotect
Range("AI2").Select
Selection.Copy
Range("AI5").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("AI2").Select
Application.CutCopyMode = False
Selection.ClearContents

End Sub


Der identische Code funktioiert über ein Befehlsschaltfläche nicht:

Private Sub CommandButton1_Click()


Sheets("Tabelle-1").Select
ActiveSheet.Unprotect
Range("AI2").Select
Selection.Copy
Range("AI5").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("AI2").Select
Application.CutCopyMode = False
Selection.ClearContents

End Sub


Ein Testlauf, direkt in VBA ausgeführt, führt zur Fehlermeldung "Laufzeitfehler 1004 - Anwendungs- oder objektorientierter Fehler".

Führe ich das Makro über die Befehlsschaltfläche aus, lautet die Fehlermeldung "Laufzeitfehler 1004 - die Select-Methode des Range-Objektes konnte nicht ausgeführt werden". Im Debug ist folgende Zeile gelb markiert:

Private Sub CommandButton1_Click()

...
Range("AI2").Select
...


Woran liegt es, was muss ich ändern?

Danke!
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Macrocode funktioniert über Befehlsschaltfläche nicht
03.08.2024 14:03:41
Lutz Mergen
Nachtrag:

das Makro wird ausgeführt, wenn das Tabellenblat-2 aktiv ist.

Di gelb markierte Zeile ist die Zeile 3.
AW: Macrocode funktioniert über Befehlsschaltfläche nicht
03.08.2024 14:44:13
Oppawinni
Versuch es vielleicht mal mit

Private Sub CommandButton1_Click()

Dim wks As Worksheet
Set wks = ThisWorkbook.Worksheets("Tabelle-1")
wks.Unprotect
wks.Range("AI5").FormulaR1C1 = wks.Range("AI2").FormulaR1C1
wks.Range("AI2").ClearContents
End Sub
Anzeige
AW: Macrocode funktioniert über Befehlsschaltfläche nicht
03.08.2024 14:53:00
Lutz Mergen
Sehr elegante Lösung. Sozusagen ferngesteuert von Tabelle-2 ohne in Tabelle-1 zu wechseln.

Danke!
AW: Macrocode funktioniert über Befehlsschaltfläche nicht
03.08.2024 14:57:14
Oppawinni
Alternativ, näher an deinem Code, aber wieder ohne den Select-Käse

Private Sub CommandButton1_Click()

With ThisWorkbook.Worksheets("Tabelle-1")
.Unprotect
.Range("AI2").Copy
.Range("AI5").PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
.Range("AI2").ClearContents
End With
End Sub
Anzeige
AW: Macrocode funktioniert über Befehlsschaltfläche nicht
03.08.2024 15:07:16
Lutz Mergen
Danke! Aber ich habe mich jetzt auf Deinen ersten Vorschlag eingeschossen.

Ich denke, folgender Eintrag bezieht sich nur auf das Kopieren einer Formel:

    wks.Range("AI5").FormulaR1C1 = wks.Range("AI2").FormulaR1C1


Wie lautet der Code denn, wenn ich einen Fixwert (Zahl) in AI5 eintragen möchte?
Anzeige
AW: wks.Range("AI5").value = 0+8+15 (owT)
03.08.2024 15:10:32
Oppawinni
wks.Range("AI5").value = 1, oder was auch immer für ein Wert
AW: Macrocode funktioniert über Befehlsschaltfläche nicht
03.08.2024 17:07:57
Uduuh
Hallo,
 wks.Range("AI5").Value = wks.Range("AI2").Value


Gruß aus'm Pott
Udo
AW: Macrocode funktioniert über Befehlsschaltfläche nicht
03.08.2024 14:14:11
daniel
Hi
Wenn sich Code in einem Tabellenblattmodul befindet, dann ist das Default-Tabellenblatt (also das Tabellenblatt, das angewendet wird wenn im Code keines angegeben ist) nicht das aktive Tabellenblatt, sondern das Tabellenblatt des Moduls, in dem sich der Code befindet.

Du musst dann vor jedem Range und Cells immer ActiveSheet schreiben:

ActiveSheet.Range("AI2").Select


Gruß Daniel

Anzeige
AW: Macrocode funktioniert über Befehlsschaltfläche nicht
03.08.2024 14:45:20
Lutz Mergen
Au Backe, da hätte ich eigentlich selbst drauf kommen sollen. Dummer Fehler!

Ich danke Dir!
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige