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-ID: 135526

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

Ausgedruckt am: 23.11.2024 um 04:11 Uhr

Franzmann
Franzmann 09.02.2010 um 13:26:46 Uhr
Goto Top
Tach heuschrecke..
Hab zwar keine Ahnung von VBA aber vielleicht bringt dich dieser Ansatz weiter:



vg
heuschrecke
heuschrecke 09.02.2010 um 15:43:33 Uhr
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 =)
Pjordorf
Pjordorf 09.02.2010 um 22:22:56 Uhr
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
heuschrecke
heuschrecke 10.02.2010 um 07:22:08 Uhr
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
Franzmann
Franzmann 10.02.2010 um 13:37:51 Uhr
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 ;)