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
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
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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 135526
Url: https://administrator.de/contentid/135526
Ausgedruckt am: 23.11.2024 um 04:11 Uhr
5 Kommentare
Neuester Kommentar
Tach heuschrecke..
Hab zwar keine Ahnung von VBA aber vielleicht bringt dich dieser Ansatz weiter:
vg
Hab zwar keine Ahnung von VBA aber vielleicht bringt dich dieser Ansatz weiter:
vg
Zitat von @heuschrecke:
ist ja genial diese hol datei 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.ist ja genial diese hol datei 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 =)