0belixx
Goto Top

Frage zu Verwenden des objNewMail.Subject und zum Folders

Hallo Leute,

ich habe mal 2 Fragen.

1. Ich habe im Betreff der Mails die ich bearbeiten will immer ander Bezeichnungen mit unterschiedlicher Länge.
Was aber gleich ist sind 2 eckige Klammern (Bsp. [Meldung von Mueller] und dann kommt noch einiges, oder [Meldung von Mustermann] und wieder einiges dazu)
Mir fällt beim Besten Willen nicht mehr ein wie ich das Stück zwischen den Klammern in eine Variable stecken kann, habe das früher in SQL öfter gemacht. Aber das schlägt wohl Alzheimer zu face-wink

2. Ich möchte einen Bestimmten Unterordner ansprechen
z.Z geht das mit:
Set objMeinOrdner = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Folders("MeinOrdner")
aber ich würde gern den "MeinOrdner" nicht unter dem Posteingang haben wollen sondern wo anders.


Danke schon mal
0belixx

Content-ID: 190143

Url: https://administrator.de/contentid/190143

Ausgedruckt am: 22.11.2024 um 15:11 Uhr

ColdZero89
ColdZero89 24.08.2012 aktualisiert um 12:12:09 Uhr
Goto Top
Moin,

zu 1.
sowas ähnliches hatte ich auch. bastla, didi1954 und rubberman verhalfen mir zur Lösung, wie ich die Variable da reinbekomme. Mein Konstrukt ist mit VBS in einer Batch aufgebaut. Sicherlich ist das alles auch per VBS only zu lösen, ich habs so und hoffe ich kann dir damit helfen.

Ich habe ein Script in dem Daten an unterschiedliche Mailadresse gesendet werden. Mal an Mitarbeiter X mal an Y.
Ganz am Anfang habe ich eine Abfrage gemacht und danach ein Case in der die Auswahl abgefragt und die Information in eine Variable gepackt wird.

Damit du das Script mal siehst hier: CSV in XLSX mit OpenOffice und VBS und das ganze in meine Batchscript, das die Datei per Mail versendet (Das untere Script in dem Post) Zeile 269-277 ist für dich der Interessante Teil. Die Abfrage ist in Zeile 19-63.

In VBS (sofern es in Batch ist) rufst du die Variable dann mit %VARIABLE% (Zeile 271 und 275) auf. Fertig.

Gruß Zero
0belixx
0belixx 24.08.2012 um 12:37:49 Uhr
Goto Top
Hallo Zero,

danke, das ist ja ne Menge Script.
Trotz deinem Hinweis blick ich nicht durch.
Ich hatte gehoft mir könnte jemand sowas raten wie

Dim Name as string
Name = finde die ertse Klammer, dann nimm den Text bis zur nächsten Klammer und schneide den Rest weg

aber das in der richtigen "Sprache"

Gruß
0belixx
ColdZero89
ColdZero89 24.08.2012 um 12:46:10 Uhr
Goto Top
Moin,

ja, also wie du in VBS eine Abfrage machst das der betroffene seinen Nachnamen eingibt "Mueller" "Mustermann" "Hase" "Franzchen" usw. und dieser dann in die Nachricht gepackt wird bzw in den Betreff.

Eine Abfrage "Geben sie ihren Nachnamen ein"
set Name = Geben Sie Ihren Nachnamen ein: 

Das in eine Variable, hier Name und dieses dann aufrufen im VBS zum senden der Nachricht mit
"[%Name%]"  

In Kombination mit einem Batch weiß ichs, nur mit VBS, kann ich dir leider nicht helfen, da msust du dann warten bis wer antwortet, der sich mit VBS besser auskennt als ich.

Gruß Zero
76109
76109 24.08.2012 aktualisiert um 12:58:03 Uhr
Goto Top
Hallo Obelixx, ColdZero89!

In etw so:
Const TestString = "Text und [Meldung von XY] nochmehr Text"  

Sub Test()
    Dim aText As Variant, sText As String
    
    aText = Split(TestString, "[")      'Text an Klammer splitten  
    
    If UBound(aText) > 0 Then           'Test ob "[" vorhanden  
        sText = Split(aText(1), "]")(0) 'sText = Klammerinhalt  
        MsgBox sText
    End If
End Sub

Gruß Dieter
0belixx
0belixx 24.08.2012 aktualisiert um 13:00:39 Uhr
Goto Top
Hallo Zero

da ist ein Missverständniss, habe ich wohl falsch erklärt.

Das Script soll ja ohne Eingabe funktionieren. Die Daten die ich Brauche sind ja schon vorhanden.
Der Name soll ja der Betreff der empfangennen E-Mail sein.
Bisher habe ich das so:
(Ich weiss leider nicht wie ich hier Formatiere)

Dim Name As String
Name = objNewMail.Subject
Name = Replace(Name, ">", "")
Name = Replace(Name, "[", "")
Name = Replace(Name, "]", "")
Name = Replace(Name, "-", "")
Name = Replace(Name, "&", "und")
Name = Replace(Name, Chr(34), "")
Name = Replace(Name, " ", " ")

aber da wird die Variable "Name" so lang und unhandlich.

Gruß
0belixx
76109
76109 24.08.2012 aktualisiert um 13:05:15 Uhr
Goto Top
Hallo Obelixx!

Hab's schon richtig verstandenface-wink

Anstelle von 'TestString' fügst Du in Codezeile 6 eben 'objNewMail.Subject' ein

Gruß Dieter
0belixx
0belixx 24.08.2012 aktualisiert um 13:09:08 Uhr
Goto Top
Hallo Dieter
Super, Vielen Dank funktionier Prima

Meine vorherige Antwort hatte sich mit deiner überschnitten, war die Antwort auf Zeros nettes Schreiben.

Hast du noch eine Idee zu meiner anderen Frage
Gruß
0belixx
76109
76109 24.08.2012 um 13:11:21 Uhr
Goto Top
Hallo Obelixx!

Hast du noch eine Idee zu meiner anderen Frage
Leider nichtface-sad Habe kein Outlook installiert und beschäftige mich auch nicht damitface-wink

Gruß Dieter
ColdZero89
ColdZero89 24.08.2012 aktualisiert um 13:41:23 Uhr
Goto Top
Moinsen,

ah ok, sry für die Verwirrung face-big-smile

Zu 2. Ich denke GetDefaultFolder(olFolderInbox). ist der entscheiden Punkt! Ich denke damit ist nicht der Default ordner von Outlook gemeint, sondern der, in den er gucken soll, bzw welchen pfad er gehen soll. Nach dem Motto "D:\" da drin guckste mal ob du ordner "Hans" findest, verstehst? ^^

Da würd ich eventuell mal googlen, was es für den befehl noch für Möglichkeiten gibt um eventuelle UNterorder oder andere ordner anzusprechen.

Gruß Zero
0belixx
0belixx 24.08.2012 um 13:44:01 Uhr
Goto Top
@all

habe es gelöst.

Dim objMeinOrdner As Outlook.MAPIFolder
Set objMeinOrdner = Application.GetNamespace("MAPI").Folders.Item("Persönlicher Ordner").Folders.Item("Ablage").Folders.Item("MeinOrdner")

Danke für eure Hilfe
0belixx
ColdZero89
ColdZero89 24.08.2012 um 13:45:32 Uhr
Goto Top
Moin,

ha da war mein Gedanke ja gar net so falsch ^_^

wunderschön face-big-smile dann viel spaß beim Rumscripten

und ein schönes wochenende.

Gruß Zero