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

Forumthread: Durch kopieren werden Makros deaktiviert

Durch kopieren werden Makros deaktiviert
21.02.2017 19:17:46
Thomas
Hallo Miteinander,
mir ist ein Problem untergekommen, zu dem ich werder die passenden Beiträge, noch eine brauchbrae Antwort gefunden habe.
Ich habe ein paar Makros in meinem Arbeitsblatt, die alle wunderbar funktionieren (nichts all zu kompliziertes). Da ich aber noch am Testen bin öffne und schließe ich die Datei recht oft, und da ich für jeden meiner Kollegen diese Datei anlegen soll, muss ich sie auch kopieren und verschieben können.
Jetzt kommt das Problem: Zeitweise, wenn ich die Datei kopiert, verschoben etc. habe, werden manche Makros von " Makro " auf " 'Datei.xslm'!Makro.Makro " umbenannt(?), wodurch, wenn ich dann diese Makro dann ausführen will kommt: Das Makro '....' kann nicht ausgeführt werden. Das Makro ist möglicherweise in dieser Arbeitsmappe nicht verfügbar, oder alle Makros wurden deaktiviert.
Das ist auch schon im "Original" vorgekommen, wo ich (meines erachtens) nichts verändert habe.
Falls jemand eine Idee hat was das soll und wie ich das verhindern kann, würd ich mich echt freuen.
Danke! :)
Grüße
Thomas
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Durch kopieren werden Makros deaktiviert
21.02.2017 19:50:47
onur
Hi,
Dein code bzw die datei wären hilfreich.
Gruß
Onur
AW: Durch kopieren werden Makros deaktiviert
22.02.2017 09:05:01
Thomas
Natürlich. Ich hatte das gestern zuhause geschrieben, der Code ist in der Arbeit.
Hier ist er.
Momentan gibt es ein Problem mit der Zeile
Set b = ActiveSheet.Buttons(Application.Caller)
Die ersten zwei Subs sind ein Code die ich Online gefunden habe, da ich nicht frei Programmieren kann, sondern nur anpassen und zusammenbasteln.
Sub PartRow()
' B:V auf höhe des Buttons
Dim b As Object, RowNumber As Integer
Set b = ActiveSheet.Buttons(Application.Caller)
With b.TopLeftCell
RowNumber = .Row
End With
Dim CopyRange As String
Let CopyRange = "B" & RowNumber & ":" & "V" & RowNumber
Range(CopyRange).Select
End Sub

Sub FullRow()
' B:W auf höhe des Buttons
Dim b As Object, RowNumber As Integer
Set b = ActiveSheet.Buttons(Application.Caller)
With b.TopLeftCell
RowNumber = .Row
End With
Dim CopyRange As String
Let CopyRange = "B" & RowNumber & ":" & "W" & RowNumber
Range(CopyRange).Select
End Sub

Sub Fertig()
Sheets("Abgeschlossen").Select
Range("3:3").Select
Selection.Insert Shift:=xlDown
Sheets("in Arbeit").Select
Call PartRow
Selection.Copy
Sheets("Abgeschlossen").Select
Range("B3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("V3").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent6
.TintAndShade = 0.399975585192419
.PatternTintAndShade = 0
End With
Sheets("in Arbeit").Select
Call FullRow
Selection.Delete Shift:=xlUp
Range("B34:W34").Select
Selection.Copy
Range("B35").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("A1").Select
End Sub
Grüße
Thomas
Anzeige
AW: Durch kopieren werden Makros deaktiviert
22.02.2017 16:57:57
Thomas
Ok, noch ein kleines Update:
Es läuft momentan alles wieder wie es sollte (hab die Quelldatei kopiert).
Wie kann ich in zukunft verhindern, dass meine Makros von "Fertig" auf "'Projektliste TSR.xlsm'!Fertig.Fertig" geändert werden?
(Wenn ich bei den buttons "Makro zuweisen" klicke, steht dann trotzdem "'Projektliste TSR.xlsm'!Fertig" , aber es funktioniert.)
Grüße
Thomas
Anzeige
AW: Durch kopieren werden Makros deaktiviert
22.02.2017 17:12:21
onur
Hi Thomas,
Ich würde den code für buttons nur in ein modul statt in den blattcode schreiben und von da aus das makro (ebenso im modul) aufrufen .Die makros kannst du dann auch in jedem blatt verwenden.

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Makros in Excel: Probleme bei der Ausführung und deren Lösungen


Schritt-für-Schritt-Anleitung

  1. Makros aktivieren: Stelle sicher, dass die Makros in Excel aktiviert sind. Gehe zu Datei > Optionen > Trustcenter > Einstellungen für das Trustcenter > Einstellungen für Makros und aktiviere die Option "Alle Makros aktivieren".

  2. Datei speichern: Speichere deine Arbeitsmappe als .xlsm (Excel-Arbeitsmappe mit Makros), um sicherzustellen, dass die Makros nicht verloren gehen.

  3. Makros zuweisen: Wenn du Schaltflächen verwendest, um Makros auszuführen, stelle sicher, dass du die Makros korrekt zugewiesen hast. Klicke mit der rechten Maustaste auf die Schaltfläche und wähle "Makro zuweisen". Achte darauf, dass der Name des Makros korrekt ist.

  4. Überprüfen der Makros: Wenn du die Datei kopierst, überprüfe die Makros in der neuen Datei. Du kannst dies tun, indem du Alt + F11 drückst, um den VBA-Editor zu öffnen und sicherzustellen, dass alle Makros vorhanden sind.

  5. Testen der Makros: Führe die Makros nach dem Kopieren erneut aus, um sicherzustellen, dass sie korrekt funktionieren.


Häufige Fehler und Lösungen

  • Das Makro kann nicht ausgeführt werden: Wenn du die Fehlermeldung erhältst, dass das Makro in dieser Arbeitsmappe nicht verfügbar ist, könnte es daran liegen, dass das Makro nicht korrekt zugewiesen wurde. Überprüfe die Zuweisung in den Schaltflächen.

  • Die Makros in diesem Projekt sind deaktiviert: Dies geschieht oft, wenn die Makros nicht aktiviert sind. Gehe die oben genannten Schritte zur Aktivierung durch.

  • Makro in Arbeitsmappe nicht verfügbar: Wenn du eine Datei kopierst, kann es sein, dass die Verknüpfungen zu den Makros verloren gehen. Stelle sicher, dass die Makros im Modul und nicht im Blattcode gespeichert sind.


Alternative Methoden

Eine Möglichkeit, Probleme mit Makros zu vermeiden, besteht darin, die Makros in ein Modul zu verschieben. Hier ist, wie du das machst:

  1. Öffne den VBA-Editor mit Alt + F11.
  2. Rechtsklicke auf "VBAProject (dein Arbeitsmappenname)".
  3. Wähle Einfügen > Modul.
  4. Kopiere deinen Makro-Code in das neue Modul.
  5. Weise die Schaltflächen in deiner Arbeitsmappe auf das neue Modul-Makro zu.

Durch die Verwendung eines Moduls wird sichergestellt, dass deine Makros leicht zugänglich sind, unabhängig von der Arbeitsblattstruktur.


Praktische Beispiele

Hier sind einige praktische Beispiele für Makros, die du verwenden kannst:

Sub BeispielMakro()
    MsgBox "Hallo, dies ist ein Beispiel-Makro!"
End Sub

Du kannst dieses Makro einer Schaltfläche zuweisen, um es auszuführen. Stelle sicher, dass die Schaltfläche korrekt konfiguriert ist, um zu verhindern, dass du die Fehlermeldung erhältst, dass das Makro nicht ausgeführt werden kann.


Tipps für Profis

  • Verwende Fehlermeldungen: Implementiere Fehlerbehandlungsroutinen in deinen Makros, um besser verstehen zu können, warum ein Makro möglicherweise nicht ausgeführt wird.

  • Dokumentation: Halte deinen Code gut dokumentiert, damit du und andere Benutzer verstehen, wie die Makros funktionieren.

  • Sichere deine Arbeit: Erstelle regelmäßige Backups deiner Arbeitsmappen, um Datenverlust zu vermeiden.


FAQ: Häufige Fragen

1. Warum funktionieren meine Makros nach dem Kopieren nicht mehr?
Das kann passieren, wenn die Zuweisungen der Makros verloren gehen. Stelle sicher, dass du die Makros in ein Modul verschoben hast und nicht im Blattcode.

2. Was bedeutet "Die Makros in diesem Projekt sind deaktiviert"?
Diese Meldung erscheint, wenn die Makros in den Excel-Einstellungen deaktiviert sind. Du musst die Makros aktivieren, um sie ausführen zu können.

3. Wie kann ich sicherstellen, dass meine Makros nicht verändert werden?
Du kannst den Code in ein Modul verschieben und sicherstellen, dass niemand andere Makros oder Einstellungen in der Datei ändert.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige