Anzeige
Archiv - Navigation
1936to1940
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Makro per Klick lässt Excel freezen

VBA Makro per Klick lässt Excel freezen
14.07.2023 11:18:28
Hantelheber
Hallo zusammen,

ich verzweifele momentan an einem kuriosen Phänomen und hoffe, dass mir jemand helfen kann.

Über ein zusammengebasteltes Makro kopiere ich aus einer .xlsm ein Tabellenblatt in eine neue Datei und versende diese an eine Empfängerliste per Outlook.
Die Mailempfänger stehen in einem separaten Tabellenblatt.

Das klappt seit vielen Monaten ganz toll, seit möglicherweise einem Office Update, friert Excel beim Aufruf des Makros per Klick auf den Button ein.
Wenn ich das Makro im Editor starte, oder Schrittweise debugge, klappt alles einwandfrei.
Nur durch den Klick auf den Button, hängt sich alles auf :-(

Es scheint so, als ob das Makro bis zu einem bestimmten Punkt abgearbeitet wird (Sheet wird in die neue Datei kopiert und diese gespeichert), beim Aufruf der Outlook Prozedur dann jedoch alles hängen bleibt.
Auffällig ist ebenfalls, dass das Problem nur per Office 365 auftritt; mit Office 2016 läuft weiterhin alles tadellos.

Hat evtl. schon jemand eine Idee?

Herzlichen Dank vorab und viele Grüße
Holger

Anbei der Code:

Public Sub sendDiff_asXLSX()
Application.ScreenUpdating = False
Application.DisplayAlerts = False


Dim olApp      As Object
Dim AWS        As String
Dim olOldBody  As String
Dim strAddress As String
Dim i          As Integer

Dim strSAPDATUM As String
strSAPDATUM = ActiveWorkbook.Worksheets("VAR").Cells(37, 2).Value


Rem Pfad für PDF festlegen
AWS = Environ("USERPROFILE") & "\AppData\Local\Temp\Bestandsabgleich und Differenzen zum " & strSAPDATUM & ".xlsx"

Rem Empfängerliste zusammenstellen
For i = 1 To ThisWorkbook.Sheets("VAR_EMail").Range("A" & Rows.Count).End(xlUp).Row
    If strAddress = "" Then
       strAddress = ThisWorkbook.Sheets("VAR_EMail").Cells(i, 1)
    Else
       strAddress = strAddress & ";" & ThisWorkbook.Sheets("VAR_EMail").Cells(i, 1)
    End If
Next i

Rem Tabelle als XLSX speichern
    Sheets("Diff").Select
    ActiveSheet.PivotTables("PVT_Differenzen").PivotCache.Refresh
    Sheets(Array("Diff")).Copy
With ActiveWorkbook
.SaveAs Filename:=AWS, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
.Close
    End With
Rem Email erstellen
Set olApp = CreateObject("Outlook.Application")
    With olApp.CreateItem(0)
              .GetInspector.Display
              .To = strAddress
              .Subject = "Bestandsabgleich und Differenzen zum " & strSAPDATUM ' Betreff
              .htmlBody = "

" & _ "Hallo zusammen,

" & _ "anbei die Abweichungen zum " & strSAPDATUM & ".

" .Attachments.Add AWS 'Datei anhängen End With Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Makro per Klick lässt Excel freezen
25.07.2023 16:10:21
Hantelheber
Hallo zusammen,

falls jemand ebenfalls mit diesem Problem kämpft: ich habe es nun wie folgt gelöst.

Application.COMAddIns("SapExcelAddIn").Connect = False


Und am Ende wieder aktivieren:

Application.COMAddIns("SapExcelAddIn").Connect = True


Viele Grüße
Holger

AW: VBA Makro per Klick lässt Excel freezen
14.07.2023 15:01:32
RPP63
Moin!
Was passiert, wenn Du die .DisplayAlerts nicht ausschaltest?

Gruß Ralf

AW: VBA Makro per Klick lässt Excel freezen
14.07.2023 15:30:09
Hantelheber
Hallo Ralf,

danke für deine Nachricht.

Habe ich probiert - Ergebnis ist zunächst das gleiche. Sanduhr und Freeze.
Nach laaaaaangem Warten gibt es dann jedoch ein Popup mit der Meldung "Microsoft Excel wartet auf die Beendigung einer OLE-Aktion in einer anderen Anwendung."
Wenn ich dieses mit "OK" bestätige, erscheint die erwartete neue E-Mail mit Anhang, etc.
Kurios :-/

Viele Grüße
Holger

Anzeige
AW: VBA Makro per Klick lässt Excel freezen
14.07.2023 16:54:14
onur
Wo brefindet sich der Button?

AW: VBA Makro per Klick lässt Excel freezen
14.07.2023 16:57:09
onur
Vermutlich in der .xlsm-Datei.
Du weisst schon, dass, wenn du auf das Button klickst, ActiveWorkbook=ThisWorkbook ist und die Datei am Ende versucht, sich selbst zu schliessen?

AW: VBA Makro per Klick lässt Excel freezen
17.07.2023 10:27:47
Hantelheber
Hi Onur,

danke für deinen Gedanken dazu.
Korrekt, der Button befindet sich im "Mainfile" - wo sonst :-D

Deinen Hinweis zum wb.close kann ich jedoch nicht ganz nachvollziehen.
Der m.E. einzige Close gilt für die neu erstellte Datei, die dann auch versendet werden soll.
Wie schon erwähnt: das klappte viele Monate reibungslos und im Debug aktuell auch weiterhin.

Danke und VG
Holger

Anzeige
AW: VBA Makro per Klick lässt Excel freezen
17.07.2023 13:26:50
onur
Du verstehst es nicht.
ThisWorkbook ist immer die Datei, in dem sich das Makro befindet.
ActiveWorkbook ist immer die Datei, die du gerade AKTIVIERT hast (z.B. durch dessen Button anklicken).
Solange du das Makro aus dem Editor startest, ändert sich ja auch nix daran, aber wenn du das Button anklickst, wird ThisWorkbook zu ActiveWorkbook.

AW: VBA Makro per Klick lässt Excel freezen
17.07.2023 14:47:17
Hantelheber
Hallo Onur,

danke für deine Rückmeldung.

Ob und wie ich deine Erklärung verstehe, behalte ich an dieser Stelle lieber für mich.

Dennoch: deinen ursprünglichen Hinweis
die Datei am Ende versucht, sich selbst zu schliessen
, kann ich nicht nachvollziehen - es gibt am Ende keinen Close Befehl, der sich auf ThisWorkbook bezieht.

Um trotzdem darauf einzugehen:
Selbst wenn ich explizit vor dem .close die zu speichernde Datei anspreche und diese aktiviere (obwohl sie bereits aktiv ist), ändert dies nichts am Ergebnis, dass das Makro in dem Moment abschmiert, wenn Outlook ins Spiel kommen soll.

VG Holger

Anzeige
AW: VBA Makro per Klick lässt Excel freezen
17.07.2023 15:10:04
onur
Sorry, du hast Recht - ICH habe was übersehen. Ich war davon ausgegangen, dass die zu speichernde Datei bereits geöffnet ist, die wir aber erst durch Copy neu erstellt.
Was passiert, wenn du einen Haltepunkt bei
Sheets(Array("Diff")).Copy
setzt, dort 5-10 sec wartest und dann erst weitermachst?

AW: VBA Makro per Klick lässt Excel freezen
18.07.2023 14:03:27
Hantelheber
Hi Onur,

ein 5 Sek. Päuschen hab ich probiert - bringt in diesem Fall nichts.

VG!

AW: VBA Makro per Klick lässt Excel freezen
18.07.2023 14:39:44
onur
Poste doch mal die Datei oder eine anonymsierte Vesion davon.

Anzeige
AW: VBA Makro per Klick lässt Excel freezen
17.07.2023 15:03:00
Hantelheber
Zur Info @All:

Es liegt offenbar am COM-Addin "Analysis".
Sobald ich dieses deaktiviere, läuft das Makro anstandslos durch.

AW: VBA Makro per Klick lässt Excel freezen
17.07.2023 15:16:03
onur
Analysis wird für Power-Pivot gebraucht, meines Wissens nach. Funktioniert dann Pivot.Refresh überhaupt noch?

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige