Die Variable mvarExportFolder beinhalted die ID des gewünschten Ordners, die
musst du vorher herausfinden
....
------------
Dim oMapiFolders As Outlook.MAPIFolder
Dim oAppItem As Outlook.AppointmentItem
dim oOutlook As Outlook.Application
Dim oNamespace As Outlook.NameSpace
set oOutlook = CreateObject("Outlook.Application.9")
Set oNamespace = oOutlook.GetNamespace("MAPI")
Set oMapiFolders = oNamespace.GetFolderFromID(mvarExportFolder)
Set oAppItem = oMapiFolders.Items.Add(olAppointmentItem)
with oAppitem
.Start = cdate("12.12.2002")
.End = cdate("13.12.2002")
.Subject = "Test"
.Save
end with
-----------------------
Hoffe das hilft dir weiter (ist zwar VB-Code, doch das meisste solltest du
in VBA wiederverwenden können...)
Gruss Bruno
"Sebastian Schaefers" <sebastian...@gmx.de> schrieb im Newsbeitrag
news:a776po$sd8$1...@news.mch.sbs.de...
...oder über .Folders("Persönliche Ordner").Folders("Mein
Subfolder").Folders("Mein SubSubFolder")...
--
Wolfgang Flamme
wfl...@mainz-online.de
"I love deadlines. I love the whooshing sound they make as they fly by."
Douglas Adams
"W.Flamme" <wfl...@mainz-online.de> schrieb im Newsbeitrag
news:a7ccni$f63$4...@news.rhein-zeitung.de...
Ich hab nur gleich noch zwei Fragen:
1. ich schreibe ja den Inhalt einer Variable in z.B. den Betreff. Wenn ich
normalen Text und den Inhalt einer Variable in den Betreff schreiben will,
mache ich das mit einem +, wie kann ich noch einen Zeilenumbruch einfügen ?
Mit "/n" oder so ?
2. wie kann ich zuerst ALLE termine löschen, und dann die neuen eintragen ??
Danke
"W.Flamme" <wfl...@mainz-online.de> wrote in message
news:a7ccni$f63$4...@news.rhein-zeitung.de...
1. Einene Zeilenumbruch kannst du in VB/VBA mit vbNewLine erzeugen ("Das ist
mein Text, danach gibt es einen Zeilenumbruch" & vbnewline & "das ist dann
der weitere text...")
2. Du musst dir zuerst den gewünschten Kalender anschnallen mit
GetFolderFromId. Der Rest Steht in der Hilfe wenn du Delete eingibst.
Gruss Bruno
"Sebastian Schaefers" <sebastian...@gmx.de> schrieb im Newsbeitrag
news:a7f03n$bmp$1...@news.mch.sbs.de...
Bei Anwendungen (die oft auf hierarchischer Ordnerstruktur basieren)
klappt diese Methode aber nicht; oft will man ja zB eine solche
Anwendung in einen anderen Projektordner kopieren oder was
testen/erweitern und da überall im Code von Hand anpassen und später und
überall wieder - also ich weiß nicht...
Ich bin mit absoluten Verweisen innerhalb der Anwendungsstruktur bislang
ganz gut gefahren, also zB:
Set fldAppRoot=Item.Parent.Parent
Set fld2nd=fldAppRoot.Folders("1st").Folders("2nd")
Set itmNew=fld2nd.Items.Add("IPM.xxxx")
...
Aber jeder wie er mag oder muß.
Ich programmiere die ID sicher nicht fix in den Code rein, bei meiner
Applikation gibt ich dem User eine Auswahl (CSCombobox) mit den vorhandenen
Kalender im Outlook, bei der Auswahl eines Kalenders merke ich mir anstatt
den Namen, die ID des Kalenders...
aber ist ja egal...
schönes Wochenende
Gruss Bruno
"W.Flamme" <wfl...@mainz-online.de> schrieb im Newsbeitrag
news:a7f8jr$6hc$3...@news.rhein-zeitung.de...
ich poste mal die Antwort von meinem 'lieben' Kollegen Sebastian Schäfers,
da er aus unerklärlichen Gründen nicht posten kann. Da er aber immer noch
alles lesen kann, darf fröhlich palierend weiter geantwortet werden.
MfG Dirk aus NRW
> Hallo Sebastian
>
> 1. Einene Zeilenumbruch kannst du in VB/VBA mit vbNewLine erzeugen ("Das
ist
> mein Text, danach gibt es einen Zeilenumbruch" & vbnewline & "das ist dann
> der weitere text...")
> 2. Du musst dir zuerst den gewünschten Kalender anschnallen mit
> GetFolderFromId. Der Rest Steht in der Hilfe wenn du Delete eingibst.
Hilfe, dann löscht er mir ja den ganzen Kalender !
Er soll nur alle Einträge löschen !
geht das auch ?
Wenn ich zwei Einträge mit dem gleichen Datum habe, überschreibt er mir den
einen, das ist auch Scheiße, kann man nicht generell saben, er soll nen
neuen Termin anlegen ?
also erstens, mit GetFolder löschst du nicht den ganzen Ordner, sofern du es
richtig machst... hier der Code dazu...
-------------------------------------------
dim oOutlook As Outlook.Application
Dim oNamespace As Outlook.NameSpace
Dim oMapiFolders As Outlook.MapiFolder
Dim oItems As Outlook.Items
Dim nCount As Integer
set oOutlook = CreateObject("Outlook.Application.9")
Set oNamespace = oOutlook.GetNamespace("MAPI")
Set oMapiFolders = oNamespace.GetFolderFromID(hier kommt die ID des
Ordners rein, wessen Einträge du löschen möchtest..
Set oItems = oMapiFolders.Items
For nCount = oItems.Count To 1 Step -1
oItems.Item(nCount).Delete
Next nCount
'-------------------------------------------------
zum zweiten, mit dem folgenden Code, wird immer ein neuer Eintrag erzeugt,
also kein item überschrieben
---------------------------------------------------------
Dim oAppItem As Outlook.AppointmentItem
dim oOutlook As Outlook.Application
Dim oNamespace As Outlook.NameSpace
set oOutlook = CreateObject("Outlook.Application.9")
Set oNamespace = oOutlook.GetNamespace("MAPI")
Set oAppItem= oOutlook.CreateItem(olAppointmentItem)
With oAppItem
.Start = "31.05.2002"
.End = "31.05.2002"
.Subject = "Test"
.Save
End With
---------------------------------------------------------------
Gruss Bruno
"Dirk Hachmeyer" <di...@hachmeyer.de> schrieb im Newsbeitrag
news:a7mjsf$6v1$1...@news.mch.sbs.de...
Do Until ActiveCell.Offset(i, 0).Value = "EOF"
If ActiveCell.Offset(i, 8).Value <> "" Then
With oAppItem
.Subject = "MEK 90 Rundschreiben wird fällig"
.Body = "Produktbeschreibung: " + ActiveCell.Offset(i,
0).Value & vbNewLine & "Produkt Nr.: " + ActiveCell.Offset(i, 1).Value
.Location = "Test"
.start = "28.03.02" 'ActiveCell.Offset(i, 8).Value
.End = "28.03.02" 'ActiveCell.Offset(i, 8).Value
.Duration = 15
.ReminderMinutesBeforeStart = 10
.ReminderPlaySound = True
.ReminderSet = True
.Save
End With
End If
i = i + 1
Loop
Und wenn ich diese Schleife zwei mal durchlaufen lasse, habe ich nacher nur
einen Termin in meinem Kalender !?!
du greifst hier immer auf das gleiche oAppItem zu!!, du musst in jeder
Wiederholung ein neues oAppItem erzeugen...
probier mal diesen Code aus (Dein Code, plus meine Erweiterung) Die Zeile
Set [oAppItem= oOutlook.CreateItem(olAppointmentItem)] ist wichtig, mit
dieser erzeugst du neue oAppItems. Ein kleiner Typ mit oAppItem.Entriid
kannst du die ID des Items anschauen, beim ausführen von
CreatItem(olAppointmentItem) ändert sich diese ID==> ein neuer Item wurde
erzeugt.
Melde dich bitte anschliesend, obs so funzt, nimmt mich nämlich wunder...
----------------------------------------
Do Until ActiveCell.Offset(i, 0).Value = "EOF"
If ActiveCell.Offset(i, 8).Value <> "" Then
Set oAppItem= oOutlook.CreateItem(olAppointmentItem)
With oAppItem
.Subject = "MEK 90 Rundschreiben wird fällig"
.Body = "Produktbeschreibung: " + ActiveCell.Offset(i,
0).Value & vbNewLine & "Produkt Nr.: " + ActiveCell.Offset(i, 1).Value
.Location = "Test"
.start = "28.03.02" 'ActiveCell.Offset(i, 8).Value
.End = "28.03.02" 'ActiveCell.Offset(i, 8).Value
.Duration = 15
.ReminderMinutesBeforeStart = 10
.ReminderPlaySound = True
.ReminderSet = True
.Save
End With
End If
i = i + 1
Loop
----------------------------------------
Gruss Bruno
"Sebastian Schaefers" <sebastian...@gmx.de> schrieb im Newsbeitrag
news:a7n4t0$kl2$1...@news.mch.sbs.de...
DANKE
Probier mal das.. so muss es gehen.., wenn nicht schreib mir ein Mail (geht
schneller)
Dim oMapiFolders As Outlook.MAPIFolder
Dim oAppItem As Outlook.AppointmentItem
Set oMapiFolders = oNamespace.GetFolderFromID(ID VON DEIMEM ORDNER...)
Do Until ActiveCell.Offset(i, 0).Value = "EOF"
If ActiveCell.Offset(i, 8).Value <> "" Then
Set oAppItem = oMapiFolders.Items.Add(olAppointmentItem)
With oAppItem
.Subject = "MEK 90 Rundschreiben wird fällig"
.Body = "Produktbeschreibung: " + ActiveCell.Offset(i,
0).Value & vbNewLine & "Produkt Nr.: " + ActiveCell.Offset(i, 1).Value
.Location = "Test"
.start = "28.03.02" 'ActiveCell.Offset(i, 8).Value
.End = "28.03.02" 'ActiveCell.Offset(i, 8).Value
.Duration = 15
.ReminderMinutesBeforeStart = 10
.ReminderPlaySound = True
.ReminderSet = True
.Save
End With
End If
i = i + 1
Loop
"Sebastian Schaefers" <sebastian...@gmx.de> schrieb im Newsbeitrag
news:a7n6iu$lv9$1...@news.mch.sbs.de...