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ß
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ß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 338776
Url: https://administrator.de/contentid/338776
Ausgedruckt am: 22.11.2024 um 14:11 Uhr
3 Kommentare
Neuester Kommentar
Hi,
in der Makro-Liste erscheinen nur öffentliche Subs.
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.
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.
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ß
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
Gruss
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()
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