Willkommen |
|
myGully |
|
Links |
|
Forum |
|
|
|
|
10.07.13, 14:48
|
#1
|
Anfänger
Registriert seit: Jul 2009
Beiträge: 10
Bedankt: 0
|
Exel VBA E-mail Generieren
Hallo Gemeinde,
Ich möchte aus einem Exelsheet gerne eine Email erzeugen lassen. Diese soll folgendermaßen aufgebaut sein.
Das Sheet dient als Bestellformular.Es Wird immer in eine Zeile, der Artikel, die Stückzahl und automatisch der Lieferant und Bestellnummer eingetragen (über Sverweis aus einer Datenbank). Den Status setzt der Bestellvorgang auslösende (Mensch). Wäre natürlich ganz cool wenn der Status automatisch angepasst wird, also von Offen auf Bestellt, sobald die Mail genriert wurde.
Nun soll Eine Mail erstellt werden die die Artikel an einen Liferanten ausfiltert und die Artikel in einer Mail auflistet. Der Empfänger soll ebenfalls schon eingetragen werden und ist in einem weiteren sheet aufgeführt. Könnte aber auch über Sverweis in einer neuen Spalte eingefügt werden. Die Funktion wird dann über einen Button gestartet der z.b. Heisst "Bestellung Huber" Generieren. Es wird Outlook verwendet.
Hier ein Beispiel:
Anzahl: Artikel: Bestellnummer: Lieferant: Status:
1 Bleistift 1001 Huber Offen
1 Radiergummi 2001 Lempke Offen
1 Buntstift Rot 3025 Huber Bestellt
2 Buntstift Blau 4512 Huber Offen
Die e-mail soll dann wie folgt aussehen:
Empfänger: [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
Betreff: Bestellung
Inhalt:
Hiermit möchte ich folgendes Bestellen:
Stückzahl: Artikel: Bestellnummer:
1 Bleistift 1001
2 Buntstift Blau 4512
Mit Freundlichem Gruss,
Max Mustermann
Ist sowas mit Exel möglich ?
Ich weis, dass das sehr komplex ist.
Vielen Dank schonmal für die Mühe.
|
|
|
10.07.13, 16:50
|
#2
|
Banned
Registriert seit: Mar 2012
Beiträge: 337
Bedankt: 93
|
Ohne dreckiges Hacken und unsinnige S*****e ist das nicht möglich.
Mails kann man nicht einfach so verschicken.
Eine echte Lösung zu implementieren würde deutlich schneller gehen.
|
|
|
10.07.13, 19:14
|
#3
|
Agnostiker
Registriert seit: Dec 2009
Beiträge: 4.203
Bedankt: 4.438
|
Hi...
jetzt bist du aber auf den Geschmack gekommen...
Also das geht natürlich schon, gibt aber zuweilen Zugriffsprobleme und das eingefügte sieht auch nicht wirklich gut aus, weil die Tabellenform verloren geht... das ist zwar alles hinzubekommen, aber das ist mir doch zu aufwändig...
Trotzdem hier ein kleines Beispiel...
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
also am Besten wäre es, wenn Outlook schon geöffnet ist, sonst speichert es nur die Mail und sie wird erst mit dem nächsten Senden versendet...
In B1 die email-addi eingeben
In B2 den Betreff
Beim Klicken auf den "Email öffnen"-Button wird automatisch der Bereich von A4 bis Spalte E und der höchsten nichtleeren Zeile in Spalte A markiert... dann öffnet sich eine leere email mit der Adresse und dem Betreff... jetzt in der Mail einfach auf "Einfügen" klicken, dann kannst du das nochmal checken und mit "Senden" isses weg...
__________________
Der Klügere gibt nach... deshalb regieren die Dummen die Welt
|
|
|
10.07.13, 19:31
|
#4
|
Banned
Registriert seit: Aug 2012
Beiträge: 223
Bedankt: 68
|
Moment...
... wer soll das Excel-Sheet bekommen und die Bestellung abschicken?
Der Kunde?
Und wer ist der Kunde?
Wo sitzt der Kunde?
Woher kommen die Daten?
Die Outlook-Lösung würde nur funktionieren, wenn alles NICHT über das Internet erreichbar ist und der Kunde Outlook und ein entsprechenden Mailzugang besitzt!
Das ist hier an keiner Stelle erwähnt.
Eine Lösung kann man hier also gar nicht anbieten, da zuviele Fragen nicht beantwortet sind.
|
|
|
10.07.13, 19:41
|
#5
|
Agnostiker
Registriert seit: Dec 2009
Beiträge: 4.203
Bedankt: 4.438
|
@NetWebs
St4R ist der Kunde, weil er bestellt...
Email-Empfänger kann er in Excel beliebig eingeben...
Die Bestelldaten kann er in Excel beliebig eingeben...
Wenn sein Lieferant keine Email hätte, würde er nicht über Email bestellen und Outlook braucht der Empfänger auch nicht...
Du verkomplizierst das hier gerade ein wenig...
@St4r
Achso... das mit den nur offenen Bestellungen wäre dann das kleinste Problem und den Status könnte man natürlich auch gleich mit ändern... ich werde da morgen noch ein bisschen dran rumspielen...
__________________
Der Klügere gibt nach... deshalb regieren die Dummen die Welt
|
|
|
10.07.13, 21:25
|
#6
|
Echter Freak
Registriert seit: Mar 2010
Ort: /home/spartan-b292
Beiträge: 2.857
Bedankt: 1.700
|
Ich konnte mir deinen Code jetzt nicht angucken aber, der TE hat geschrieben, dass die Daten über eine Datenbank reinkommen hast du daran gedacht?
Davon mal abgesehen ist so ne Lösung über VBA doch Mist. Was passiert wenn die Office Version geändert wird? Was passiert wenn die Outlookversion geändert wird? Funktioniert dann noch alles?
Da bist du, wie Progmaster schon angemerkt hat, mit einer selbst implementierten (=>sauberen) Lösung tausendmal besser bedient.
__________________
"They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety"
|
|
|
11.07.13, 09:28
|
#7
|
Agnostiker
Registriert seit: Dec 2009
Beiträge: 4.203
Bedankt: 4.438
|
@spartan-b292
Im Großen und Ganzen hast du (und natürlich auch ProgMaster) Recht, dass es da mit Sicherheit bessere Lösungen gibt...
Und ich schrieb auch schon, dass es zu Zugriffsproblemen kommen kann und das, wenn es auch schön aussehen soll, eine ziemlich verzwickte Schleife braucht, um einen bestimmten Bereich direkt in die Mail zu kopieren...
Bei einer neuen Office Version wird doch vermutlich Excel und Outlook gleichzeitig erneuert... obwohl... man weiß natürlich nie...
Wenn die Daten über Sverweis vorliegen, sollte es keine Probleme geben. Wenn sie zusätzlich aus einer Datenbank kommen, bin ehrlich gesagt überfragt, ob es funzt... Ich denke aber schon, weil ich ja quasi per Hand kopiere...
Meine Beispieldatei aus Post 3 ist ja auch sehr abgespeckt... Es öffnet quasi nur eine leere email...
Allerdings war die Grundfrage, ob das mit Excel überhaupt geht und da hat es in mir ein bisschen den Forschergeist geweckt...
EDIT: so.... hier nun eine etwas angepasste Version... beim Klicken auf "Email öffnen", wird keine Email versandt... also man kann das etwas ausprobieren und testen... in der offenen Email auf "Einfügen" wird die Bestellung eingefügt... dann bei Bedarf auf "Senden"... quasi wie schon oben beschrieben...
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
__________________
Der Klügere gibt nach... deshalb regieren die Dummen die Welt
|
|
|
11.07.13, 15:38
|
#8
|
Ist öfter hier
Registriert seit: Sep 2010
Beiträge: 276
Bedankt: 280
|
Falls Du eine Mail über Outlook versenden willst, kann Dir der Code hier vielleicht weiterhelfen. Er stammt aus einer Datenbank, die ich mal programmiert habe. Insofern musst Du ihn noch anpassen und auf Zellen ("Range") in Excel umstellen. Da Du mit SVerweis arbeitest, ist es wohl keine Datenbank, sondern ein Tabellenblatt mit vielen Daten.
Der Code erstellt eine Mail und füllt die Daten Empfänger, CC, BCC, Betreff, Inhalt aus. Diese werden als String bzw. Outlook.Recipient an die Funktion übergeben. Nach Erstellen musst Du noch auf "Senden" klicken. Outlook erlaubt keinen automatisierten Zugriff auf den Mailversand. Es wird vielmehr ein Bestätigungsfenster eingeblendet, daß der Benutzer erst nach 10sec. glaube ich bejahen kann.
Offen steht dann noch, wie Du die Daten in Deiner Mail formatierst. Mit vbTab oder Chr(9) sollte man das aber etwas recht ordentliches hinbekommen. Denkbar ist auch, aus der Tabelle ein pdf zu erzeugen, bspw. mit PDFXChange, und dieses anzuhängen. PDFXChange erlaubt einen recht guten Zugriff via Startparameter.
Have fun.
|
|
|
11.07.13, 17:07
|
#9
|
Agnostiker
Registriert seit: Dec 2009
Beiträge: 4.203
Bedankt: 4.438
|
@erebos76
TE hat leider 0 Plan von VBA... daher wird er es sich nicht anpassen können....
Dieser Code kopiert z.B. den markierten Bereich in eine email... und wenn Outlook geöffnet ist, kann man anstatt .Display auch .Send verwenden, damit es sofort verschickt wird...
In meiner Beispieldatei aus dem vorletzten Post kann er sich über ein Dropdown einen Lieferanten auswählen... Email und Betreff werden automatisch in die Email übernommen... mit Klick auf "Email öffnen", werden alle offenen Bestellungen des gewählten Lieferanten kopiert, der Status von "offen" auf "bestellt" geändert und unter "bestellt am:" das Bestelldatum eingetragen... den einen Klick auf "Einfügen" in der geöffneten Mail wird er verkraften...
__________________
Der Klügere gibt nach... deshalb regieren die Dummen die Welt
|
|
|
Forumregeln
|
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren
HTML-Code ist Aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:36 Uhr.
().
|