| |
 | Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
|
Autor
|
Thema: Mail aus Excel (1697 mal gelesen)
|
ottto Mitglied
 Beiträge: 7 Registriert: 30.03.2006
|
erstellt am: 19. Okt. 2006 16:50 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich habe leider noch nicht viel Erfahrungen mit Excel/Makro, und hoffe auf diesem Wege Hilfe für die Lösung meines Problem's zu finden. Ich hab mehrere Zellen, die per Formel mit Inhalt gefüllt werden. Bei bestimmtem Inhalten soll eine Mail versendet werden. Was muss im VB-Editor eingetragen werden, damit auf das Ereignis reagiert wird? Danke. ottto Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
       

 Beiträge: 8086 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 19. Okt. 2006 17:10 <-- editieren / zitieren --> Unities abgeben:          Nur für ottto
Hallo Ottto, was genau willst Du denn versenden? Ich habe hier im Angebot, daß die ganze Mappe versendet wird, sobald in der Tabelle1, Zelle A1 ein von Dir definierter String-Wert steht: Code: Option Explicit Public Sub MailSenden() On Error GoTo ERROR_HANDLER Dim strEreignis As StringstrEreignis = "Hier Angabe machen" If Tabelle1.Cells(1, 1).Value = strEreignis Then ActiveWorkbook.SendMail Recipients:="Ziel@Addresse.de", Subject:="Dein Betreff" 'Addresse und Betreff anpassen! 'MsgBox "Ihre Datei wurde versendet." End If ERROR_HANDLER: 'MsgBox "Bei der Übertragung sind Fehler aufgetreten. Ihre Datei wurde nicht versendet. Bitte prüfen Sie Ihr e-mail-Programm." End Sub
Ich hoffe, das hilft schon einen Schritt weiter. Gruß, Nicole ------------------ Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... ---------------- Erfinnder-Gilden-Lehrling Stufe: 5 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
   
 Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 19. Okt. 2006 17:21 <-- editieren / zitieren --> Unities abgeben:          Nur für ottto
|
runkelruebe Moderator Straßen- / Tiefbau
       

 Beiträge: 8086 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 19. Okt. 2006 17:31 <-- editieren / zitieren --> Unities abgeben:          Nur für ottto
@Frederik: Tja, Dein Pech daß ich Süchtling bin Habe mir grade ein Zichtchen gegönnt und dabei ins Forum geschaut. Dann diese Frage gelesen und gedacht: Hey, genau das hast Du Dir doch bei Deinem letzten Projekt mühsam erkämpft  Also reines Copy&Paste  Aber mit Dialog ist doch auch schön! Vielleicht sogar erwünscht in diesem Fall? Ottto wird sich äußern  Schönen Abend noch! Nicole ------------------ Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... ---------------- Erfinnder-Gilden-Lehrling Stufe: 5 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ottto Mitglied
 Beiträge: 7 Registriert: 30.03.2006
|
erstellt am: 20. Okt. 2006 08:21 <-- editieren / zitieren --> Unities abgeben:         
Hallo und vielen Dank für die schnellen Antworten. Ich hab den Code in "Diese Arbeitsmappe" eingefügt. Wenn ich dort "Sub/UserForm ausführen" funktioniert die Geschichte. Die Datei wird an die entprechende Adresse versendet. Ich bekomme aber keine Reaktion, wenn ich den String in die Entsprechende Zeile "nur" eintrage. Ich glaube, ich brauche noch einen Auslöser, damit der Code abgearbeitet wird. Danke. ottto Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
       

 Beiträge: 8086 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 20. Okt. 2006 08:38 <-- editieren / zitieren --> Unities abgeben:          Nur für ottto
Das kannst Du über einen button machen: Code: Private Sub CommandButton1_Click() Call MailSenden End Sub
oder über Ereignisse im Worksheet: z.B. Code: Private Sub Worksheet_Calculate() Call MailSenden End Sub
oder Du weist Deinem Makro eine Tastenkombination zu, oder Du löst es manuell über Alt+F8 aus...oder oder oder. Sei kreativ! Gruß, Nicole ------------------ Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... ---------------- Erfinnder-Gilden-Lehrling Stufe: 5 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ottto Mitglied
 Beiträge: 7 Registriert: 30.03.2006
|
erstellt am: 20. Okt. 2006 14:30 <-- editieren / zitieren --> Unities abgeben:         
Hallo Nicole, vielen Dank für die Info. Ich tue mich mit dem VBA noch ziemlich schwer. Die Datei wird von mehreren Usern genutzt. Ich muss sicherstellen, dass der Code abgefragt wird, wenn Änderungen an der Datei gemacht werden. Kann man eine Reaktion auslösen wenn in ein anderes Feld gesprungen, oder die Datei gespeichert wird? Unabhängig davon hab ich noch eine Frage. Was ist zu tun, damit eine Form gleich beim Öffnen einer Excelmappe aufgerufen wird? Vielen Dank Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
       

 Beiträge: 8086 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 20. Okt. 2006 14:58 <-- editieren / zitieren --> Unities abgeben:          Nur für ottto
Klar, blende Dir den VBA-Projekt-Explorer ein und doppelKlick auf "Diese Arbeitsmappe". Auf der rechten Seite oben dann mal "Workbook" einstellen, rechts daneben "open" und er erstellt Dir das Gerüst für die Auto_Open-Anweisung. Da rein den Code, der beim öffnen ausgeführt werden soll. Code: Private Sub Workbook_Open() 'Tu irgendwas End Sub
das zweite was Du willst, geht genauso, nur nicht Diese Arbeitsmappe, sondern das Blatt anklicken, in dem was passieren soll, dann auf "Worksheet" und "Selection_Change".
Code: Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'Jetzt mach was anderes End Sub
Das Target solltest Du einschränken auf den Bereich, der relevant ist, sonst rödelt excel bei jedem Klick das Makro durch.Zu dem Ganzen solltest Du unbedingt auch mal in der Hilfe forschen. Gruß, Nicole [edit] na da war was durcheinander[/edit] ------------------ Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... ---------------- Erfinnder-Gilden-Lehrling Stufe: 5 [Diese Nachricht wurde von runkelruebe am 20. Okt. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
   
 Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 20. Okt. 2006 15:07 <-- editieren / zitieren --> Unities abgeben:          Nur für ottto
Hallo ottto, zu Deinem zweiten Punkt - meinst Du sowas? [Edit 2: Mist - da hat´s echt was verworfen. Steht aber im vorherigen Beitrag anschaulich drin. /Edit 2] Zitat: Kann man eine Reaktion auslösen wenn in ein anderes Feld gesprungen, oder die Datei gespeichert wird?
Ja. Beides ist sicherlich möglich. Die Frage ist: Wie und was möchtest Du prüfen? Wenn in ein anderes Feld gesprungen wird, verlässt Du ja das eine - und das andere wird aktiviert. Auch das Speichern kannst Du abfragen, z.B. Code: If ActiveWorkbook.Saved = True Then MsgBox "Bereits gesichert", vbInformation + vbOKOnly, "Hinweis" Else: Application.Dialogs(xlDialogSaveAs).Show End If
HTH , Frederik [Edit 1 Nicole -wie immer- auf der Überholspur /Edit 1][Diese Nachricht wurde von Paulchen am 20. Okt. 2006 editiert.] [Diese Nachricht wurde von Paulchen am 20. Okt. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ottto Mitglied
 Beiträge: 7 Registriert: 30.03.2006
|
erstellt am: 20. Okt. 2006 16:22 <-- editieren / zitieren --> Unities abgeben:         
Prima, sieht schon richtig gut aus. Vielen Dank. Eine Geschichte hab ich noch. Bevor die Mail gesendet wird, kommt ein Outlookfenster hoch. "Eine Anwendung versucht automatisch in ihrem Auftrag zu senden. " Und wartet auf eine Eingabe. Ist natürlich schlecht, wenn ein User an der Stelle die Routine unterbrechen kann. Ich denke das geht nur auf der Outlookseite zu lösen, gibt vielleicht einen RegKey oder ähnliches. Ich werd mich mal schlau machen. Schönes WE!! Ottto Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
   
 Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 20. Okt. 2006 19:27 <-- editieren / zitieren --> Unities abgeben:          Nur für ottto
|
okl Mitglied Wirtsch-Ing (Maschbau)
 
 Beiträge: 157 Registriert: 21.04.2006 3,6 GHz, 2 GB RAM, NVIDIA Quadro FX 1300, Delmia V5R16 SP1, Win XP Prof SP2, Office 2003, VS 2005, VB 6
|
erstellt am: 24. Okt. 2006 13:57 <-- editieren / zitieren --> Unities abgeben:          Nur für ottto
Moin zusammen! @Paulchen: Nein, dies hat nichts mit Firewall etc zu tun und lässt sich auch nicht ausschalten. Wäre doch etwas ganz Feines, wenn so einfach Spammails im großen Maße von einem Rechner verschickt werden könnten. Der Anwender muss immer sein OK zum Versandt der Mail geben. Grüße, Ole Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
       

 Beiträge: 8086 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 24. Okt. 2006 14:05 <-- editieren / zitieren --> Unities abgeben:          Nur für ottto
Hallo Ole, Zitat: Der Anwender muss immer sein OK zum Versandt der Mail geben.
das kann ich so nicht stehen lassen: mein mail-Proggi (kein Outlook) will da nämlich (leider) keine Bestätigung haben und schickt munter drauflos Dadurch hab mir selber beim Testen meines ersten Makros reichlich mails geschickt  ------------------ Gruß, Nicole Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
okl Mitglied Wirtsch-Ing (Maschbau)
 
 Beiträge: 157 Registriert: 21.04.2006 3,6 GHz, 2 GB RAM, NVIDIA Quadro FX 1300, Delmia V5R16 SP1, Win XP Prof SP2, Office 2003, VS 2005, VB 6
|
erstellt am: 24. Okt. 2006 14:37 <-- editieren / zitieren --> Unities abgeben:          Nur für ottto
|
bst Mitglied
 
 Beiträge: 192 Registriert: 31.08.2004 .
|
erstellt am: 24. Okt. 2006 15:12 <-- editieren / zitieren --> Unities abgeben:          Nur für ottto
|
okl Mitglied Wirtsch-Ing (Maschbau)
 
 Beiträge: 157 Registriert: 21.04.2006 3,6 GHz, 2 GB RAM, NVIDIA Quadro FX 1300, Delmia V5R16 SP1, Win XP Prof SP2, Office 2003, VS 2005, VB 6
|
erstellt am: 24. Okt. 2006 15:31 <-- editieren / zitieren --> Unities abgeben:          Nur für ottto
|