heuschrecke
Goto Top

Feiertags-Termine von Excel ins Outlook

Hallo zusammen
Ich hoffe jemand kann mir helfen, es gibt zwar schon diverse ähnliche Einträge aber da ich ein VBA-Neuling bin werde ich durch die Meisten nicht wirklich schlau...
Mein Problem ist, ich muss alle Feiertage von 2010 automatisch vom Excel in den Outlook Kalender eintragen lassen, damit wir diese dann den Mitarbeitern verschicken können. Nun habe ich ein Script gefunden und dieses angepasst. Durch die Anpassungen funktioniert's eigentlich nicht schlecht bis auf ein paar winzige Details. Ich wäre um ein bisschen Hilfe sehr froh face-smile

Wir arbeiten mit Outlook 2007, da hat es bei den Terminen ne Option "Anzeigen als", diese müsste ich auf "Abwesend" setzen, ich habe es so gelöst:

Dim var_ShowAs As Integer

und dann unten:

'----- Anzeigen als -----
var_ShowAs = ActiveCell.Value

Ja ich weiss es ist kein Integer, da es ein Dropdown Feld mit Auswahl ist. Aber hab vieles probiert, nichts hat geklappt. Hätte jemand ne Idee?

Und gibt's auch die Möglichkeit, so was wie ne Abfrage zu machen wo prüft ob der Termin bereits vorhanden ist und wenn ja, diesen überschreibt?

Vielen Dank schon mal ;)
Grüsse

heuschrecke


PS: Hier noch mein ganzes Script:

Private Sub but_Export_Click()

'----------------------------------------------------------------------
'----------------------- Variablendeklarationen -----------------------
'----------------------------------------------------------------------

Dim OutApp As Object, apptOutApp As Object
Dim var_StartDatum As Date
Dim var_StartZeit As Date
Dim var_EndDatum As Date
Dim var_EndZeit As Date
Dim var_Subject As String
Dim var_ShowAs As Integer
'Dim var_Reminder As Boolean
'Dim var_ReminderTime As Integer
Dim var_GanzerTag As Boolean
'Dim var_Dauer As Integer
Dim var_Nachricht As String
'Dim var_Location As String
Dim var_Body As String


Range("A2:L14").Select
var_Body = ActiveCell.Value

'-----------------------------------------------------------------------
'------------------------- Füllen der Variablen ------------------------
'-----------------------------------------------------------------------

Range("A2").Select 'Starte von Zelle A2

Do Until ActiveCell.Value = "" 'Bis Zelle leer
Set OutApp = CreateObject("Outlook.Application")
Set apptOutApp = OutApp.CreateItem(1)
With apptOutApp

'----- Terminbetreff -----
var_Subject = ActiveCell.Value

'----- Wechsel der Zelle -----
ActiveCell.Offset(rowoffset:=0, columnoffset:=1).Activate

'----- Startdatum -----
var_StartDatum = Format(ActiveCell.Value, "dd/mm/yyyy")

'----- Wechsel der Zelle -----
ActiveCell.Offset(rowoffset:=0, columnoffset:=1).Activate

'----- Startzeit -----
var_StartZeit = Format(ActiveCell.Value, "hh:mm")

'----- Wechsel der Zelle -----
ActiveCell.Offset(rowoffset:=0, columnoffset:=1).Activate

'----- Enddatum -----
var_EndDatum = Format(ActiveCell.Value, "dd/mm/yyyy")

'----- Wechsel der Zelle -----
ActiveCell.Offset(rowoffset:=0, columnoffset:=1).Activate

'----- Endzeit -----
var_EndZeit = Format(ActiveCell.Value, "hh:mm")

'----- Wechsel der Zelle -----
ActiveCell.Offset(rowoffset:=0, columnoffset:=1).Activate

'----- Ganztägiges Ereignis -----
If ActiveCell.Value = 1 Then
var_GanzerTag = True
ElseIf ActiveCell.Value = 0 Then
var_GanzerTag = False
End If

'----- Wechsel der Zelle -----
ActiveCell.Offset(rowoffset:=0, columnoffset:=1).Activate

'----- Anzeigen als -----
var_ShowAs = ActiveCell.Value

'----- Wechsel der Zelle -----
ActiveCell.Offset(rowoffset:=0, columnoffset:=1).Activate


'----------------------------------------------------------------------
'------------------------- Export nach Outlook ------------------------
'----------------------------------------------------------------------

.Categories = "Kat"

'----- Termindatum und Startzeit (in min) -----
.Start = var_StartDatum & " " & var_StartZeit

'----- Zusätzlicher Text -----
.Body = var_Body

'----- Ort -----
.Location = var_Location

'----- Betreff -----
.Subject = var_Subject

'----- Ganztägiges Ereignis oder Ereignis mit bestimmter Dauer -----
If var_GanzerTag = False Then
.Duration = var_Dauer
ElseIf (var_Dauer > 1440) Or (var_GanzerTag = True) Then
.AllDayEvent = True
End If

'----- Termin speichern -----
.Save

End With

MsgBox "Termine an Outlook übertragen!"

'----- Nächste Zelle auswählen -----
'ActiveCell.Offset(rowoffset:=1, columnoffset:=-7).Activate

'----- Variablen leeren -----
Set apptOutApp = Nothing
Set OutApp = Nothing

Loop

Range("M19").Select
MsgBox ActiveCell.Value

MsgBox "Excel wird nun beendet"
'Range("M12").Select
'Workbooks(ActiveCell.Value).Close SaveChanges:=False

End Sub

Content-Key: 135526

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

Printed on: April 24, 2024 at 19:04 o'clock

Member: Franzmann
Franzmann Feb 09, 2010 at 12:26:46 (UTC)
Goto Top
Tach heuschrecke..
Hab zwar keine Ahnung von VBA aber vielleicht bringt dich dieser Ansatz weiter:



vg
Member: heuschrecke
heuschrecke Feb 09, 2010 at 14:43:33 (UTC)
Goto Top
ist ja genial diese hol datei face-smile vielen vielen dank! das problem ist nur dass man sehr wahrscheinlich keine halben Tage reinpacken kann. Aber da muss ich mich noch schlau machen.

Danke schön =)
Member: Pjordorf
Pjordorf Feb 09, 2010 at 21:22:56 (UTC)
Goto Top
Hallo heuschrecke,

das problem ist nur dass man sehr wahrscheinlich keine halben Tage reinpacken
kann.
Ist ein Feiertag nicht immer ein (1) Tag? face-smile

Peter
Member: heuschrecke
heuschrecke Feb 10, 2010 at 06:22:08 (UTC)
Goto Top
Hallo Pjordorf
normalerweise schon face-smile aber in manchen Kantonen haben unsere Mitarbeiter nur einen halben Tag frei (z:B. den Donnerstag vor Karfreitag etc.) face-wink
Member: Franzmann
Franzmann Feb 10, 2010 at 12:37:51 (UTC)
Goto Top
Zitat von @heuschrecke:
ist ja genial diese hol datei face-smile vielen vielen dank! das problem ist nur dass man sehr wahrscheinlich keine halben Tage reinpacken
kann. Aber da muss ich mich noch schlau machen.
Denke eher nicht, genau weiß ichs auch nicht.

Danke schön =)
Sehr gern ;)