Microsoft Excel

Herbers Excel/VBA-Archiv

SMS aus Excel | Herbers Excel-Forum


Betrifft: SMS aus Excel von: Johann
Geschrieben am: 17.11.2009 07:56:25

Hallo Excel-Profis! Ich brauch eure Unterstützung!
Folgende Problem:
Ich hab mir aus dem Forum folgenden Code geholt, mit dem sich wunderbar ein SMS mit Excel über _
Outlook verschicken lässt (funktioniert super!):


Sub q()
   Dim oOL As Object
   Dim oOLMsg As Object
   Dim oOLRecip As Object
   Dim oOLBody As Object
   Dim sAddress As String
   Dim rng As Range
   Set rng = ActiveWindow.RangeSelection
   sAddress = Range("C17").Value                  'Inhalt der Zelle C17:     [sms:+436641234567] _
 
   Set oOL = CreateObject("Outlook.Application")
   Set oOLMsg = oOL.CreateItem(0)
   With oOLMsg
      Set oOLRecip = .Recipients.Add(sAddress)
      .Body = Cells(7, 3)
      .Send
   End With
   oOLRecip.Resolve
   Set oOLRecip = Nothing
   Set oOLMsg = Nothing
   Set oOL = Nothing
End Sub

Allerdings funkts immer nur mit einem SMS. Die Empfängeradresse = Inhalt der Zelle C17 sieht so aus: [sms:+436641234567].
Für ein SMS an mehrere Empfänger, hätte ich gedacht, müsste das dann so aussehen:
[sms:+436641234567];[sms:+436641234567];[sms:+436641234567].....
Da kommt aber immer die Fehlermeldung: Outlook kennt mindestens einen Namen nicht.
Wie kann ich ein Gruppen-SMS verschicken? Bitte um Eure Hilfe.

LG Johann

  

Betrifft: AW: SMS aus Excel von: mumpel
Geschrieben am: 17.11.2009 09:53:41

Hallo!

Dazu musst Du die SMS-Adressen in einzelne Zellen schreiben und die SMS dann in Schleife versenden. Also ähnlich wie eine Serienmail. In meinem beispiel stehen die SMS-Nummern in D1 bis D3 (3 Stück)


Sub q()
Dim oApp As Object
Dim i As Integer

For i = 1 To 3
Set oApp = CreateObject("Outlook.Application")
With oApp.CreateItem(0)
   .to = Cells(i, 4)
   .Body = Cells(7, 3)
   .Send
End With
Next i
Set oApp = Nothing

End Sub

Code eingefügt mit VBA in HTML 2.0


Gruß, René


  

Betrifft: AW: SMS aus Excel von: Johann
Geschrieben am: 17.11.2009 10:43:41

Hallo Excel-Team, Hallo Rene!

Danke für deine schnelle Antwort. Ich hab's gleich ausprobiert und es funktioniert.
Nur:
Outlook macht bei jedem Empfänger eine Sicherheitsabfrage. Macht bei 50 Adressen 50 Abfragen. Kann man diese Abfragen vermeiden?

Danke aus dem schönen Weinviertel
Johann


  

Betrifft: AW: SMS aus Excel von: mumpel
Geschrieben am: 17.11.2009 10:54:52

Ja. Indem Du die Mail zuerst anzeigst. Vor .Send noch ein .Display.


  

Betrifft: Oder... von: mumpel
Geschrieben am: 17.11.2009 10:59:59

...mit SendKeys arbeiten


Sub q()
Dim oApp As Object
Dim i As Integer
Dim WsShell

For i = 1 To 3
Set oApp = CreateObject("Outlook.Application")
With oApp.CreateItem(0)
   .to = Cells(i, 4)
   .Body = Cells(7, 3)

Rem Mail sofort senden 
   Set WsShell = CreateObject("WScript.Shell")
       WsShell.AppActivate olApp
       WsShell.SendKeys "%s"
   Set WsShell = Nothing

End With
Next i
Set oApp = Nothing

End Sub
Code eingefügt mit VBA in HTML 2.0



  

Betrifft: AW: Oder... von: Johann
Geschrieben am: 17.11.2009 16:32:26

Danke Rene für deine Mühe! Tut leid, dass es mit der Antwort so lange gedauert hat (Chef)!!

Bei der ersten Version ändert sich bei mir nur, dass jedes SMS vor dem Versenden geöffnet wird. Die Bestätigung für jedes SMS einzeln ist trotzdem notwendig.

Bei der 2. Version gibt Outlook bei Durchlauf im Visual Basic Editor in der Zeile "WsShell.SendKeys "%s" einen WarnTon aus. Sonst tut sich leider nichts.
Wenn ich das Modul aus dem Arbeitsblatt selbst starte, kommt auch der Warnton nicht.

Mach ich etwas falsch?
S.G. Johann


  

Betrifft: AW: Oder... von: mumpel
Geschrieben am: 17.11.2009 17:38:18

Versuch das mal:


Sub q()
Dim oApp As Object
Dim i As Integer
Dim oAppRecip
For i = 1 To 3
Set oApp = CreateObject("Outlook.Application")
With oApp.CreateItem(0)
   Set oOLRecip = .Recipients.Add(i)
   .Body = Cells(7, 3)
   .Send
End With
   oOLRecip.Resolve
Next i
Set oApp = Nothing

End Sub

Code eingefügt mit VBA in HTML 2.0



  

Betrifft: Korrektur von: mumpel
Geschrieben am: 17.11.2009 17:42:34

Aus oOLRecip muss oAppRecip werden.

Im vorherigen Code ist auch ein kleiner Fehler, in der SendKeys-Routine. Dort muss oApp stehen, nicht olApp.


  

Betrifft: AW: Korrektur von: Johann
Geschrieben am: 18.11.2009 23:55:29

Hallo Rene!

Danke für deine Hilfe und sorry für meine Antwort-Pause.
Ich werde deine tollen Vorschläge ausprobieren, kann das aber nur in der Arbeit - sonst hab ich keinen SMS-Dienst über Outlook aufgerüstet. Ich meld mich morgen wieder.

Danke und schöne Grüße aus dem Weinviertel
Johann