milchmann89
Goto Top

Excel 2010 - VBA Projekt - senden einer Mail bei erfüllen einer "WENN-Formel"

Guten Tag,

ich versuche derzeit über Excel eine Mail zu versenden sobald meine hinterlegte WENN Formel erreicht ist. Grundlegend soll hier nur eine Bestell-Mail an eine Kollegin ausgelöst werden, wenn einer gewisser Bestand unserer Ware im Lager erreicht ist.

Dazu dachte ich mir wäre es eine prima Gelegenheit sich endlich mit Makros / VBA in Excel zu beschäftigen.

Nunja, um in das Thema rein zu kommen wollte ich mal eine einfache Ausgabe machen. Ich blick nur nicht wie ich den Code nun in meine Mappe einfügen soll.

Vorgehensweise:
1. Start VB (Alt + F11)
2. Rechtsklick in linker Tabelle auf "VBAProject"
3. Einfügen
4. Modul
5. Paste unten stehender Code

Code:
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub
MsgBox "Hallo, ich bin eine Meldung"
End Sub


Ich bin davon ausgegangen, dass wenn ich jetzt in Excel ein Makro hinzufügen will, dass dieser gespeicherte Code nun in Form eines Makros abrufbar wäre. Meine Liste der verfügbaren Makros ist allerdings leer.
Stand jetzt stellen sich mir zwei Fragen:
1. wie binde ich diesen Code nun in meine Excel-Arbeitsmappe in ein Makro ein?
2. warum habe ich, wenn ich eine leere Excel-Arbeitsmappe öffne, bereits 4 Einräge mit "VBAProject" die alle leer sind?


Danke schonmal für die Hilfe.
Gruß

Content-ID: 338776

Url: https://administrator.de/contentid/338776

Ausgedruckt am: 22.11.2024 um 14:11 Uhr

emeriks
emeriks 24.05.2017 aktualisiert um 12:05:33 Uhr
Goto Top
Hi,
in der Makro-Liste erscheinen nur öffentliche Subs.
public sub ....
....
end sub

E.

Edit:
Und "Private Sub Worksheet_SelectionChange(ByVal Target As Range)" ist eine Ereignisroutine, welche nur in einer Tabelle funktioniert, nicht in einem Modul. Diese Sub wird ausgeführt, wenn in der Tabelle eine andere Zelle ausgewählt wird.

Edit 2:
Und die Subs dürfen keine verbindlichen Argumente haben, sonst erscheinen sie nicht in der Makro-Liste.
132895
132895 24.05.2017 aktualisiert um 12:01:46 Uhr
Goto Top
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Das ist ein Worksheet-Event und gehört nicht in ein Modul, sondern in den Codeabschnitt des betreffenden Worksheets.

Gruß
Meierjo
Meierjo 24.05.2017 um 13:27:18 Uhr
Goto Top
Hallo

Ich würde die Email nicht direkt senden, sondern sie als Vorschau anzeigen lassen (dann het der User immer noch die Möglichkeit, das Senden abzubrechen)
Code, wie hier abgebildet, in ein allgemeines Modul eintragen.
Die grünen Einträge sind Kommentare

sub email

Sub Email()
    Set OlApp = CreateObject("Outlook.Application")  
    With OlApp.CreateItem(0)
        'Empfänger  
        .To = "Info@empfänger.de"  
        'Betreff  
        .Subject = "Angebot"  
        'Nachricht  
        .body = "Beiliegend die gewünschte Offerte" & Chr(13) & _  
        "Freundliche Grüsse " & Chr(13) & Chr(13)  
        'Lesebestätigung aus  
        .ReadReceiptRequested = False
        'Anhang  
        .Attachments.Add Environ("TEMP") & "\suchen.ini"  
        .Display
    End With

End Sub

Gruss