Hi Cracks
Ich habe eine Artikelliste in Excel vor mir. Meine Kollegen können dort jeweils einige Artikel ankreuzen und dann den Knopf ‚senden‘ anklicken und so die angekreuzten Teile als Bestellung zurück in die Firma schicken. Es muss ein wenig ‚idiot proof‘ gestaltet sein, da nicht alle des PCisch wirklich mächtig sind.
Das war bis anhin auch gar kein, da wir alle Outlook auf der Kiste hatten. Ein kleiner VBA Code und alles lief auf Knopfdruck automatisch ab.
Nun wurde von der Firma das ganze Mailsystem auf google mail umgestellt und das Outlook läuft nicht mehr…
Kennt jemand eine VBA Lösung, wie meine Jungs wieder den ‚Knopf‘ drücken können, dass automatisch diese .xls Datei an vordefinierte Empfänger in der Firma gegooglemailt wird??
Au weh - da kann ich nicht helfen
Hallo ME67
Danke für die Anfrage. Ich kann dir nicht direkt weiterhelfen. Da ist schon eine ganze Applikation dahinter. Einfe einfache Lösung müsste aber so aussehen, dass du im Makrocode den Zugriff auf Outlook (ein paar Befehlszeilen) durch den Zugriff auf Gmail austauscht. Dafür müsste ich aber zuerst einmal in die Excel-Tabelle mit dem Makro einsehen können.
Gruss
Hoi Sepp
Danke für Deine Antwort!!
Das Makro ist einigermassen trivial…
Ich habe Dir den Code unten reinkopiert.
Sub senden1()
'Ausgefülltes Blatt als neue Arbeitsmappe speichern.
Sheets(„Bestellung“).Copy
ActiveSheet.Unprotect Password:=„zaybx“
'Alles kopieren und als „Werte“ einfügen um externe Verknüpfungen zu vermeiden.
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
Range(„A1“).Select
Application.DisplayAlerts = False
'Die neue Arbeitsmappe speichern
ActiveWorkbook.SaveAs Filename:=„C:\TEMP\bestellblatt.xls“, FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
'in Zelle E12 den Namen des Bestellers ermitteln.
nme = ActiveWorkbook.Sheets(„bestellung“).Range(„E12“).Value
'Die Adressaten ermitteln
rec1 = Workbooks(„index.xls“).Sheets(„index“).Range(„T2“).Value & Workbooks(„index.xls“).Sheets(„index“).Range(„V2“).Value
rec2 = Workbooks(„index.xls“).Sheets(„index“).Range(„T3“).Value & Workbooks(„index.xls“).Sheets(„index“).Range(„V3“).Value
rec3 = Workbooks(„index.xls“).Sheets(„index“).Range(„T4“).Value & Workbooks(„index.xls“).Sheets(„index“).Range(„V4“).Value
’ das Bestallblatt als Emailanhang versenden versenden
Workbooks(„bestellblatt.xls“).SendMail Recipients:=Array(rec1, rec2, rec3), Subject:="Materialbestellung " & nme
ActiveWindow.Close
Windows(„index.xls“).Activate
End Sub
War simpel aber zweckmässig.
Ich habe Outlook nirgends definieren müssen. Mit dem ‚sendmail‘ Befehl hat es immer automatisch Outlook geöffnet…
Gruss
Hallo ME67
Ich habe ein Beispiel gefunden um aus Excel über G-Mail Daten zu versenden. Du findest im Code eine Variable „strbody“. Der Inhalt dieser Variable kann in ein Gmail übergeben werden. Die folgenden 4 Codezeilen musst du noch ändern:
.Item("http://schemas.microsoft.com/cdo/configuration/sendu…) = „Full GMail mail address“
.Item("http://schemas.microsoft.com/cdo/configuration/sendp…) = „GMail password“
Nimm deine eigene E-Mail-Adresse um den Code dieser Zeile zu testen: .To = „Mail address receiver“
Ändere YourName in den den „From“-Namen, den du benutzen willst: .From = „“„YourName“" "
Wenn du den Fehler „The transport failed to connect to the server“ bekommst, musst du den SMTP port von 25 auf 465 ändern.
Hier der Makro:
Sub CDO_Mail_Small_Text_2()
Dim iMsg As Object
Dim iConf As Object
Dim strbody As String
Dim Flds As Variant
Set iMsg = CreateObject(„CDO.Message“)
Set iConf = CreateObject(„CDO.Configuration“)
iConf.Load -1 ’ CDO Source Defaults
Set Flds = iConf.Fields
With Flds
.Item("http://schemas.microsoft.com/cdo/configuration/smtpu…) = True
.Item("http://schemas.microsoft.com/cdo/configuration/smtpa…) = 1
.Item("http://schemas.microsoft.com/cdo/configuration/sendu…) = „[email protected]“
.Item("http://schemas.microsoft.com/cdo/configuration/sendp…) = „password“
.Item("http://schemas.microsoft.com/cdo/configuration/smtps…) = „smtp.gmail.com“
.Item("http://schemas.microsoft.com/cdo/configuration/sendu…) = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtps…) = 465
.Update
End With
strbody = „Hi there“ & vbNewLine & vbNewLine & _
„This is line 1“ & vbNewLine & _
„This is line 2“ & vbNewLine & _
„This is line 3“ & vbNewLine & _
„This is line 4“
With iMsg
Set .Configuration = iConf
.To = „[email protected]“
.CC = „“
.BCC = „“
.From = „“„YourName“" "
.Subject = „Important message“
.TextBody = strbody
.Send
End With
End Sub
Weitere Anmerkung:
Wenn du die Antwort-Adresse ändern willst, muss du folgende Codezeile einfügen:
.ReplyTo = „[email protected]“
Wie gesagt, ich habe den Code aus dem Internet kopiert und nicht ausprobiert. Ich selber müsste mir noch G-Mail einrichten - arbeite mit Outlook. Ich denke, am besten probierst du den Makro aus, nach dem du die wichtigsten Anpassungen vorgenommen hast. Wenn du es schaffst einen Text aus Excel zu versenden, ist es nicht mehr schwierig, deine Variableninhalte zu mailen.
Hier noch der Link zur englischen Seite:
http://www.excelforum.com/excel-programming/645329-g…
Bitte gib mir Bescheid, ob es geklappt oder eben nicht geklappt hat.
Gruss
Hallo,
leider kann ich bei untem beschriebenen Problem nicht weiterhelfen. Eventuell nützt es, den VBA-Code mal im Forum von www.herber.de zu posten. Dort kann man auch eine Online-Suche nach dem Problem durchführen. Vielleicht gibt es dort schon eine Lösung.
Gruß
welga
Hoi Sepp
Endlich find ich mal wieder Zeit an meinem kleinen ‚Projekt‘ zu arbeiten.
Vielen Dank für den Code!!
Es funktioniert!
Ich habe mal was ähnliches gefunden im www, aber das hat nicht funktioniert…
Mit dem was du mir da geschickt hast gehts wunderbar.
Es wird ein Mail mit den richtigen Empfängern und dem Text verschickt. - Läuft! -
Denkst du es ist möglich -oder hast vielleicht gar eine Idee - dass man die Mappe als attachment an das Mail hängen kann??
Gruss
Hallo ME67
Ich habe ein Beispiel gefunden um aus Excel über G-Mail Daten
zu versenden. Du findest im Code eine Variable „strbody“. Der
Inhalt dieser Variable kann in ein Gmail übergeben werden.Bitte gib mir Bescheid, ob es geklappt oder eben nicht
geklappt hat.Gruss
Hoi Sepp
Ich habs gefunden.
Ich habe noch die Zeile .AddAttachment eingefügt jetzt läuft es so wie ich es gerne möchte.
Vielen Dank für Deine Hilfe!
Du hast mir eine Menge Zeit erspart!!
Gruss
ME67
Hallo ME67
Super. „Google sei Dank.“
Gruss
Sepp
sorry tut mir leid kann ich leider nicht weiterhelfen.
gruss / raingem