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

When Dropdownchange

When Dropdownchange
25.08.2022 09:50:19
Brudolf
Seid gegrüßt werte Freunde der Excelmagie.
Ich habe folgendes Problem:
Ich habe eine Excel, in welcher aufgegebene Bestellungen gelistet und überwacht werden sollen.
Eine Spalte (I) enthält ein Dropdownfeld, in welcher derjenige, welcher ein Paket annimmt seinen Namen selektiert um festzuhalten, dass er das Paket vom Postboten angenommen hat.
In diesem Moment wollte ich, dass eine Email getriggert wird, welche den Initalen Besteller (Spalte A) darüber informiert.
Da ich bei meinem Dropdownfeld mittels Rechtsklick den EIntrag "Makro zuweisen" nicht finden konnte (darauf verweisen viele Foren)
Wollte ich als Workaround eine Prüfschliefe zu beginn der Makro einbauen, welche dann den Emailversand triggert.
Sprich: Check ob (I) angenommen gefüllt ist, dann an jenen welcher spalte A eingetragen ist die mail versenden
Irgendwo habe ich aber noch einen Objektfehler, welchen ich partout nicht finde.

Private Sub Workbook_Open()
'gecutteter code, welcher aber funktioniert[...]
' Email check
Dim raBereich2 As Range
Dim raZelle2 As Range
Set raBereich2 = Worksheets("Tabelle1").Range("I2:I100")
For Each raZelle2 In raBereich2
If raZelle2  "" And raZelle2.Offset(0, 11) = "" Then
'emails
Tabelle1.Cells(X, 11).Value = Date
Dim objOutlook As Object
Dim objMail As Object
Dim xCell As Integer
Dim strbody As String
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
With objMail
If Tabelle1.Cells(X, 1) = "Mr" Then
.To = "et"
.CC = "thm"
.Subject = "Versandexcel meldet gehorsamst deine Bestellung von " & Tabelle1.Cells(X, 5).Value & " ist angekommen"
.Body = "Ihre Bestellung vom " & Tabelle1.Cells(X, 2).Value & " von " & Tabelle1.Cells(X, 5).Value & " ist angekommen und wurde durch " & Tabelle1.Cells(X, 9).Value & " angenommen"
.send
Else
If Tabelle1.Cells(X, 1) = "Lot" Then
.To = "lu
.CC = "th
.Subject = "Versandexcel meldet gehorsamst deine Bestellung von " & Tabelle1.Cells(X, 5).Value & " ist angekommen"
.Body = "Ihre Bestellung vom " & Tabelle1.Cells(X, 2).Value & " von " & Tabelle1.Cells(X, 5).Value & " ist angekommen und wurde durch " & Tabelle1.Cells(X, 9).Value & " angenommen"
.send
Else
If Tabelle1.Cells(X, 1) = "Pr" Then
.To = "k
.CC = "t
.Subject = "Versandexcel meldet gehorsamst deine Bestellung von " & Tabelle1.Cells(X, 5).Value & " ist angekommen"
.Body = "Ihre Bestellung vom " & Tabelle1.Cells(X, 2).Value & " von " & Tabelle1.Cells(X, 5).Value & " ist angekommen und wurde durch " & Tabelle1.Cells(X, 9).Value & " angenommen"
.send
Else
If Tabelle1.Cells(X, 1) = "Rz" Then
.To = "r
.CC =
.Subject = "Versandexcel meldet gehorsamst deine Bestellung von " & Tabelle1.Cells(X, 5).Value & " ist angekommen"
.Body = "Ihre Bestellung vom " & Tabelle1.Cells(X, 2).Value & " von " & Tabelle1.Cells(X, 5).Value & " ist angekommen und wurde durch " & Tabelle1.Cells(X, 9).Value & " angenommen"
.send
End If
End If
End If
End If
End With
End If
Next raZelle2
'ende emailcheck
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: When Dropdownchange
25.08.2022 10:11:35
Oberschlumpf
Moin,
zeig doch bitte mal eine hilfreiche Bsp-Datei mit ausreichend vielen Bsp-Daten in den richtigen Zellen und deinem Code.
Hilfreich = eine Datei, die vom Aufbau genau wie das Original ist; also gleiche Zeilen/Spalten verwenden
Ciao
Thorsten
Worksheet_Change
25.08.2022 10:29:57
Rudi
Hallo,
einfach auf Änderungen in I reagieren.
In das Modul des Blatts:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim objOutlook As Object
Dim objMail As Object
Dim strBody As String
Dim x As Long
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
If Target.Column = 9 Then 'Änderung in I
x = Target.Row
Cells(x, 11).Value = Date
'emails
With objMail
Select Case Cells(x, 1) 'A
Case "Mr"
.To = "et"
.CC = "thm"
Case "Lot"
.To = "lu"
.CC = "th"
Case "Pr"
.To = "k"
.CC = "t"
Case "Rz"
.To = "r"
.CC = ""
End Select
.Subject = "Versandexcel meldet gehorsamst deine Bestellung von " & Tabelle1.Cells(x, 5).Value & " ist angekommen"
.Body = "Ihre Bestellung vom " & Tabelle1.Cells(x, 2).Value _
& " von " & Tabelle1.Cells(x, 5).Value & " ist angekommen und wurde durch " _
& Tabelle1.Cells(x, 9).Value & " angenommen"
.send
End With
End If
End Sub
Gruß
Rudi
Anzeige
AW: Worksheet_Change
25.08.2022 11:03:38
Brudolf
Hey Rudi =)
VIELEN LIEBEN DANK!
einmal für das eindampfen meines IF/IF/IF workarounds und zum anderen für exakt die Lösung dessen, was ich versucht habe zu kreieren :D
Ich bin super überrascht wie schnell man hier Hilfe bekommt! (Danke an der Stelle auch an Oberschlumpf, welcher mir vor kurzem schonmal geholfen hat vom Schlauch aufzustehen)
einzig und alleine wollte ich noch eine Prüfung hinzufügen

 Case if x,1 = ""
dann soll es natürlich skippen, da es sich sonst aufhängt.
Wollte zunächst oben einen einfachen "if" einbauen, das hat aber nicht funktioniert. dann habe ich versucht ein

case = "" goto :leer 
einzubauen, aber auch dann versendet er gar keine mails mehr :/
Dürfte ich dich hier nochmals bemühen mir auf die Sprünge zu helfen^^
Anzeige
AW: Worksheet_Change
25.08.2022 11:10:06
Rudi
dann versuch mal das:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim objOutlook As Object
Dim objMail As Object
Dim strBody As String
Dim x As Long
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
If Target.Column = 9 Then 'Änderung in I
If Target  "" Then  'I nicht leer
x = Target.Row
Cells(x, 11).Value = Date
'emails
With objMail
Select Case Cells(x, 1) 'A
Case "Mr"
.To = "et"
.CC = "thm"
Case "Lot"
.To = "lu"
.CC = "th"
Case "Pr"
.To = "k"
.CC = "t"
Case "Rz"
.To = "r"
.CC = ""
Case Else
Exit Sub
End Select
.Subject = "Versandexcel meldet gehorsamst deine Bestellung von " & Tabelle1.Cells(x, 5).Value & " ist angekommen"
.Body = "Ihre Bestellung vom " & Tabelle1.Cells(x, 2).Value _
& " von " & Tabelle1.Cells(x, 5).Value & " ist angekommen und wurde durch " _
& Tabelle1.Cells(x, 9).Value & " angenommen"
.send
End With
End If
End If
End Sub
Gruß
Rudi
Anzeige
AW: Worksheet_Change
25.08.2022 11:13:27
Brudolf
Huch da warst du etwas zu schnell :D besten Dank nochmals für deine Zeit und Lösung =)
Ich habe hier leider noch keine Möglichkeit gefunden Daumen oder Kudos zu vergeben :D
AW: Worksheet_Change
25.08.2022 11:10:07
Brudolf
Ich habe es nun mit

case = "" goto leer  
und dann vor dem endwith noch ein

leer:
hinbekommen =)
VIELEN LIEBEN DANK NOCHMALS AN DER STELLE!!! =)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige