Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1300to1304
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Lotus Notes

Lotus Notes
07.03.2013 14:48:23
Manfred
Hallo zusammen,
Das Makro funktioniert soweit ganz gut und macht was es machen soll. Es kopiert den Excelsheet in Lotus Notes und Schreibt auch noch in den Betreff.
Sub Send_Lotus_Notes_Email_JL_02()
Dim Adresse
Dim Betreff
Dim sDatei As String
sDatei = Sheets("EnP").Range("C45")
Sheets("EnP").Copy
Adresse = "1_Email@web.de, 2_email@web.de"
Betreff = Sheets("EnP").Range("C45")
With ActiveWorkbook
.SaveAs "c:\temp\" & sDatei
sDatei = .FullName
.SendMail Adresse, Betreff
.Close False
End With
Kill sDatei
End Sub
Wenn aber auf einem Rechner Laufwerk C: gesperrt ist bricht das Makro mit ner Fehlermeldung ab.
Gibt es eine Möglichkeit zwei oder drei Laufwerke anzusprechen ob ein Temp-Ordner drinen ist und der Excelsheet kurz reingelegt werden kann? D.h. Wenn C: gesperrt probiere D: dann E: usw. Wenns sein muss auch auf den Desktop. Die Fehlermeldung sollte unterrückt werden können.
Mit freundlichen Grüßen
Manfred

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Lotus Notes
07.03.2013 14:59:10
Klaus
Hi,
wie währs wenn du den Ordner erst vom User wählen lässt? Mit dem Windows-Dialog dazu, dann dürfte er eigenlich nur gültige Ordner picken können ...
Option Explicit
Sub Send_Lotus_Notes_Email_JL_02()
Dim Adresse
Dim Betreff
Dim sDatei As String
Dim sPath As String
sDatei = Sheets("EnP").Range("C45")
Sheets("EnP").Copy
Adresse = "1_Email@web.de, 2_email@web.de"
Betreff = Sheets("EnP").Range("C45")
With ActiveWorkbook
sPath = PicFolder
'       MsgBox (sPath)
.SaveAs sPath & sDatei
sDatei = .FullName
.SendMail Adresse, Betreff
.Close False
End With
Kill sDatei
End Sub
Public Function PicFolder()
Dim strOrdner As String
With Application.FileDialog(msoFileDialogFolderPicker)
'.InitialFileName = "C:\"
.Title = "Ordnerauswahl"
.ButtonName = "Auswahl..."
.InitialView = msoFileDialogViewList
If .Show = -1 Then
strOrdner = .SelectedItems(1)
If Right(strOrdner, 1)  "\" Then strOrdner = strOrdner & "\"
Else
strOrdner = ""
End If
End With
If strOrdner = "" Then
'MsgBox ("Kein Ordner gewählt!")
Else
PicFolder = strOrdner
End If
End Function
Grüße,
Klaus M.vdT.

Anzeige
AW: Lotus Notes
07.03.2013 15:09:34
Manfred
Hallo Klaus,
ja das funzt. Vielen Dank für die schnelle Antwort.
Aber !!!!! Mit diesem Excelsheet arbeiten bis zu 15 Personen, olso eine automatische Abfrage wäre auch noch viel schneller.
Hast Du mir auch die andere Lösung ? Wäre nett.
Gruß
Manfred

AW: Lotus Notes
07.03.2013 15:18:56
Klaus
Hallo Manfred,
vielleicht mit ON ERROR? Ich kanns nicht testen, darum mal geraten:
(Sollte C:\ nehmen, wenn das nicht geht muss der User ein Pfad wählen)

Option Explicit
Sub Send_Lotus_Notes_Email_JL_02()
Dim Adresse
Dim Betreff
Dim sDatei As String
Dim sPath As String
sDatei = Sheets("EnP").Range("C45")
Sheets("EnP").Copy
Adresse = "1_Email@web.de, 2_email@web.de"
Betreff = Sheets("EnP").Range("C45")
With ActiveWorkbook
On Error GoTo hell
sPath = "C:\TEST\"
geschummelt:
On Error GoTo 0
.SaveAs sPath & sDatei
sDatei = .FullName
.SendMail Adresse, Betreff
.Close False
End With
Kill sDatei
GoTo heaven
hell:
sPath = PicFolder
GoTo geschummelt
heaven:
End Sub
Public Function PicFolder()
Dim strOrdner As String
With Application.FileDialog(msoFileDialogFolderPicker)
'.InitialFileName = "C:\"
.Title = "Ordnerauswahl"
.ButtonName = "Auswahl..."
.InitialView = msoFileDialogViewList
If .Show = -1 Then
strOrdner = .SelectedItems(1)
If Right(strOrdner, 1)  "\" Then strOrdner = strOrdner & "\"
Else
strOrdner = ""
End If
End With
If strOrdner = "" Then
'MsgBox ("Kein Ordner gewählt!")
Else
PicFolder = strOrdner
End If
End Function
Ist aber eine ganz miese, ganz dreckige Variante mit "on Error" und "Goto". Elegant geht anders (nur: ich kanns nicht)
Grüße,
Klaus M.vdT.

Anzeige
AW: Lotus Notes
07.03.2013 15:38:02
Manfred
Hallo Klaus,
Das Makro bleibt bei ".SaveAs sPath & sDatei" stehen.
Wenn ich dann den Ordner TEST erstelle läuft es durch.
Gruß
Manfred

AW: Lotus Notes
07.03.2013 15:40:37
Klaus
Ah, dann hab ich mit der "On Error" die falsche Zeile erwischt. Nächster Versuch:
Option Explicit
Sub Send_Lotus_Notes_Email_JL_02()
Dim Adresse
Dim Betreff
Dim sDatei As String
Dim sPath As String
sDatei = Sheets("EnP").Range("C45")
Sheets("EnP").Copy
Adresse = "1_Email@web.de, 2_email@web.de"
Betreff = Sheets("EnP").Range("C45")
With ActiveWorkbook
sPath = "C:\TEST\"
On Error GoTo hell
.SaveAs sPath & sDatei
On Error GoTo 0
geschummelt:
sDatei = .FullName
.SendMail Adresse, Betreff
.Close False
End With
Kill sDatei
GoTo heaven
hell:
sPath = PicFolder
.SaveAs sPath & sDatei
GoTo geschummelt
heaven:
End Sub
Public Function PicFolder()
Dim strOrdner As String
With Application.FileDialog(msoFileDialogFolderPicker)
'.InitialFileName = "C:\"
.Title = "Ordnerauswahl"
.ButtonName = "Auswahl..."
.InitialView = msoFileDialogViewList
If .Show = -1 Then
strOrdner = .SelectedItems(1)
If Right(strOrdner, 1)  "\" Then strOrdner = strOrdner & "\"
Else
strOrdner = ""
End If
End With
If strOrdner = "" Then
'MsgBox ("Kein Ordner gewählt!")
Else
PicFolder = strOrdner
End If
End Function

Dass du statt "C:\Test\" deinen eigenen Pfad eintragen musst ist aber klar, oder?
Grüße,
Klaus M.vdT.

Anzeige
Temp-Umgebungsvariable
07.03.2013 20:30:46
Sheldon
Hallo Klaus, hallo Manfred,
wie wärs statt dessen mit der Systemvariable für den Temp-Ordner? also
sPath = Environ("temp") 

und als Ergänzung eine Zeile weiter noch
If sPath="" then sPath=Environ("tmp")

um den schon beobachteten Fehler zu umgehen, dass die Umgebungsvariable nur als dreibuchstabige Variante eingerichtet ist.
Dann brauchst Du nicht umständlich nach nem Ordner zu suchen, in Temp kann der User ja immer speichern.
Gruß
Sheldon

AW: Temp-Umgebungsvariable
08.03.2013 08:24:42
Manfred
Hallo Sheldon,
mein VBA ist nicht so gut, kannst du mir den Code zusammensetzen.
sPath = "C:\TEST\" ersetzt durch sPath = Environ("temp") ?
Das If ... muss auch gesetzt werden, weis aber nicht wo.
Wo wird das If beendet ?
Gruss
Manfred

Anzeige
AW: Temp-Umgebungsvariable
08.03.2013 17:15:49
Sheldon
Hallo Manfred,
habs mal in Deinen ursprünglichen Code eingebaut.
Sub Send_Lotus_Notes_Email_JL_02()
Dim Adresse
Dim Betreff
Dim sDatei As String, sPath as String
sDatei = Sheets("EnP").Range("C45")
Sheets("EnP").Copy
           If Environ("temp") = "" then
sPath = Environ("tmp")
Else
sPath = Environ("temp")
End If
If Right(sPath, 1)  "\" Then
sPath = sPath & "\"
End If
Adresse = "1_Email@web.de, 2_email@web.de"
Betreff = Sheets("EnP").Range("C45")
With ActiveWorkbook
.SaveAs sPath & sDatei
sDatei = .FullName
.SendMail Adresse, Betreff
.Close False
End With
Kill sDatei
End Sub

Gruß
Sheldon

Anzeige
AW: Temp-Umgebungsvariable
11.03.2013 13:21:39
Manfred
Hallo Sheldon,
das funktioniert nicht so wie ich dachte, ich probiere mal was anderes.
Das Thread ist erledigt, es funzt soweit.
Mit freundlichen Grüßen
Manfred

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige