Anzeige
Archiv - Navigation
1088to1092
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
Email-Editor soll Zugriff auf Excel verhindern
Lang
Hallo Excelfreunde,
ich habe hier aus dem Forum die nachfolgende Funktion und Prozedur erhalten. Alles funktioniert einwandfrei. Mein Wunsch ist nun, dass zuerst der Email-Editor abgearbeitet werden muss, bevor wieder in Excel weiter gearbeitet werden kann.
Was muss ich ändern, damit kein Klick in das im Hintergrund laufende Excel möglich ist?
Funktion und Prozedur:
Private Sub Mail( _
eMail As String, _
Optional Subject As String, _
Optional Body As String)
Call ShellExecute(0&, "Open", "mailto:" + eMail + _
"?Subject=" + Subject + "&Body=" + Body, "", "", 1)
End Sub

Sub MailVersenden
On Error GoTo PROC_ERR
Dim rng As Range
Dim strSMail As String
Dim strSSubject As String
Dim strSBody As String
Dim intIRow As Integer
Dim intICol As Integer
Application.ScreenUpdating = False
With Sheets("MailVersand")
.Select
.Unprotect
End With
strSMail = "Muster@Adresse.de"
strSSubject = "Anforderung Musteradresse"
Set rng = Range("A1").CurrentRegion
For intICol = 1 To rng.Columns.count
For intIRow = 1 To rng.Rows.count
strSBody = strSBody & vbCrLf & rng.Cells(intIRow, intICol).Value
Next intIRow
Next intICol
strSBody = Application.WorksheetFunction.Substitute(strSBody, vbCrLf, "%0D%0A")
strSBody = Application.WorksheetFunction.Substitute(strSBody, "&", "%26")
Call Mail(strSMail, strSSubject, strSBody)
PROC_EXIT:
Sheets("MailVersand").Protect
Exit Sub
PROC_ERR:
MsgBox "Email-Anforderung für Musteradresse konnte nicht erstellt werden!"
Resume PROC_EXIT
End Sub Danke!
Gruß Klaus
AW: Email-Editor soll Zugriff auf Excel verhindern
21.07.2009 11:19:03
mumpel
Hallo!
Könntest Du mit einer Userform machen. Diese wird am Anfang des Makros aufgerufen und am Ende wieder geschlossen. Die UF hat dann bis auf einen Hinweistext keinerlei Elemente, das Schließkreuz musst Du deaktivieren. Da Du aber nur den halben Code angegeben hast, bekomme ich eine Fehlermeldung bei "ShellExecute". Musst Du somit in der angehängten Beispielmappe ergänzen.
Wichtig: Die Zeile Resume PROC_EXITcolor> solltest Du dringend entfernen. Sonst läufst Du bei einem Fehler auf eine Endlosschleife, bei der nur noch der Taskmanager hilft. Das VBA-Kennwort lautet: a
Das VBA-Kennwort MUSS dringend gesetzt bleiben/werden, sonst wird ein (mir unerklärlicher) Fehler erzeugt.
https://www.herber.de/bbs/user/63314.xls
Gruß, René
Anzeige
AW: Email-Editor soll Zugriff auf Excel verhindern
22.07.2009 12:53:15
Lang
Hallo René,
vielen Dank für Deine Bemühungen.
Beim Code fehlte die Funktion:
Private Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" (ByVal hwnd As Long, _
ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, _
ByVal nshowcmd As Long) As Long
Leider kam ich dennoch nicht klar. Obwohl ich auch die Sheets("MailVersand") in Sheets("Tabelle1") umbenannt und in Spalte A in die Zeilen 1-10 testhalber Texte eingegeben hatte. Der Emaileditor öffnete sich und die Zeilen wurden angezeigt. Soweit also alles ok. Aber ein Klick in die Tabelle, mit diesem Spielchen des Anwenders muss ja gerechnet werden, lässt keinen Rückgriff mehr in den Editor zu und die Datei hängt sich auf.
Gruß Klaus
Anzeige
AW: Email-Editor soll Zugriff auf Excel verhindern
23.07.2009 14:53:32
mumpel
Kann ich nicht nachvollziehen. Funktioniert bei mir fehlerfrei. Ändere in der Userform mal Userform_Initializecolor> in Userform_Activatecolor>. Damit wird die Userform zuerst angezeigt, bevor der Code abgearbeitet wird. Ein Klick in die Tabelle sollte damit entgültig unmöglich sein.
AW: Email-Editor soll Zugriff auf Excel verhindern
23.07.2009 15:58:42
Lang
Hallo René,
vielen Dank für Deine Bemühungen! Aber leider, leider klappt es immer noch nicht.
Habe Userform_Initialize in Userform_Activate getestet. Deine Datei funktioniert bei mir einfach nicht wie gewollt.
Könnte es vielleicht sein, dass sie nicht die aktuelle ist?
Gruß Klaus
Anzeige
AW: Email-Editor soll Zugriff auf Excel verhindern
23.07.2009 16:31:06
mumpel
Die Datei ist "aktuell". Die habe ich extra für Dich anhand Deiner angaben erstellt. Du könntest auch versuchen, Excel oder die Arbeitsmappe auszublenden, solange das Makro läuft.
Verrate uns doch mal, was genau Du vorhast und welches Emailprogramm benutzt wird. Möglicherweise können wir Dir eine Alternative bieten.
AW: Email-Editor soll Zugriff auf Excel verhindern
27.07.2009 10:54:06
Lang
Hallo René,
habe nochmals hin und her probiert. Leider ohne Erfolg.
Die Idee ist, bestimmte Abläufe mit einem Aufruf des Email-Editor's zu versehen. Der Nutzer soll dann entscheiden, ob er ihn direkt nutzt. Nach wie vor führt derzeit ein Klick außerhalb des Editors dazu, ihn nicht mehr nutzen zu können. Er wird dann nur noch als graues Feld dargestellt und bleibt so auf dem Bildschirm.
Zwischenzeitlich habe ich mal getestet, nach Aufruf des Editor's die Datei zu minimieren und für drei bis fünf Minuten mit "Application.Wait..." zu sperren. In dieser Zeit kann der vorgegebene Editortext, wird aus einem Tabellenblatt eingelesen, ergänzt und als Email versandt werden. Ist vielleicht nicht sehr elegant aber wirksam. Nach der Zwangspause wird die Datei wieder maximiert.
Wie bewertest Du diese Lösung? Kann man sie vielleicht noch optimieren? Bin natürlich mit jedem besseren Vorschlag einverstanden.
Danke auch für Dein Interesse an meinem "Problem"!
Gruß Klaus
Anzeige
AW: Email-Editor soll Zugriff auf Excel verhindern
27.07.2009 21:27:15
mumpel
Besser wäre es, die Email zuerst über einen Dialog (Userform) zu erstellen und nach einem Klick auf eine Schaltfläche zu Outlook zu senden. Ein Klick auf "Schließen" beendet die Userform, ohne die Email zu senden. Anbei eine Beispieldatei. Ist für Office 2007 geschrieben. Einiges in diesem Dialog funktioniert in Outlook 2003 nicht (zum Beispiel: SendUsingAccountcolor>). Musst also noch anpassen. Die Datei liegt in zwei Versionen vor. Die XLSM-Datei für Office 2007 und Office 2010, die XLS-Version für Office 2000-2003 (in Office 2000 mit Einschränkungen).
https://www.herber.de/bbs/user/63471.zip
Anzeige
AW: Email-Editor soll Zugriff auf Excel verhindern
28.07.2009 15:33:24
Lang
Hallo René,
zunächst Danke für die Datei "mailfunktion". Für mich gigantisch!
Habe den Start probiert und aufgrund FehlerMldg beim Debuggen in Verweise "Ms Outlook 11.0 Object Library" aktiviert. Die Mldg unterbleibt nun. Jetzt kommt aber für "sub senden(control As IRibbonControl)" der Kompilierfehler "Benutzerdefinierter Typ nicht erkannt". Um weiter zu kommen habe ich diese sub deaktiviert. Jetzt kommt die gleiche Mldg für "Dim oAccount As Outlook.Account". Stehe nun auf dem Schlauch.
Wie vermeide ich diese Fehler?
Danach werden wohl noch weitere auftauchen?
Danke vorab!
Gruß Klaus
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige