Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1388to1392
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

Excel-Probleme nach Makro-Ausführung

Excel-Probleme nach Makro-Ausführung
28.10.2014 12:59:31
Cedric
Hallo Leute!
Ich hoffe, dass mir hier jemand helfen kann, Google ist schon ratlos....
Folgendes Problem: Für eine berufliche Leistungserfassung habe ich ein ziemlich komplexes Excelsheet programmiert, das von vielen Leuten genutzt wird.
An sich stellt euch das wie mehrere Counter vor, die mit Buttons betätigt werden.
Immer mal wieder wird die gesamte Datei mit einer CDO-Mail gesichert. (Backup) Grundsätzlich klappt auch alles, aber:
Das Versenden dieser Mails dauert natürlich ein paar Sekunden. Erfahrungen zeigen, dass, wenn in dieser Zeit einer der Counterbuttons betätigt wird, dies zwar geht, aber zu folgendem Fehler im nachhinein führt:
(- CDO-Backup wird teilweise nicht zu ende geführt sondern hängt sich mit Fehler auf.)
- Aktualisierung des Blattes hängt, sozusagen friert die Anzeige ein. Beispielsweise kann man eine Zelle anklicken und was reinschreiben, wenn man klickt passiert aber gar nichts und auch der Inhalt wird nicht geschrieben. Wechselt man jetzt die Tabelle und geht wieder zurück auf das erste Blatt, steht der Inhalt aber da.
Mit anderen Worten ist Excel dann kaum mehr benutzbar, denn auch die Buttons "bewegen" sich nicht beim draufklicken, im Hintergrund zählts aber.
Nun wollte ich, um Probleme zu vermeiden, das Backup-Makro in eine Userform integrieren und die Modal im Vordergrund lassen... Nur tritt jetzt das oben beschriebene Problem auf, sobald man probiert was anderes als die Userform anzuklicken während das Backup läuft...
Hier das Makro, ohne Daten natürlich...
Sub MultiMail(tyP As Integer, betrefF As String, texT As String)
Dim tag As String
Dim monat As String
Dim jahr As String
Dim stunde As String
Dim minue As String
Dim filename As String
Dim User As String
Dim wiehEis As String
Dim wb(1 To 10) As Integer
Dim ced(1 To 10) As String
Dim iwo(1 To 10) As String
'Constanten
Dim SMTP_Server
Dim SMTP_Port
Dim SMTP_Authenticate
Dim SMTP_FromName
Dim SMTP_FromEMail
SMTP_Server = "####.######.de"
SMTP_Port = 25
SMTP_Authenticate = 0
SMTP_FromName = "Fehler"
SMTP_FromEMail = "fehler@#####.de"
tag = Day(Date)
monat = Month(Date)
jahr = Year(Date)
stunde = Hour(Time)
minue = minute(Time)
User = Sheets("Start").Cells(6, 9)
wiehEis = Sheets("Start").Cells(10, 9)
wb(1) = 1
wb(2) = 1
wb(3) = 0
wb(4) = 1
wb(5) = 1
wb(6) = 0
wb(7) = 0
wb(8) = 0
wb(9) = 0
wb(10) = 0
ced(1) = "#@api.prowlapp.com"
ced(2) = "#@api.prowlapp.com, #@googlemail.com"
ced(3) = ""
ced(4) = "#@api.prowlapp.com"
ced(5) = "#@api.prowlapp.com"
ced(6) = "#@api.prowlapp.com"
ced(7) = "#@api.prowlapp.com"
ced(8) = "#@api.prowlapp.com"
ced(9) = "#@api.prowlapp.com"
ced(10) = ""
iwo(1) = "#@api.prowlapp.com"
iwo(2) = "#@api.prowlapp.com"
iwo(3) = ""
iwo(4) = "#@api.prowlapp.com"
iwo(5) = "#@api.prowlapp.com"
iwo(6) = "#@api.prowlapp.com"
iwo(7) = "#@api.prowlapp.com"
iwo(8) = "#@api.prowlapp.com"
iwo(9) = "#@api.prowlapp.com"
iwo(10) = ""
'Formatieren
tag = Format(tag, "00")
monat = Format(monat, "00")
stunde = Format(stunde, "00")
minue = Format(minue, "00")
'Dateiname
filename = jahr & "_" & monat & "_" & tag & "_-_" & stunde & "_" & minue & "_-_" & User & ". _
xlsm"
'Absender
If User  "" Then
SMTP_FromName = User
SMTP_FromEMail = User & "-" & wiehEis & "@######.de"
End If
'text
If wb(tyP) = 1 Then
texT = texT & Chr(13) & ThisWorkbook.FullName
End If
ActiveWorkbook.SaveCopyAs ThisWorkbook.Path & "\" & filename
Dim mail_To As String
Dim mail_CC As String
Dim mail_BCC As String
Dim mail_Subject As String
Dim mail_Body As String
Dim mail_Attachment As String
'Mailparameter
mail_To = "#########@gmail.com"
mail_CC = ""
mail_BCC = ced(tyP) & ", " & iwo(tyP)
mail_Subject = betrefF
mail_Body = texT
mail_Attachment = ThisWorkbook.Path & "\" & filename
'Senden
Dim iMsg As Object
Dim iConf As Object
Dim strbody As String
Dim strfrom As String
Dim Flds As Variant
Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
iConf.Load -1
Set Flds = iConf.Fields
With Flds
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = SMTP_Server
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = SMTP_Port
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = SMTP_Authenticate
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False
.Update
End With
strbody = mail_Body
If SMTP_FromName = "" Then
strfrom = SMTP_FromEMail
Else
strfrom = Chr(34) & SMTP_FromName & Chr(34) & " "
End If
On Error GoTo err
With iMsg
Set .Configuration = iConf
.To = mail_To
.CC = mail_CC
.BCC = mail_BCC
.From = strfrom
.Subject = mail_Subject
.TextBody = mail_Body
If mail_Attachment  "" And Dir(mail_Attachment)  "" Then
.AddAttachment mail_Attachment
End If
.Send
End With
Kill ThisWorkbook.Path & "\" & filename
Exit Sub
err:
Dim worbo As Worksheet
Dim lastrow As Long
Set worbo = ThisWorkbook.Sheets("Hinweise")
lastrow = worbo.Cells(Rows.Count, 1).End(xlUp).Row + 1
worbo.Cells(lastrow, 1) = Now()
worbo.Cells(lastrow, 2) = "Fehler beim Backup, Typ:" & tyP & " " & err.number & " " & err. _
Description
Sheets("Auswertung").Cells(41, 16) = Sheets("Auswertung").Cells(41, 16) + 1
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Excel-Probleme nach Makro-Ausführung
28.10.2014 14:31:04
Uwe
Hallo,
Du bräuchtest dafür keine UserForm. Sperre die Oberfläche doch einfach
für die Laufzeit des Makros, also zu Beginn
Application.Interactive=False

und am Schluss (nicht vergessen!)
Application.Interactive=True
Gruß Uwe

AW: Excel-Probleme nach Makro-Ausführung
28.10.2014 14:40:44
Cedric
Cool, das habe ich noch nirgendwo gelesen... =)
Ich baue das mal so ein und berichte ob der Fehler immernoch auftritt.
Wo ich noch Angst vor habe: Falls unser firmeninterner Mailserver mal nicht antwortet (selten), _ läuft das Makro eine ganze Zeit lang. Kann man das Makro weiterhin mit Strg-Pause zum Ende zwingen? Wie wirkt sich da das

Application.Interactive=False
aus?
Ich habe schon gemerkt, dass dieser ".Send"-Befehl zeitlich nicht zu beeinflussen ist... oder hat jemand eine Idee, wie ich das Vergnügen nach z.B. 10s abbrechen könnte?

Anzeige
AW: Excel-Probleme nach Makro-Ausführung
28.10.2014 14:48:13
mumpel
Hallo!
Seit ihr zwingend auf CDO angewiesen? Welches Emailprogramm nutzt ihr?
Gruß, René

AW: Excel-Probleme nach Makro-Ausführung
28.10.2014 15:16:43
Cedric
Leider wird für die Kommunikation nur ein Mailclient auf Basis des Internetexplorers genutzt. Ich sags gleich dazu: Wir sind ein Callcenter...
Selbst Outlook ist nicht auf jedem Arbeitsplatz installiert und nur bei einzelnen eingerichtet. Da erschien mir CDO als die beste Variante. FTP ist auf Grund der Serversicherheitsvorgaben nicht umsetzbar...
Wenn jemand noch eine gute Idee hat bin ich ganz Ohr!
Leider bin ich seit Monaten dabei die Datei immer deppensicherer zu machen, da man schon mal in der Hitze des Gefechts trotz laufendem Backup was klickt... Größte Action ist so oder so der schon beschriebene Fall, wenn die Serververbindung mal nicht will... Da werden 40s Wartezeit (so lange braucht .Send meistens bis ers aufgibt) schonmal zum Vergnügen aller in der Nähe anwesenden Kollegen ;)
Grüße
Cedric
Ich will nachher mal eine Serverunerreichbarkeit simulieren und schaue mal auf die Auswirkungen des neuen Befehls?
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige