Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1004to1008
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

Outlook Express nimmt kein VBA an? ... die 2te

Outlook Express nimmt kein VBA an? ... die 2te
27.08.2008 13:15:57
greenhorn
Hallo,
mein Thread ist leider schon ins Archiv gewandert: https://www.herber.de/forum/archiv/1000to1004/t1002911.htm
Ich beziehe mich nochmal auf die letzte Nachricht von Rainer:

Hallo
Was willst du denn übergeben ?
Dein Makro "sende_stoermeldung" ist nicht dafür geeignet einen Parameter zu übernehmen


Ich muss es noch ein bischen erklären (Datei kann ich leider nich hochladen, 5 MB):
In dieser Mappe werden Werte registriert, für die jeweiligen Spalten gibts es Grenzwerte.
Sobald dieser überschritten wird, soll er eine "Störmeldung per E-Mail abschicken.
Für die Grenzwerte steht folgendes in Modul Tabelle 1:


Private Sub Worksheet_Change(ByVal Target As Range)
Const Zeile1 = 4 'erste Zeile mit Werten
Const ZeileMeldung = 3 ' Zeile mit der Warnmeldung (z.B. "Drehzahl hoch")
Dim rng As Range, z As Range
Dim i As Integer
Dim Sp(1 To 15) As Integer
Dim GW(1 To 15) As Double
Dim z1 As Long
'Spalten Setzen
For i = 1 To 15
Sp(i) = i + 36 'Wert1 in Spalte 37 (AK) usw.
Next i
'Grenzwerte setzen:
GW(1) = 1: GW(2) = 2: GW(3) = 3: GW(4) = 4: GW(5) = 5: GW(6) = 6
GW(7) = 7: GW(8) = 8: GW(9) = 9: GW(10) = 10: GW(11) = 11: GW(12) = 12
GW(13) = 13: GW(14) = 14: GW(15) = 15
For i = 1 To 15 ' alle 15 Spalten prüfen:
Set rng = Intersect(Target, Range(Cells(Zeile1, Sp(i)), Cells(Rows.Count, Sp(i))))
If Not rng Is Nothing Then
For Each z In rng
If z.Value > GW(i) Then
'letzten 2 Minuten prüfen (alle 10 Sekunden ein Wert also 12 Werte):
z1 = Application.Max(z.Row - 12, Zeile1) '12 Zeilen hoch, höchstens bis [Zeile1] _
_
_
wg. Überschriften
If WorksheetFunction.Max(Range(Cells(z1, z.Column), z.Offset(-1, 0))) 


Die E-Mail Prozedur sieht so aus (von Rainer):


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
Sub sende_stoermeldung()
Dim eMailTo As String, Subject As String, Body As String
eMailTo = "irgendwer@provider.de"
Subject = "Störmeldung:     " & mld & "     " & Date & " " & Time 'Leerzeichen  _
bitte belassen
Body = ""
Call Mail(eMailTo, Subject, Body)
End Sub
Sub Mail(eMail As String, Optional Subject As String, Optional Body As String)
'Hier nichts ändern
Call ShellExecute(0&, "Open", "mailto:" + eMail + _
"?Subject=" + Subject + "&Body=" + Body, "", "", 1)
End Sub


Wo mein Problem dabei liegt:
Userbild
kann ich aufgrund meiner nicht vorhandenen Kenntnisse nicht ausmachen.
Danke im Voraus für eure Hilfe.
christian

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Outlook Express nimmt kein VBA an? ... die 2te
27.08.2008 13:28:00
Rudi
Hallo,
wie Rainer schon schrieb: sub sende_Stoermeldung() erwartet keinen Parameter.
Ändere in sub sende_Stoermeldung(mld as string)
Gruß
Rudi
AW: Outlook Express nimmt kein VBA an? ... die 2te
27.08.2008 13:55:00
greenhorn
Ok, hab ich gemacht und es steuert OE an. Danke.
Ich komm aber dann zu einer nächsten "Hürde" die ich gern noch überwinden möchte. Hier muss ich noch selbst das abschicken bestätigen:
Userbild
Kann man das auch automatisieren? (Es ist keiner Vorort der das machen kann, und wenn es nur so gehen würde wäre das ganze hinfällig)
christian
Anzeige
AW: Outlook Express nimmt kein VBA an? ... die 2te
27.08.2008 14:37:57
Martin
Hallo Greenhorn,
bist Du auch bereit die Email ohne Outlook Express direkt aus Excel zu verschicken? Dann muss auch kein "Senden" angeklickt werden! Dafür musst Du im VBA-Code allerdings die Pop3-Daten Deines Email-Kontos eintragen (Pop3-Server, SMTP-Server, Benutzername und Kennwort).
Viele Grüße
Martin
AW: Outlook Express nimmt kein VBA an? ... die 2te
27.08.2008 14:45:46
greenhorn
Das hatt ich auch schon mal fast fertig, aber ich komm an die Serverdaten nicht ran (komplizierte und lange geschichte) daran scheitert das.
geht das nicht irgendwie mit

.Send

oder einem einfachem kniff? Ich kenn mich aber nich aus.
christian

Anzeige
AW: Outlook Express nimmt kein VBA an? ... die 2te
27.08.2008 15:19:37
Martin
Hallo Greenhorn,
wenn Du im Forum keine Outlook-Express - "Send"-Lösung gefunden hast, dann wird es vielleicht keine geben. Drei Vorschläge hätte ich da:
1. Probiere mal die Tastenkombination ALT+s über Excel an Outlook Express zu senden:
Application.SendKeys ("%s")
2. Richte doch ein kostenloses Email-Konto (GMX, Web, GoogleMail, Lycos) und schicke die Email doch direkt über Excel raus
3. Exportiere das Outlook Express-Konto (Extras, Konten, Email) und schicke es mir per Email, dann könnte ich Dir alle notwenigen Daten geben
Viele Grüße
AW: Outlook Express nimmt kein VBA an? ... die 2te
27.08.2008 15:33:00
greenhorn
danke für deine vorschläge.
2. geht leider nich, das ganze funzt nur mit OE über ein internes System.
3. da komm ich ja leider nich ran, das ganze befindet sich auf einem externen Rechner auf den ich nur beschränkten Zugriff habe.
Bleibt für mich noch 1.
Wo müsste ich

Application.SendKeys ("%s")


im Code platzieren?
christian

Anzeige
AW: Outlook Express nimmt kein VBA an? ... die 2te
27.08.2008 16:03:00
greenhorn
Hallo,
ich habe die Tastenkombination ALT+s probiert und er sendet es. Aber das ist ja keine Automatisierung.
Könnte in einer Änderung des fett markierten die lösung liegen? (Ich nehme mal an mit Call ruft er die ausgehende E-mail auf) Hab es mit Send versucht aber das war wohl zu blauäugig.

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
Sub sende_stoermeldung()
Dim eMailTo As String, Subject As String, Body As String
eMailTo = "irgendwer@provider.de"
Subject = "Störmeldung:     " & mld & "     " & Date & " " & Time 'Leerzeichen  _
bitte belassen
Body = ""
Call Mail(eMailTo, Subject, Body)
End Sub
Sub Mail(eMail As String, Optional Subject As String, Optional Body As String)
'Hier nichts ändern
Call ShellExecute(0&, "Open", "mailto:" + eMail + _
"?Subject=" + Subject + "&Body=" + Body, "", "", 1)
End Sub


christian

Anzeige
AW: Outlook Express nimmt kein VBA an? ... die 2te
27.08.2008 16:22:13
Martin
Hallo,
bitte schreib es wie folgt:

Sub Mail(eMail As String, Optional Subject As String, Optional Body As String)
'Hier nichts ändern
Call ShellExecute(0&, "Open", "mailto:" + eMail + _
"?Subject=" + Subject + "&Body=" + Body, "", "", 1)
Application.SendKeys ("%s")
End Sub


AW: Outlook Express nimmt kein VBA an? ... die 2te
28.08.2008 10:45:00
greenhorn
hallo,
ich werde es montag mal ausprobieren und ne rückmeldung geben.
ich bekomme gerade keinen zugang zum betreffenden rechner (serverproblem)
christian
Application.SendKeys ("%s") funzt leider nich...
28.08.2008 11:46:00
greenhorn
hab doch noch verbindung zum server bekommen und den Befehl

Application.SendKeys ("%s")


eingefügt.
Aber leider erscheint wieder nur die Mail und man muss manuell den Versand bestätigen.
Gibts vielleicht einen Ausdruck für OE?
christian

Anzeige
Application.SendKeys ("%s") funzt leider nich...
28.08.2008 11:47:00
greenhorn
hab doch noch verbindung zum server bekommen und den Befehl

Application.SendKeys ("%s")


eingefügt.
Aber leider erscheint wieder nur die Mail und man muss manuell den Versand bestätigen.
Gibts vielleicht einen Ausdruck für OE?
christian

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige