Morgen CEROG,
Zitat:
diese "Sicherheitsmeldung" kommt tatsächlich. Es wäre nicht schlecht, wenn es eine Möglichkeit gäbe, die abzuschalten.
Es gibt hierzu wohl mindestens zwei Möglichkeiten:
1. Ein Hintergrundprog, welches diese Meldung automatisch wegklickt.
Siehe hier: http://www.express-soft.com/mailmate/clickyes.html
2. Redemption, siehe http://www.dimastr.com/redemption/
Zitat:
Die Prozedur DblClick hieß auch mal IstKontakt_DblClick. Das das schon beim Kompilieren Probleme bereitete, hatte ich sie umbenannt. Vielleicht habe ich ja das Glück des Dummen und es reicht, daß ich .Enabled auf "True" setze.
Nein. IstKontakt_DblClick (bzw. es hieß vermutlich eher lstKontakt_DblClick) ist eine Ereignisfunktion, welche durch einen Doppelklick in die Listbox lstKontakt ausgelöst wird. Wenn Du sie umbennenst ist sie keine Ereignisfunktion mehr und wird wohl ganz einfach nicht mehr aufgerufen.
Versuch's mal so:
Private Sub lstKontakt_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Übrigens ist es IMHO keine gute Idee die Initialisierung der Outlook-Objekte hinter einen Button zu legen, da dieser ja mehrmals gedrückt werden könnte. Tu dieses wohl besser in UserForm_Initialize().
Zitat:
Mein Problem bei der ganzen Sache ist, daß ich eigentlich von VB keine Ahnung habe.
Da hast Du ja noch einiges vor Dir.
Suche vielleicht auch mal im Excel-Center im Excel-Foren-Archiv.
Dort solltest Du einige Beiträge hierzu finden, z.B.:
http://www.excel-center.de/forum/read.php?f=1&i=66886&t=66734#reply_66886
Folgendes funktioniert nur mit Redemption.
Du brauchst hierzu in VBA einen Verweis auf die "SafeOutlook Library".
D.h. Du mußt zuvor die Redemption.dll installieren.
HTH, Bernd
--
Option Explicit
Dim objOutlook As Outlook.Application ' Outlook als Objekt festlegen
Dim Namensraum As NameSpace ' Der Namespace
Dim MailFolder As MAPIFolder ' Der MAPI-Folder legt den Ordner fest (z. B. Kontakte)
Dim objItems As Items ' Items sind die einzelnen Einträge
Dim AktUser As String ' Speicherung des Usernamens - vom Profil abhängig
Private Sub cmdKontakt_Click()
' Kontakte auslesen und in Liste anzeigen
Kontakte_Lesen
MsgBox "zurueck zu Schalter"
End Sub
Private Sub Kontakte_Lesen()
' Items initialisieren
Set objItems = MailFolder.Items
' Einträge nach dem Nachnamen sortieren lassen
objItems.Sort "[Lastname]", False
' Alle Items in die Listbox schreiben
For zaehler = 1 To objItems.Count
lstKontakt.AddItem objItems(zaehler)
Next zaehler
End Sub
Private Sub IstKontakt_LostFocus()
Msg "Focus verloren"
End Sub
Private Sub form_Unload(Cancel As Integer)
' alle Objekte abschließen
Set objItems = Nothing
Set MailFolder = Nothing
Set Namensraum = Nothing
Set objOutlook = Nothing
End Sub
Private Sub lstKontakt_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim empfaenger ' Der ausgewählte Empfänger
Dim zaehler As Integer ' Zähler zum Füllen der Listboxen
With lstKontakt
If .ListIndex > -1 Then
empfaenger = .List(.ListIndex)
End If
End With
MsgBox empfaenger
End Sub
Private Sub UserForm_Initialize()
Dim sCU As SafeCurrentUser ' ein Redemption Objekt
' Outlook initialisieren
Set objOutlook = New Outlook.Application
' Namespace initialisieren
Set Namensraum = objOutlook.GetNamespace("MAPI")
' Aktueller User in Outlook ermitteln via Redemption
' umgeht den Outlook-Sicherheits-Schnickschnack !
Set sCU = CreateObject("Redemption.SafeCurrentUser")
AktUser = sCU.name
sCU.Cleanup
Set sCU = Nothing
' Ordner setzen, in unserem Fall Contacts
Set MailFolder = Namensraum.GetDefaultFolder(olFolderContacts)
End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP