Excel AddIn Makro .. before close

Diskutiere und helfe bei Excel AddIn Makro .. before close im Bereich Microsoft Office im Windows Info bei einer Lösung; Hallo liebe Excel-Spezialisten, ich habe ein Problem: ich möchte gerne, dass bei bestimmten Dateien vor dem Schließen der Excel-Datei ein Makro... Dieses Thema im Forum "Microsoft Office" wurde erstellt von plarein, 20. August 2018.

  1. plarein
    plarein Gast

    Excel AddIn Makro .. before close


    Hallo liebe Excel-Spezialisten,

    ich habe ein Problem: ich möchte gerne, dass bei bestimmten Dateien vor dem Schließen der Excel-Datei ein Makro ausgeführt wird.

    Dazu habe ich das Makro geschrieben und unter Arbeitsmappe folgenden Code eingegeben:


    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If InStr(1, ActiveWorkbook.Name, "_", vbTextCompare) > 0 Then
    If ActiveWorkbook.Worksheets(1).Name = "Text1" And ActiveWorkbook.Worksheets(1).Range("B2").Value = "Text2" Then
    AllesString = Right(ActiveWorkbook.Name, 7)
    AllesString = Left(AllesString, 2)
    If IsNumeric(AllesString) Then
    If CInt(AllesString) > 17 Then "DasMakroDasLaufenSoll" ' erst ab 2018
    End If
    End If
    End If
    End Sub

    Die xlsm-Datei habe ich als xlam-Datei als AddIn in Excel eingebunden und aktiviert.


    Öffne ich nur 1 Datei, wird das o.g. Makro auch aufgerufen und korrekt abgearbeitet.

    Sind allerdings mehrere Dateien geöffnet, wird das Makro nur beim Schließen der letzten Datei angesprochen, nicht beim Schließen irgendeiner der geöffneten Dateien.

    Es ist unter Excel 2010 und Excel 2016 das gleiche Verhalten.


    Was mach ich verkehrt, dass nicht beim Schließen jeder Datei dieses Makro aus dem AddIn angesprochen wird??


    Wär super, wenn mir einer helfen kann.

    Gruß

    plarein
     
  2. plarein Win User

    Excel AddIn Makro .. before close

    Hallo Andreas,

    vielen Dank für Deine tolle Hilfe.

    Was lange währt, wird endlich gut - jetzt hab ich alles verstanden und mein Problem ist gelöst.

    Gruß
  3. Andreas Killer Win User

    Excel AddIn Makro .. before close

    Der Code gehört in "DieseArbeitsmappe", nur da funktioniert er.

    Andreas.
  4. Andreas Killer Win User

    Excel AddIn Makro .. before close

    Ist das falsche Event.

    Dein Workbook_BeforeClose wird nur dann ausgeführt wenn das AddIn geschlossen wird. ;-)

    Wenn Du wissen willst wann eine Datei innerhalb der Applikation geschlossen wird, dann musst Du Dich der Events selbiger bedienen.

    So nebenbei: Nach BeforeClose kommt kein Speichern mehr, wenn Du Änderungen in der Datei machen willst, dann nimm Before_Save. Und referenziere
    nicht auf ActiveWorkbook sondern übergibt Wb an Deine Routine.

    Es ist möglich das eine Mappe geschlossen wird die nicht aktiv ist...

    Andreas.

    Option Explicit
    
    Option Compare Text
    
    Dim WithEvents App As Application
    
    Private Sub App_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As Boolean)
    
      Dim AllesString As String
    
      With Wb
    
        If InStr(.Name, "_") = 0 Then Exit Sub
    
        With .Worksheets(1)
    
          If .Name <> "Text1" Then Exit Sub
    
          If .Range("B2").Value <> "Text2" Then Exit Sub
    
        End With
    
        AllesString = Right(.Name, 7)
    
      End With
    
      AllesString = Left(AllesString, 2)
    
      If Not IsNumeric(AllesString) Then Exit Sub
    
      If CInt(AllesString) <= 17 Then Exit Sub
    
      DasMakroDasLaufenSoll
    
    End Sub
    
    Sub DasMakroDasLaufenSoll()
    
      MsgBox "Hallo Welt"
    
    End Sub
    
    Private Sub Workbook_Open()
    
      Set App = Application
    
    End Sub
  5. plarein Win User

    Excel AddIn Makro .. before close

    Hallo Andreas,

    danke für Deine Antwort und für den verbesserten Code.

    Ich komm damit nicht klar, da ich nicht weiß, wo ich die Module einbinden soll. Alle Versuche schlugen bisher bei mir fehl.

    Mein Ziel ist es, wenn bestimmte Dateien (deswegen die Abfragen auf Dateiname und -Inhalt) geschlossen werden, sollen einige Daten in eine andere Datei überspielt werden - deswegen der Versuch mit BeforeClose.

    Dass das mit activeworkbook nicht funktioniert, habe ich verstanden.

    Die Variablen habe ich alle zu Beginn deklariert - das Dim WithEvents App as Application kann ich dort nicht unterbringen, sondern nur in einem Objekt. Der Beginn meines Moduls:

    
    Public AllesString As String' Dim WithEvents App As ApplicationOption Explicit
    
    Option Compare Text
    Sub DasMakroDasLaufenSoll()
    
      MsgBox "Hallo Welt"
    
    End Sub
    Unter DieseArbeitsmappe läuft:

    Dim WithEvents App As Application
    
    Private Sub Workbook_Open()
    
      Set App = Application
    
    End Sub
    Private Sub App_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As Boolean)
    
        With Wb
    
            If InStr(.Name, "_") = 0 Then Exit Sub
    
                With .Worksheets(1)
    
                    If .Name <> "Dienstarten" Then Exit Sub
    
                    If .Range("B2").Value <> "Beschreibung" Then Exit Sub
    
                End With
    
                AllesString = Right(.Name, 7)
    
        End With
    
        AllesString = Left(AllesString, 2)
    
        If Not IsNumeric(AllesString) Then Exit Sub
    
        If CInt(AllesString) <= 17 Then Exit Sub
    
        DasMakroDasLaufenSoll
    
    End Sub
    Dies ins Modul zu schreiben, war auch erfolglos.

    Ich habe nach jedem Versuch die Datei gespeichert und neu aufgerufen. Dann müsste er doch eigentlich in die Routine WorkbookOpen kommen - tut er aber nicht.

    Was mach ich falsch??

    Gruß

  6. Andreas Killer Win User

    Excel makro beliebige csv mit führenden nullen importieren direkt/ohne umwege

    aber ich möchte es über direkten weg mit Excel bzw Excel-Makro machen, ganz sauber, so wie es sinnvoll und logisch ist und sein muß(müßte).
    Mein AddIn ist ja keine Zauberkiste die Erdstrahlen aussendet, da ist auch ein ganz normales Makro drin.

    Kannst Du Dir anschauen, kopieren, was auch immer, der Code ist nicht geschützt.

    Andreas.
  7. User Advert


    Hi,

    willkommen im Windows Forum!
Thema:

Excel AddIn Makro .. before close - Microsoft Office

Die Seite wird geladen...

Excel AddIn Makro .. before close - Similar Threads - Excel AddIn Makro

Forum Datum

EXCEL Addin

EXCEL Addin: Hallo, folgende Fehlermeldung habe ich im Ereignisprotokoll, nach ausführen der Addin AnwendungName der fehlerhaften Anwendung: EXCEL.EXE, Version: 16.0.15629.20156, Zeitstempel: 0x632e4be6Name...
Microsoft Office 10. Oktober 2022

wie kann ich in einem Makro verhindern, das beim schließen der Datei close exel nach einer...

wie kann ich in einem Makro verhindern, das beim schließen der Datei close exel nach einer...: in einer xlsm Datei soll diese durch einen Makro geschlossen werden, ohne dass der Anwender mit der EXcel-Umgebung zu tun hat.
Microsoft Office 28. Februar 2021

Excel Makro

Excel Makro: Ich möchte nur die Zellen in "C" löschen die in "B" rot unterlegt sind. Die Spalte "D" soll nicht berücksichtigt werden. Wie kann ich das im Makro integrieren? Sub Bereinigen Dim LRow As Long...
Microsoft Office 3. März 2020

Excel Makro

Excel Makro: Hallo zusammen, ich würde gern in eine Excel Datei ein Makro einfügen, welches eine komplette Zeile in ein anderes Blatt verschiebt, sobald in einer Spalte das Wort "Erledigt" vorkommt. In dem...
Microsoft Office 11. Dezember 2019

Excel Makro

Excel Makro: Guten Tag liebe Comminity, ich erstelle gerade eine Excel-Datei und benutze zum Einfügen Makros. Ich habe welche zum Einfügen und zum Löschen. Ich möchte gerne da wenn man etwas mit einem Makro...
Microsoft Office 10. April 2018

Excel Makro

Excel Makro: Ich habe in meiner Excel Liste ein Makro erstellt welches auf Druck auf den button eine neue Zeile erstellt und gleichzeitig den Blattschutz aufrecht erhält. Dieses Makro funktioniert eigentlich...
Microsoft Office 26. September 2017

Excel Makro

Excel Makro: Ich habe eine Excel Tabelle. Die Tabelle hat Werte in den Spalten A-T. Täglich lese ich neue Daten in die Anwendung für die Spalten A-H und sortiere dann die Tabelle nach Spalte B. Nach dem...
Microsoft Office 7. Januar 2017
Excel AddIn Makro .. before close solved
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.