Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Termin aus Excel per VBA in Outlook schreiben (Beschriftung setzen)

Frage Entwicklung VB for Applications

Mitglied: D3VILSEYE

D3VILSEYE (Level 1) - Jetzt verbinden

10.07.2007 um 15:16 Uhr, 19752 Aufrufe, 1 Kommentar

Hi,

ich habe ein kleines VBA Script geschrieben, dass Einträge aus einer zweiten Exceldatei einliest und diese als Termin in Outlook einpflegt. Jetzt möchte ich allerdings auch noch erreichen, dass der Termin eine entsprechende Beschriftung erhält (z.B. Urlaub und die entsprechende Färbung).
Soweit ich weiß funktioniert das über .Categories. Aber welche Parameter kann ich dem Befehl mitgeben?


Hier ist der Quelltext:
Sub Workbook_open()

'----------------------------------------------------------------------
'-------------------------- Import aus Excel ----------------------
'----------------------------------------------------------------------

Range("A3").Select
Workbooks.Open Filename:="c:\Temp\Excel_Import.xls" 'Öffnen der zu Importierenden Datei
'Worksheets("Tabelle1").
Range("A3:H30").Select 'Bereich A3 bis J100 markieren
Application.CutCopyMode = False
Selection.Copy
Windows("Outlook_Export.xls").Activate 'Wechsel auf Datei Gesamtliste
Worksheets("Datasheet").Range("A3:H30").Select
ActiveSheet.Paste 'Daten übertragen
Workbooks("Excel_Import.xls").Close SaveChanges:=False 'Schliessen der Datei ohne speichern

End Sub

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_Subject As String
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("M20").Select
var_Body = ActiveCell.Value

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

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

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

'----- 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

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

'----- 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

'----- Termindauer wenn nicht ganztägig -----
var_Dauer = ActiveCell.Value

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

'----- Ort -----
var_Location = ActiveCell.Value

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

'----- Erinnerung aktivieren -----
If ActiveCell.Value = 1 Then
var_Reminder = True
ElseIf ActiveCell.Value = 0 Then
var_Reminder = False
End If

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

'----- Zeit vor Termin bis Erinnerung -----
var_ReminderTime = ActiveCell.Value

'----- Wechsel der Zelle -----
'ActiveCell.Offset(rowoffset:=0, columnoffset:=-8).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

'----- Erinnerung aktivieren -----
.ReminderSet = var_Reminder

'----- Zeit der Erinnerung vor Terminbeginn -----
.ReminderMinutesBeforeStart = var_ReminderTime

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

End With

'----- 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 "Outlook_Export.xls wird nun beendet / Outlook_Export.xls will be closed now"
'Range("M12").Select
'Workbooks(ActiveCell.Value).Close SaveChanges:=False

End Sub



Falls irgendwer ne Idee hat, wäre es super wenn er sich kurz melden würde.

Danke für eure Hilfe

Beste Grüße

D3ViLSEYE
Mitglied: heuschrecke
09.02.2010 um 12:40 Uhr
Hallo D3ViLSEYE
Vielen Dank für das Script, habe es angepasst und gleich ausprobiert
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, durch die Anpassungen funktioniert's eigentlich nicht schlecht bis auf ein paar winzige Details. Da ich eine totale VBA Anfängerin bin, wäre ich 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ättest du 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
Bitte warten ..
Ähnliche Inhalte
VB for Applications
gelöst Excel - VBA: Automatisches Setzen von Kommentaren in eine Zelle (3)

Frage von d4shoerncheN zum Thema VB for Applications ...

VB for Applications
gelöst EXCEL VBA Zellen verbinden. MERGE (6)

Frage von Aximand zum Thema VB for Applications ...

Microsoft Office
gelöst Excel VBA In Userform Maske Text nach Eingabe löschen (1)

Frage von kluthi69 zum Thema Microsoft Office ...

Microsoft Office
Unterordner durchsuchen Excel VBA (1)

Frage von schwalbepilot zum Thema Microsoft Office ...

Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(29)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Windows Server

Exchange 2010 Active Directory und Windows Server 2016

(4)

Erfahrungsbericht von Herbrich19 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Internet
gelöst Mitarbeiter surft auf unerwünschter Seite - Wie damit umgehen? (52)

Frage von sabines zum Thema Internet ...

Netzwerke
LAN2LAN Verbindung sehr langsam flaschenhals gesucht (27)

Frage von PixL86 zum Thema Netzwerke ...

Router & Routing
PFsense - Netzverbindung steht, aber kein Internet vorhanden (25)

Frage von aschmid zum Thema Router & Routing ...

Windows Server
gelöst Windows 2016 Hyper-V und VHDS (19)

Frage von emeriks zum Thema Windows Server ...