Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Makro funktioniert nach Beenden von Excel nicht

Makro funktioniert nach Beenden von Excel nicht
07.09.2019 18:23:57
Excel
Hallo zusammen,
ich habe jetzt mehrfach erfolgreich ein Makro erstellt welches mir einen Audittrail bzw. eine Änderungsnachverfolgung gibt. Ich war ziemlich froh, dass es funktioniert hatte. Jedoch funktioniert es nach dem Beenden von Excel (gespeichert wurde) nicht mehr.
Schreibe ich das Makro 1:1 neu ab oder kopiere es in eine neue Mappe, funktioniert es wieder. Nach dem erneuten Schließen der Datei kommt wieder eine Fehlermeldung. Jetzt bin ich echt ratlos.
Ich verwende Excel auf macOS. Jedoch passiert das gleiche bei Windows. Habe ich bereits probiert.
Leider habe ich Probleme mit dem Hochladen der Datei. Vielleicht kann mir jemand ohne die Datei eine gute Lösung für mein Problem nennen bzw. mit erklären, wie ich hier meine Datei hochladen kann.
Viele Grüße, Maik
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro funktioniert nach Beenden von Excel nicht
07.09.2019 18:30:09
Excel
Hallo Maik,
dazu kann ich nichts schreiben, was wohl daran liegt das ich nicht auf fremde Rechner schaue und damit das Makro nicht sehe.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
Anzeige
dann halt die Fresse
07.09.2019 19:03:48
WF
.
Danke für Deine VBA Lösung
07.09.2019 19:18:47
Hajo_Zi
die war ja gewünscht.
Gruß Hajo
Lern endlich lesen...
07.09.2019 23:35:41
{Boris}
Hi Hajo,
...er schrieb:
Leider habe ich Probleme mit dem Hochladen der Datei. Vielleicht kann mir jemand [.......] erklären, wie ich hier meine Datei hochladen kann
Warum schreibst Du jedesmal solch einen arroganten Bullshit statt konstruktiv zu antworten?
Da Max sich hier auch eingebracht hat, weiß ich den Frager in besten Händen.
VG Boris
Anzeige
AW: Makro funktioniert nach Beenden von Excel nicht
09.09.2019 17:17:54
Excel
Hallo zusammen,
vielen Dank für die schnellen Antworten. Ich habe es wieder probiert it dem Hochladen. Ich habe es auch gestern schon genauso wie beschrieben probiert und finde die Datei auch auf meinem Schreibtisch. Leider ist diese grau und kann nicht ausgewählt werden. Hat dafür noch jemand eine Lösung?
Ich würde jetzt mal noch den Code hier rein kopieren. Vllt hilft auch das schon.
Dim AlterWert
Private Sub Worksheet_change(ByVal Target As Range)
If Target.Value  AlterWert Then
With Sheets("Log").Range("A1000").End(xlUp)
.Offset(1, 0).Value = Format(Now, "dd.mm.yyyy hh:mm:ss")
.Offset(1, 1).Value = Application.UserName
.Offset(1, 2).Value = Target.Address
.Offset(1, 3).Value = AlterWert
.Offset(1, 4).Value = Target.Value
End With
End If
End Sub

Private Sub Worksheet_selectionchange(ByVal Target As Range)
AlterWert = Target.Value
End Sub
Vielen Dank schon mal und viele Grüße,
Maik der ahnungslose ;)
Anzeige
AW: Makro funktioniert nach Beenden von Excel nicht
09.09.2019 17:55:42
Excel
Hallo Maik,
in meiner Datei ist das Makro nach Neu öffnen noch drin.
Zu Deiner Datei habe ich schon was geschrieben.
Bei Change ist AlterWert nicht Vorhanden.
Da unter Option ExPlicit die Variable nicht definiert ist.
Gruß Hajo
Anzeige
Nicht nachvollziehbar...
09.09.2019 17:55:44
Boris
Hi,
...der Code funktioniert einwandfrei. Und ich kann auch so viel speichern und schließen wie ich will.
Was gibt es denn genau für eine Fehlermeldung?
VG, Boris
AW: Nicht nachvollziehbar...
09.09.2019 18:03:17
Maik
Hi,
ich habe das Sheet "Log" mit folgendem Code geschützt:
Sub protect_log()
Sheets("Log").Protect Password:="Log", UserInterfaceOnly:=True
End Sub
Meines Wissens nach, müsste es dem Makro das Schreiben erlauben.
Die Fehlermeldung besagt, dass das zu ändernde Blatt Schreibgeschützt ist. (Was ja eigentlich nicht sein sollte und auch beim ersten Mal funktioniert hat.)
Danke für die schnelle Rückmeldung.
Viele Grüße,
Maik
Anzeige
Wann schützt Du denn das Blatt?
09.09.2019 23:02:42
Boris
Hi,
Du postest eine "normale" Sub. Versuch doch mal, den Code in das Klassenmodul "DieseArbeitsmappe" zu integrieren:
Private Sub Workbook_Open()
Sheets("Log").Protect Password:="Log", UserInterfaceOnly:=True
End Sub
VG, Boris
AW: Makro funktioniert nach Beenden von Excel nicht
07.09.2019 18:50:31
Excel
Hallo Maik,
unter dem Beitragsfenster findest du den Button "Zum File-Upload". Auf dieser Seite gibst du deine Maiadresse und dein Kennwort ein. Das Häkchen bei "Ich bin mit einer Speicherung meiner personenbezogenen Daten entsprechend der Datenschutzerkärung einverstanden." setzen und auf "Durchsuchen" klicken. Deine Datei im sich öffnenden Dialog anklicken dann der "OK" Button. Jetzt "Datei zum Server" klicken. Eine weitere Seite öffnet sich in dem du den Link zu der hochgeladenen Datei findest. Diesen Link kopieren und in deinen Beitrag einfügen.
Gruß
Nepumuk
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Makro funktioniert nach Beenden von Excel nicht


Schritt-für-Schritt-Anleitung

  1. Überprüfe den Code: Stelle sicher, dass alle Variablen korrekt deklariert sind. Beispielsweise sollte AlterWert vor der Verwendung in deinem Makro definiert werden. Füge am Anfang deines Codes die Zeile Dim AlterWert hinzu.

  2. Makros aktivieren: Achte darauf, dass die Makros in deiner Excel-Datei aktiviert sind. Gehe zu Datei > Optionen > Trust Center > Einstellungen für das Trust Center > Makroeinstellungen, und stelle sicher, dass die Ausführung von Makros erlaubt ist.

  3. Blattschutz prüfen: Wenn das Makro mit einem geschützten Blatt arbeitet, musst du sicherstellen, dass der Schutz richtig konfiguriert ist. Das Makro sollte in der Lage sein, den Schutz aufzuheben, bevor es Änderungen vornimmt.

  4. Speichern der Datei: Speichere die Datei im richtigen Format. Excel-Makros funktionieren nur in den Formaten .xlsm oder .xlsb. Stelle sicher, dass deine Datei nicht im .xlsx-Format gespeichert ist.

  5. Testen nach dem Beenden: Schließe Excel nach dem Speichern und öffne die Datei erneut. Teste, ob das Makro jetzt funktioniert.


Häufige Fehler und Lösungen

  • Fehlermeldung "Das Makro kann nicht ausgeführt werden": Dies kann passieren, wenn die Datei nicht im richtigen Format gespeichert ist oder wenn Makros deaktiviert sind. Stelle sicher, dass du die Datei im .xlsm-Format speicherst und dass Makros aktiviert sind.

  • Makro funktioniert nicht mehr nach dem Schließen von Excel: Dies kann auf einen Fehler im Code oder auf einen geschützten Arbeitsblattbereich zurückzuführen sein. Überprüfe, ob der Schutz des Blattes korrekt konfiguriert ist, wie oben beschrieben.

  • Die Fehlermeldung besagt, dass das zu ändernde Blatt schreibgeschützt ist: Wenn du ein Arbeitsblatt schützt, stelle sicher, dass das Makro über die erforderlichen Berechtigungen verfügt, um Änderungen vorzunehmen.


Alternative Methoden

  • VBA Code in das Klassenmodul "DieseArbeitsmappe" integrieren: Du kannst den Schutz des Blattes direkt im Klassenmodul "DieseArbeitsmappe" steuern. Füge den folgenden Code hinzu, um das Blatt beim Öffnen der Datei zu schützen:

    Private Sub Workbook_Open()
        Sheets("Log").Protect Password:="Log", UserInterfaceOnly:=True
    End Sub
  • Excel VBA verwenden, um den Windows-Benutzernamen auszulesen: Du kannst den Windows-Benutzernamen mit folgendem Code in eine Zelle schreiben:

    Sheets("Log").Range("B1").Value = Environ("USERNAME")

Praktische Beispiele

Hier ist ein Beispiel für ein einfaches Makro, das eine Änderungsnachverfolgung implementiert:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Value <> AlterWert Then
        With Sheets("Log").Range("A1000").End(xlUp)
            .Offset(1, 0).Value = Format(Now, "dd.mm.yyyy hh:mm:ss")
            .Offset(1, 1).Value = Application.UserName
            .Offset(1, 2).Value = Target.Address
            .Offset(1, 3).Value = AlterWert
            .Offset(1, 4).Value = Target.Value
        End With
    End If
End Sub

Dieses Makro speichert Änderungen in einem "Log"-Blatt, einschließlich des Benutzernamens und der Adresse der geänderten Zelle.


Tipps für Profis

  • Verwendung von Option Explicit: Stelle sicher, dass du Option Explicit am Anfang deiner Module verwendest. Dies zwingt dich, alle Variablen zu deklarieren und hilft, Fehler zu vermeiden.

  • Fehlerbehandlung einbauen: Implementiere Fehlerbehandlungsroutinen, um unerwartete Fehler zu erkennen und zu beheben. Beispiel:

    On Error GoTo ErrorHandler
    ' Dein Code hier
    Exit Sub
    ErrorHandler:
    MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
  • Regelmäßige Backups: Erstelle regelmäßige Backups deiner Makros und Dateien, um Datenverlust zu vermeiden.


FAQ: Häufige Fragen

1. Warum funktioniert mein Makro nicht mehr nach dem Schließen von Excel?
Es kann sein, dass das Makro nicht korrekt gespeichert wurde oder dass Excel die Datei im falschen Format geöffnet hat. Stelle sicher, dass du die Datei im .xlsm-Format speicherst.

2. Wie kann ich den Windows-Benutzernamen in mein Makro einfügen?
Du kannst den Benutzernamen mit dem Befehl Environ("USERNAME") in eine Zelle deiner Wahl schreiben.

3. Was mache ich, wenn meine Datei grau ist und nicht ausgewählt werden kann?
Überprüfe die Dateiberechtigungen und stelle sicher, dass die Datei nicht schreibgeschützt oder von einem anderen Programm geöffnet ist.

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