Office: VBA

Helfe beim Thema VBA in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo liebe VBA-Gemeinde, ich habe mir für die Arbeit einen kleinen Code ergoogelt und leicht verändert. Es wird eine Tabelle abgefragt und solange... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von User, 6. Oktober 2012.

  1. VBA


    Hallo liebe VBA-Gemeinde,

    ich habe mir für die Arbeit einen kleinen Code ergoogelt und leicht verändert. Es wird eine Tabelle abgefragt und solange Daten in einer gewissen Spalte eingetragen sind diese jeweils in einen Outlookkalender übertragen. Das Problem ist jedoch, das immer wenn ich das Macro ausführe, die Termine übertragen werden und somit Doppelungen enstehen.

    Kann ich mit einer Abfrage, ob im Kalender zu diesem Zeitpunkt schon ein Termin ist, dieses Problem vermeiden?

    Meine VBA Kenntnisse sind leider in "minimalistische Grundkenntnisse" einzustufen.

    Vielen Dank schonmal *Smilie

    Jonas


    Code:

    Sub Excel_Control_Termin_nach_Outlook()
    'E 2000
    'Dim OutApp As Outlook.Application
    Dim OutApp As Object, apptOutApp As Object
    Dim hw As Double
    Dim ende As Integer
    Dim i As Integer
    Dim j As Integer

    'Hier beginnen die Termine
    Range("F1").Select
    ende = ActiveCell.Value
    For i = 0 To ende
    Range("F4").Offset(i, 0).Select

    Set OutApp = CreateObject("Outlook.Application")
    Set apptOutApp = OutApp.CreateItem(1) 'olAppointmentItem)
    With apptOutApp

    .Start = Format(ActiveCell.Value, "dd.mm.yyyy") & " 08:00"
    'Dauer. Angabe ist jeweils in ganzen Minuten zu setzen
    'Termininfo
    .Subject = "Linehaulverträge: " & ActiveWorkbook.Name & " kontrollieren"
    'oder der Betreff steht in der Spalte rechts von den Terminen
    .Subject = ActiveCell.Offset(0, 1)
    'Zusätzlicher Text
    .Body = "Bli bla blub text"
    'ort
    .Location = "Berlin"
    .Duration = "5"
    'Erinnerung
    .ReminderMinutesBeforeStart = 10
    'mit Sound :-)
    .ReminderPlaySound = True
    'Erinnerung wiederholen
    .ReminderSet = True
    'Termin speichern
    .Save
    End With
    Set apptOutApp = Nothing
    Set OutApp = Nothing

    Next i
    MsgBox "Termine an Outlook übertragen!"
    End Sub

    :)
     
  2. Hallo Jonas,

    jeder (Termin-)Eintrag in Outlook besitzt eine eindeutige Kennung, die EntryID.
    Wenn die Excelliste nicht immer neu erstellt wird, sondern z. B. nur Einträge hinzugefügt werden, könntest Du nach SAVE die EntryID auslesen (diese wird erst beim Speichern des Eintrags erzeugt) und in eine separate Spalte in der Liste eintragen. Du könntest beim nächsten Durchlauf also prüfen, ob eine EntryID vorhanden ist und wenn das der Fall ist, den Termin überspringen. Zusätzlich sind auch Änderungen an bestehenden Terminen über die EntryID recht einfach möglich, falls von Interesse.

    Kommt die Liste immer wieder neu, kannst Du z. B. über RESTRICT Einträge filtern.
    Eine kleine Function, in die das ausgelagert werden könnte:
    Code:
    Aufruf über (z. B.)
    Code:
    Welche Kriterien zu überprüfen sind, damit die Rückgabe eindeutig wird, müsstest Du prüfen - habe ich mir in Deinem Code nicht zu genau angesehen. Anstelle Subject dann ggf. andere Kriterien wählen.

    Grüße
    EarlFred
     
    EarlFred, 7. Oktober 2012
    #2
  3. Hi EarlFred,

    Danke für die schnelle Antwort. Allerdings verstehe ich nicht wie ich die EntryID asugelesen bekommen.

    Die Datei bleibt bestehen, es werden nur immer neue Daten hinzugefügt.

    Nochmal danke für die flotte Antwort und sorry das ich die wahrscheinlich glasklar erklärte Sache nicht so richtig versteh, bin auf dem VBA Gebiet absoluter Neuling.

    Grüße,

    Jonas
     
  4. VBA

    Hallo Jonas,

    glasklar war das ja nicht beschrieben, eher als Stichwort in den Raum geworfen. *wink.gif*
    Musst nur beim Erstellen des Termins eine Zeile einfügen (ungetestet, ggf. sind noch Tippfehler drin):
    Code:
    Beim Durchlaufen der Termine zu Beginn der Schleife dann die im Offset bezeichnete Zelle prüfen, ob dort etwas drin steht (die Spalte sollte natürlich von anderen Eintragungen freigehalten werden! *wink.gif*).
    Skizze:
    Code:
    Wenn das dann läuft, könntest Du auch auf die "Selecterei" verzichten.
    Quellen zum Nachlesen, wie das geht:
    Online - Excel Programmierung VBA Makro: Performance (2) - Select Activate Bremsen und ein Beispiel
    oder auch Chris' Tutorial
    http://www.ms-office-forum.net/forum...d.php?t=263381

    Grüße
    EarlFred
     
    EarlFred, 7. Oktober 2012
    #4
  5. Ein geretteter Tag und das so früh *wink.gif*

    Vielen Dank! Problem gelöst!
     
Thema:

VBA

Die Seite wird geladen...
  1. VBA - Similar Threads - VBA

  2. VBA - Wert in einer Spalte finden und diese Zeile löschen

    in Microsoft Excel Hilfe
    VBA - Wert in einer Spalte finden und diese Zeile löschen: Moin moin ihr Lieben, ich habe nun schon im Netz nach einer Lösung gesucht, aber nichts passendes oder funktionstüchtiges gefunden. Ich habe eine Tabelle mit Spalten A - G. Nun soll Excel in der...
  3. Freigegebene Excel-Tabelle als Quelle für Seriendruck

    in Sonstiges
    Freigegebene Excel-Tabelle als Quelle für Seriendruck: Hallo, :) wir haben eine Excel-Tabelle, welche auf der Cloud liegt und bei Änderungen automatisch speichert. Es haben mehrere Personen Lese- und Schreibrechte und sobald jemand etwas abändert,...
  4. VBA: Kein "Undo" mehr möglich?

    in Microsoft Excel Hilfe
    VBA: Kein "Undo" mehr möglich?: Hallo, ich habe meine Bestell-Tabelle so abgeändert, dass einiges per Makro, bzw. mittels Buttons übertragen wird. Also zum Beispiel wird mit einem Klick auf den Button die Lieferadresse gleich...
  5. EINLADUNG Access-Stammtisch Hannover Nr. 63 LIVE am Mittwoch 19.11.2025

    in Microsoft Access Hilfe
    EINLADUNG Access-Stammtisch Hannover Nr. 63 LIVE am Mittwoch 19.11.2025: EINLADUNG zum Access-Stammtisch Hannover Nr. 63 LIVE Endlich ist es wieder soweit! Persönlicher Austausch bei Speis und Trank. Interessante Gespräche in netter Atmosphäre. Termin: Mittwoch,...
  6. VBA: Notizen in Zelle einfügen

    in Microsoft Excel Hilfe
    VBA: Notizen in Zelle einfügen: Hallo zusammen, ich möchte über cells(x,y).AddComment "Text" eine Notiz einfügen. Das funktioniert leider nur sehr unzuverlässig. Mal ist der Text in der Notiz, mal wird nur eine leere Notiz...
  7. ActiveX Steuerelemente nicht verfügbar im VBA Entwurfsmodus.

    in Microsoft Excel Hilfe
    ActiveX Steuerelemente nicht verfügbar im VBA Entwurfsmodus.: Guten Tag allerseits. Ich habe eine Excel-Anwendung (xlsm mit Macros), die auf einem Laptop Probleme macht. Auf allen anderen PC's läuft es perfekt, auf dem genannten Laptop scheitern Zugriffe auf...
  8. VBA: Datei Upload mit http: POST

    in Microsoft Excel Hilfe
    VBA: Datei Upload mit http: POST: Hallo, schönen Gruß an alle; ich hoffe jemand hat einen Hinweis wo ich ansetzen kann. Problembeschreibung: · VBA aus Excel (das muss auch so bleiben) und funktioniert anscheinend ja auch...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden