Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender Navigationstipps
Inhaltsverzeichnis

eMail

eMail
06.02.2008 18:02:00
Brunken,
Hallo,
wie kann ich eine Datei aus einer ListBox (hier lese ich die xls, jpg) ein auswählen und per Mausklick
versenden?
Ist das möglich? es kann sein das ich zwei drei xls Dateien und 2-3 jpg Dateien auswählen muss.
gruß
Sachsen

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: eMail
06.02.2008 18:08:00
Josef
Hallo Erich,
wo steht die Listbox? (Tabelle, UF)
Steht in der LB der gesamte Pfad?
mit welchem Programm soll die Mail versendet werden?

Gruß Sepp



AW: eMail
06.02.2008 19:56:00
Brunken,
Hallo Sepp,
LB in UF
nein nur der Dateiname der eingelesenen xls Datei
in der zweiten LB nur der Dateiname der eingelesenen jpg Datei
Outlook

AW: eMail
06.02.2008 20:41:00
Josef
Hallo Erich,
ungetestet.
In das Modul des UF
Sub SendMail_Attachment()
Dim strFile As String, strPath As String
Dim AWS() As String
Dim i As Integer, n As Integer

strPath = "F:\Temp\" 'Pfad zu den dateien - anpassen

With listbox1 'Listbox mit den xls - anpassen
    For n = 0 To .ListCount - 1
        If .Selected(n) Then
            Redim Preserve AWS(i)
            AWS(i) = strFile
            i = i + 1
        End If
    Next
End With

With listbox2 'Listbox mit den jpg - anpassen
    For n = 0 To .ListCount - 1
        If .Selected(n) Then
            Redim Preserve AWS(i)
            AWS(i) = strFile
            i = i + 1
        End If
    Next
End With

SendWith_OutLook TO_:="try.to@gues.it", Subject:="Betreff", Mesage:="Nachricht", Attachments:=AWS

End Sub

In ein allgemeines Modul
Public Sub SendWith_OutLook(TO_ As Variant, Optional CC_ As Variant, Optional BCC_ As Variant, _
    Optional Subject As String, Optional Mesage As String = "", Optional Attachments As Variant)


Dim OLApp As Object
Dim OMail As Object
Dim strTO As String, strCC As String, strBCC As String
Dim vAttatch As Variant, n As Integer

If IsArray(TO_) Then
    strTO = Join(TO_, ";")
Else
    strTO = TO_
    End If

If IsArray(CC_) Then
    strCC = Join(CC_, ";")
ElseIf Not IsMissing(CC_) Then
    strCC = CC_
    End If

If IsArray(BCC_) Then
    strBCC = Join(BCC_, ";")
ElseIf Not IsMissing(BCC_) Then
    strBCC = BCC_
    End If

If IsArray(Attachments) Then
    vAttatch = Attachments
ElseIf Not IsMissing(Attachments) Then
    Redim vAttatch(0)
    vAttatch(0) = Attachments
End If

If OLApp Is Nothing Then
    Set OLApp = CreateObject("Outlook.Application")
End If

Set OMail = OLApp.CreateItem(0)

With OMail
    .To = strTO
    .CC = strCC
    .BCC = strBCC
    .Subject = Subject
    .Body = Mesage
    For n = 0 To UBound(vAttatch)
        If Not IsEmpty(vAttatch) Then .Attachments.Add vAttatch(n)
    Next
    .Display
End With

Set OMail = Nothing
Set OLApp = Nothing
End Sub



Gruß Sepp



Anzeige
zu schnell
06.02.2008 21:25:24
Josef
Hallo Erich,
war zu schnell beim Posten.
In das UF gehört dieser Code.
Sub SendMail_Attachment()
Dim strFile As String, strPath As String
Dim AWS() As String
Dim i As Integer, n As Integer

strPath = "F:\Temp\" 'Pfad zu den dateien - anpassen
If Right(strPath, 1) <> "\" Then strPath = strPath & "\"

With listbox1 'Listbox mit den xls - anpassen
    For n = 0 To .ListCount - 1
        If .Selected(n) Then
            Redim Preserve AWS(i)
            AWS(i) = strPath & strFile
            i = i + 1
        End If
    Next
End With

With listbox2 'Listbox mit den jpg - anpassen
    For n = 0 To .ListCount - 1
        If .Selected(n) Then
            Redim Preserve AWS(i)
            AWS(i) = strPath & strFile
            i = i + 1
        End If
    Next
End With

SendWith_OutLook TO_:="try.to@gues.it", Subject:="Betreff", Mesage:="Nachricht", Attachments:=AWS

End Sub


Gruß Sepp



Anzeige
AW: eMail
06.02.2008 21:35:23
Brunken,
Hallo Sepp,
nicht wirklich!
Pfad existiert nicht
Debugger = If Not IsEmpty(vAttatch) Then .Attachments.Add vAttatch(n)
so lese ich die LB ein, vieleicht hilft uns das
Private Sub UserForm_Initialize()
Dim fso As FileSystemObject
Dim fol As Folder
Dim fil As File
Dim rngZelle As Range
strPath = ActiveWorkbook.Path
Set fso = CreateObject("Scripting.FileSystemObject")
Set fol = fso.GetFolder(strPath)
For Each fil In fol.Files
If LCase(Right(fil.Name, 3)) = "xls" Then
lstTOC.AddItem fil.Name
End If
Next fil
Me.txtStatus = Date
For Each fil In fol.Files
If LCase(Right(fil.Name, 3)) = "jpg" Then
BildBox.AddItem fil.Name
End If
Next fil
For Each fil In fol.Files
If LCase(Right(fil.Name, 3)) = "pdf" Then
PDFBOX.AddItem fil.Name
End If
Next fil
Gruß
Erich

Anzeige
Korrektur beachten! o.T.
06.02.2008 21:39:00
Josef

Gruß Sepp



AW: Korrektur beachten! o.T.
06.02.2008 21:50:23
Brunken,
Korrektur!o.T. ?
meinst du diese, If Right(strPath, 1) "\" Then strPath = strPath & "\"
damit gib es auch den LZF

AW: Korrektur beachten! o.T.
06.02.2008 23:36:03
Josef
Hallo Erich,
nein, nimm den ganzen Code aus "Zu schnell...."

Gruß Sepp



AW: Korrektur beachten! o.T.
07.02.2008 18:09:00
Brunken,
Hallo Sepp,
kannst du mir das hier mal testen?
https://www.herber.de/bbs/user/49715.zip
Gruß
Erich, bei mir passt das nicht

Anzeige
AW: Korrektur beachten! o.T.
07.02.2008 19:43:21
Josef
Hallo Erich,
was soll ich testen? Wo sind die zwei Listboxen? Wie sendet man die Mail?

Gruß Sepp



AW: Korrektur beachten! o.T.
07.02.2008 20:17:17
Brunken,
Sorry Sepp,
https://www.herber.de/bbs/user/49722.zip
habe die Datei geändert, zwei ListBoxen und die Schaltfläche "ausgewählte Datei senden" eingefügt
dahinter ist dein Code, der bei mir nicht funktioniert auch nicht wenn ich den Pfad korrigiere.
Bitte schau mal drüber, Danke
Gruß
Erich

AW: Korrektur beachten! o.T.
07.02.2008 20:42:00
Josef
Hallo Erich,
du hast es ein bisschen durcheinander gewürfelt und ich hatte auch noch einen Fehler drin;-)
https://www.herber.de/bbs/user/49724.xls
Übrigens "Auto_Open" wird eigentlich nicht mehr verwendet, man nimmt dazu "Workbook_Open".

Gruß Sepp



Anzeige
AW: Korrektur beachten! o.T.
07.02.2008 21:57:08
Brunken,
Hallo Sepp,
Super das funktioniert einwandfrei!
Danke
eine letzte Frage wie kann man den "Klick" auf eine ListBox zurücksetzen?
Gruß
Erich

AW: Korrektur beachten! o.T.
07.02.2008 22:07:00
Josef
Hallo Erich,
gar nicht, ausser du setzt die Eigenschaft "Multiselect" auf "multi", dann kannst du mit einem Klick an/ab-wählen.

Gruß Sepp



Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige