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

Outlookversand je nach Zeile + Kontrolle

Outlookversand je nach Zeile + Kontrolle
02.02.2023 11:22:33
Daniel
Hallo,
ich muss für unsere Abteilung eine Exceltabelle erstellen:
In de Zeile B3:G4 sind Personen als Dropdown eingetragen. Wenn die Tabelle ausgefüllt ist und die Person eingetragen wurde,
wird beim betätigen des Buttons eine Email an genau diese Person geschickt.
Hier soll das ausgefüllte Tabellenblatt mitgeschickt werden.
Aktuell sind 5 Personen hinterlegt, welche auch eine eigene Emailadresse haben.
Bisher ist mein Button so eingerichtet, ich weiß aber leider nicht wie ich den Outlookversand + diese 5 Emails hinterlegen kann.
Zusätzlich muss der Button auch vor dem Versand überprüfen, dass:
B2:G2
B3:G3
Tabellenzeile1 B5-D5, E5-H5, I5 und J5 und/oder K5 ausgefüllt sind.
WEnn in den weiteren Zeilen Daten eingetragen wurden müssen diese auch ausgefüllt werden.
J5 und K5 ist ein und/oder Feld. Eines von beiden muss mindestens ausgefüllt werden.
Ist das so realisierbar ?
Kann mir hier jemand helfen ?
Hier der Link zu meiner Exceltabelle
https://www.herber.de/bbs/user/157614.xlsm

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Outlookversand je nach Zeile + Kontrolle
03.02.2023 00:33:22
onur
"ich muss für unsere Abteilung eine Exceltabelle erstellen" ? Warum DU, wenn du doch kaum Excel/VBA-Kenntnisse hast?
AW: Outlookversand je nach Zeile + Kontrolle
03.02.2023 10:42:38
Daniel
Hallo,
leider bin ich in der Abteilung der sich mit Excel am besten auskennt, leider aber überhaupt nicht in VBA.
Ich bin gestern mit viel testen schon sehr weit gekommen:
Ich möchte das Pflichtfelder geprüft werden und wenn mindestens eines leer ist dann der Emailversand nicht zustande kommt.
Leider ist bei meinem Code trotzdem so, dass die Email versendet wird, es werden nicht mal die Felder überprüft.
Wo habe ich hier ein fehler ?

Function Kontrolle()
If Range("C2").Value = "" Then
 MsgBox "Nachname nicht ausgefüllt", vbOKOnly
End If
If Range("F2").Value = "" Then
 MsgBox "Vorname nicht ausgefüllt", vbOKOnly
End If
If Range("B3").Value = "" Then
 MsgBox "Prüfer nicht ausgefüllt", vbOKOnly
End If
If Range("B5").Value = "" Then
 MsgBox "Artikelnummer nicht ausgefüllt", vbOKOnly
End If
If Range("E5").Value = "" Then
 MsgBox "Artikelbezeichnung nicht ausgefüllt", vbOKOnly
End If
If Range("I5").Value = "" Then
 MsgBox "Menge nicht ausgefüllt", vbOKOnly
End If
If Range("J5").Value = "" Then
 MsgBox "AB-Nummer nicht ausgefüllt, falls keine Vorhanden bitte 0 eintragen", vbOKOnly
End If
If Range("K5").Value = "" Then
 MsgBox "Kostenstelle nicht ausgefüllt", vbOKOnly
End If
End Function
Function Versenden()
Dim Nachricht As Object, OutlookApplication As Object
Set MyOutApp = CreateObject("Outlook.Application")
Set MyMessage = MyOutApp.CreateItem(0)
Dim Anhang As String
Anhang = ThisWorkbook.FullName
With MyMessage
.To = Range("A36")
.Subject = "Bestellanforderung (BANF)" & "  " & Range("K1")
.attachments.Add Anhang
.body = "Hallo" & " " & Range("B3") & Chr(13) & _
            Chr(13) & _
            "**" & " " & Range("C2") & "," & " " & Range("F2") & " " & "**" & " " & "hat Ihnen eine Bestellanforderung (BANF) zur Überprüfung geschickt." & Chr(13) & _
            "Bitte kontrollieren Sie die BANF und leiten diese Email mit der Freigabe inkl. Anhang" & Chr(13) & _
            "an P142 Walz, Daniel weiter." & Chr(13) & _
            Chr(13) & _
            "Sollte es ein Angebot dazu geben, bitte in die Email anhängen." & Chr(13) & _
            Chr(13) & _
            "Vielen Dank"
.send
'.Send 'Hier wird die Mail gesendet
End With
Set MyOutApp = Nothing
Set MyMessage = Nothing
MsgBox "BANF wurde verschickt.", vbOKOnly
ThisWorkbook.Save
Application.Quit
End Function
Sub Versand()
If Kontrolle = True Then MsgBox "Eine oder mehrere Pflichtfelder wurden nicht ausgefüllt! BANF wurde nicht verschickt.", vbOKOnly
Else
Versenden
End If
End Sub

Anzeige
AW: Outlookversand je nach Zeile + Kontrolle
03.02.2023 10:50:27
peterk
Hallo

Function Kontrolle() As Boolean
    Kontrolle = False
    If Range("C2").Value = "" Then
        MsgBox "Nachname nicht ausgefüllt", vbOKOnly
    
    ElseIf Range("F2").Value = "" Then
        MsgBox "Vorname nicht ausgefüllt", vbOKOnly
   
    ElseIf Range("B3").Value = "" Then
        MsgBox "Prüfer nicht ausgefüllt", vbOKOnly
    ElseIf Range("B5").Value = "" Then
        MsgBox "Artikelnummer nicht ausgefüllt", vbOKOnly
    ElseIf Range("E5").Value = "" Then
        MsgBox "Artikelbezeichnung nicht ausgefüllt", vbOKOnly
    ElseIf Range("I5").Value = "" Then
        MsgBox "Menge nicht ausgefüllt", vbOKOnly
    ElseIf Range("J5").Value = "" Then
        MsgBox "AB-Nummer nicht ausgefüllt, falls keine Vorhanden bitte 0 eintragen", vbOKOnly
    ElseIf Range("K5").Value = "" Then
        MsgBox "Kostenstelle nicht ausgefüllt", vbOKOnly
    Else
        Kontrolle = True
    End If
End Function
Peter
Anzeige
AW: Outlookversand je nach Zeile + Kontrolle
03.02.2023 11:39:32
Daniel
super vielen Dank :)
wie bekomme ich den SUB gelöst ?
Wenn ich bei meinem Button in der Exceltabelle drücke (da ist das Makro Sub Versand hinterlegt).
Prüft er trotzdem die Funktion Kontrolle vorher nicht.
Es schickt gleich die Email raus.

Sub Versand()
    If Kontrolle = True Then
        MsgBox "Eine oder mehrere Pflichtfelder wurden nicht ausgefüllt! BANF wurde nicht verschickt.", vbOKOnly
    Else
        Versenden
    End If
End Sub

AW: Outlookversand je nach Zeile + Kontrolle
03.02.2023 14:12:31
Daniel
habe meinen Fehler gefunden und gelöst.
Nun klappt auch das kontrollieren und mailen/nicht mailen.
Jetzt müsste ich nur noch eine Verschachtelung richtig einbauen.
Es sind noch weitere 29 Zeilen, die kontrolliert werden müssen falls etwas in einem Feld der Zeile steht.
Ich bin mit meinem Code soweit gekommen, dass er sich meldet wenn in einem Feld der Zeile etwas fehlt.
Aber wenn ich versenden will sagt er dass in der Zeile ein Feld fehlt obwohl alles ausgefüllt ist.
Wo habe ich hier mein fehler ?

Function Kontrolle() As Boolean
    Kontrolle = False
    If Range("C2").Value = "" Then
        MsgBox "Nachname nicht ausgefüllt!", vbOKOnly
    ElseIf Range("G2").Value = "" Then
        MsgBox "Vorname nicht ausgefüllt!", vbOKOnly
    ElseIf Range("B3").Value = "" Then
        MsgBox "Prüfer nicht ausgefüllt!", vbOKOnly
    ElseIf Range("C4").Value = "" Then
        MsgBox "Angebot JA (X/_) nicht ausgefüllt!", vbOKOnly
    ElseIf Range("E4").Value = "" Then
        MsgBox "Angebot Nein (X/_) nicht ausgefüllt!", vbOKOnly
        
    ElseIf Range("G4").Value = "" Then
        MsgBox "Angebotsnr. nicht ausgefüllt! Falls kein Angebot vorhanden bitte *X* eintragen!", vbOKOnly
    ElseIf Range("B6").Value = "" Then
        MsgBox "Artikelnummer (Zeile 1) nicht ausgefüllt!", vbOKOnly
    ElseIf Range("F6").Value = "" Then
        MsgBox "Artikelbezeichnung (Zeile 1) nicht ausgefüllt!", vbOKOnly
    ElseIf Range("J6").Value = "" Then
        MsgBox "Menge (Zeile 1) nicht ausgefüllt!", vbOKOnly
    ElseIf Range("K6").Value = "" Then
        MsgBox "AB-Nummer (Zeile 1) nicht ausgefüllt! Falls keine Vorhanden, bitte *0* eintragen!", vbOKOnly
    ElseIf Range("L6").Value = "" Then
        MsgBox "Kostenstelle (Zeile 1) nicht ausgefüllt! Falls keine Notwendig, bitte *leer* eintragen!", vbOKOnly
    Else
        Kontrolle = True
    End If
End Function
Function Kontrolle2() As Boolean
    Kontrolle2 = False
    If Range("B7") & Range("F7") & Range("F7") & Range("J7") & Range("K7") & Range("L8").Value > "" Then
        If Range("B7").Value = "" Then
        MsgBox "Artikelnummer (Zeile 2) nicht ausgefüllt!", vbOKOnly
        ElseIf Range("F7").Value = "" Then
        MsgBox "Artikelbezeichnung (Zeile 2) nicht ausgefüllt!", vbOKOnly
        ElseIf Range("J7").Value = "" Then
        MsgBox "Menge (Zeile 2) nicht ausgefüllt!", vbOKOnly
        ElseIf Range("K7").Value = "" Then
        MsgBox "AB-Nummer (Zeile 2) nicht ausgefüllt! Falls keine Vorhanden, bitte *0* eintragen!", vbOKOnly
        ElseIf Range("L7").Value = "" Then
        MsgBox "Kostenstelle (Zeile 2) nicht ausgefüllt! Falls keine Notwendig, bitte *leer* eintragen!", vbOKOnly
        
        End If
    Else
        Kontrolle2 = True
    End If
End Function

Sub Versand()
        If Kontrolle = False Then
            MsgBox "Eine oder mehrere Pflichtfelder (Zeile 1) wurden nicht ausgefüllt! BANF wurde nicht verschickt.", vbOKOnly
        ElseIf Kontrolle2 = False Then
            MsgBox "Eine oder mehrere Pflichtfelder (Zeile 2) wurden nicht ausgefüllt! BANF wurde nicht verschickt.", vbOKOnly
    Else
        Versenden
            MsgBox "BANF wurde verschickt.", vbOKOnly
    End If
End Sub

Anzeige
AW: Outlookversand je nach Zeile + Kontrolle
03.02.2023 15:31:14
peterk
Hallo
Diese Zeile funktioniert nicht so wie Du es Dir denkst.
Du verbindest Die Werte aller Zellen zu einem String und dieser ist dann nur Leer wenn ALLE Zellen Leer sind.

If Range("B7") & Range("F7") & Range("F7") & Range("J7") & Range("K7") & Range("L8").Value > "" Then
aber dieses IF brauchst Du eigentlich auch nicht

Function Kontrolle2() As Boolean
    Kontrolle2 = False
    If Range("B7").Value = "" Then
        MsgBox "Artikelnummer (Zeile 2) nicht ausgefüllt!", vbOKOnly
    ElseIf Range("F7").Value = "" Then
        MsgBox "Artikelbezeichnung (Zeile 2) nicht ausgefüllt!", vbOKOnly
    ElseIf Range("J7").Value = "" Then
        MsgBox "Menge (Zeile 2) nicht ausgefüllt!", vbOKOnly
    ElseIf Range("K7").Value = "" Then
        MsgBox "AB-Nummer (Zeile 2) nicht ausgefüllt! Falls keine Vorhanden, bitte *0* eintragen!", vbOKOnly
    ElseIf Range("L7").Value = "" Then
        MsgBox "Kostenstelle (Zeile 2) nicht ausgefüllt! Falls keine Notwendig, bitte *leer* eintragen!", vbOKOnly
    Else
        Kontrolle2 = True
    End If
End Function
Peter
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige