Registriert seit: 07.07.2014
Version(en): 2007/2010
Hallo Schauan, gemacht. Getestet. Funktioniert vielen Dank! Gibt es eigentlich auch die Möglichkeit, das Umbenennen der Datei zu verhindern? :05: Gruß Alex
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Alex, Nicht wirklich. Man kann die Datei schreibgeschützt ablegen. Oder man lässt Excel im Makro prüfen, ob die Datei noch den richtigen Namen hat und wenn nicht, dann starten die restlichen Makros nicht.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 07.07.2014
Version(en): 2007/2010
Hallo Schauan, sorry, ich war mal eine Zeitlang nicht aktiv mir ist gerade aufgefallen, dass ich gar nicht DANKE für deine Hilfe gesagt habe. Ich stelle das Projekt innerhalb der nächsten Tage vor und hoffe, dass es so ohne größere Änderungen durchgewunken wird Ich halte dich auf dem Laufenden. :15: Viele Grüße Alex PS: Hoffe doch, dass dir unser Thema genauso gefehlt hat wie mir :100:
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Alex, ich dachte schon, dass Du in E35 stecken geblieben bist Na, dann schauen wir mal, was sich ergibt. (Anmerkung: Das gibt's als Excel-Zelle und als Straße durch den Gotthard-Tunnel - ich will mich da nicht festlegen :15: Du schriebst ja was von einem Trip in die Schweiz.. )
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 07.07.2014
Version(en): 2007/2010
Hallo Schauan, zwischen unserem letzten und dem gestrigen Post war ich in der Schweiz, in Prag, in Spanien und in Portugal Und ich glaube da gibt es überall die E35 :05: Bis hoffentlich bald. PS: Wenn du verfügbar bist, können wir separat unser zweites Projekt angehen :100 Viele Grüße Alex
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Alex,
Wenn Du beim emailversand Adressaten auswählen willst, wäre jetzt die Frage, wo und wie. Ich könnte mir vorstellen, Dass Du vor dem emailversand in einer Zelle auf Deinem Input-Blatt z.B. per Datengültigkeit / Liste eine emailadresse auswählen kannst, die dann das das Versandmakro ausliest. Nach dem Versand könnte man die Zelle wieder leeren, damit beim nächsten Drücken nicht automatisch der "alte" Adressat genommen wird. Es sollte auch eine Prüfung erfolgen, ob eine Adresse ausgewählt wurde und wenn nicht, erfolgt kein Versand - Analog wie bei der Meldung bei fehlender pdf-Datei.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 07.07.2014
Version(en): 2007/2010
Hallo Schauan, die Idee ist sehr gut Auch das mit der Prüfung ist gut. schon mal Danke für die Hilfe vorab. Viele Grüße Alex
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Alex, ich habe dazu das pdfsenden angepasst. Siehe dazu der Anfang vom Makro und weiter unten to und cc. Als Auswahlzellen für An und Cc hab ich A1 und B1 genommen, das müsstest Du anpassen. Ebenso müsstest Du dann die Gültigkeit festlegen. Ausgewählt kann so allerdings nur je eine Adresse für To und Cc. Bei mehreren Adressen müsste man z.B. ein Userform anlegen und dort mit Objekten arbeiten, wo man mehrere auswählen kann, z.B. Listboxen. Code: 'PDF-Datei senden '_______________________________________________________ Sub pdfSenden() 'Variablendeklarationen 'String Dim strTo As String, strCc As String 'Wenn keine gleichnaliges pdf im Verzeichnis der Mappe, dann Meldung und Makro verlassen If Dir(ThisWorkbook.Path & "/" & ThisWorkbook.Name & ".pdf") = "" Then MsgBox "No PDF file created. Please 'right click' -> 'Save as PDF'": Exit Sub 'Adressen aus A1 und B1 uebernehmen strTo = Sheets("Input").Cells(1, 1).Value strCc = Sheets("Input").Cells(1, 2).Value 'Wenn Adressat gewaehlt wurde, dann Meldung und Makro verlassen If strTo = "" Then MsgBox "No Address for email on Sheet Input choosed. Please do it": Exit Sub 'Wenn keine Cc gewaehlt wurde, dann If strCc = "" Then 'Meldung und je nach Nutzerauswahl Makro verlassen oder weitermachen If MsgBox("No Cc Address for email on Sheet Input choosed. Send without?", vbYesNo) = vbNo Then Exit Sub 'Ende Wenn keine Cc gewaehlt wurde, dann End If 'Variablendeklarationen 'Objekt Dim objOutlook As Object 'Fehlerbehandlung, falls Outlook nicht offen On Error Resume Next 'Outlook zuweisen, wenn nicht vorhanden wird ein Fehler erzeugt Set objOutlook = GetObject(, "Outlook.Application") 'Outlook bei Bedarf oeffnen 'Wenn es einen Fehler gab, dann If Err Then 'Outlook oeffnen und zuweisen Set objOutlook = CreateObject("Outlook.Application") 'Fehler zuruecksetzen Err.Clear 'Ende Wenn es einen Fehler gab, dann End If 'Outlook sichtbar schalten. 'Eventuell muss der user es trotzdem in den Vordergund holen! objOutlook.Visible = True 'Fehlerbehandlung beenden On Error GoTo 0 'Wenn wieder ein Fehler aufgetreten ist, Meldung ausgeben und Makro verlassen If Err Then MsgBox "Something is wrong here....Contact Rent-All!" & vbLf & Err.Description: Exit Sub 'Neue Nachricht erzeugen With objOutlook.CreateItem(0) 'Betreff usw. angeben .Subject = "Das ist eine neue Anfrage" .To = strTo 'Adressat einfuegen! .CC = strCc 'Cc Adressat einfuegen! .Body = "Hallo ," & vbLf & vbLf _ & "Anbei eine Anfrage für Euch." & vbLf _ & "Im Anhang ist das PDF. Bitte Verfügbarkeit prüfen und zurück an mich." & vbLf _ & "Vielen Dank und viele Grüße von " & Application.UserName & vbLf & vbLf 'Anhang der pdf-Datei .Attachments.Add ThisWorkbook.Path & "/" & ThisWorkbook.Name & ".pdf" .Display 'Ende Neue Nachricht erzeugen End With End Sub
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 07.07.2014
Version(en): 2007/2010
Hallo Schauan,
die Idee mit der Listbox ist super. Es soll die Möglichkeit bestehen, die Anzahl der Empfänger selbst zu bestimmen.
Ich arbeite den Code mal ein.
Danke und viele Grüße
Alex
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Alex,
das mit dem einen Empfänger will ich mal relativieren. Du kannst mit der Gültigkeit nur einen Eintrag auswählen, der kann aber aus mehreren Empfängern bestehen. Das macht die Sache zum einen Einfacher, zum anderen kannst Du keinen vergessen.
Angenommen, du hast in jede Himmelsrichtung einen oder mehrere Empfänger, dann könntest Du in der Gültigkeit entsprechende Einträge definieren, also Nord, Süd, West und Ost, und je nachdem, was Du gewählt hast, werden die zugehörigen Empfänger übernommen. Also von der Sache her das gleiche Prinzip wie bei Verteilergruppen.
Sollte es mal am alle gehen, dann kannst Du einen Eintrag Alle hinzufügen.
Für eine Listbox bräuchte ich noch die genaue Position der Einträge, z.B. auf dem Blatt Input oder einem gesonderten Blatt.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
|