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
GELÖST

Meldung in Outlook (ohne Schaltflächen) unterhalb einer Sekunde anzeigen

Frage Entwicklung VB for Applications

Mitglied: evinben

evinben (Level 2) - Jetzt verbinden

28.06.2013, aktualisiert 29.06.2013, 2999 Aufrufe, 34 Kommentare

System: Win7 x32 + Outlook 2007


Wäre es möglich in Outlook eine Meldung über VBA anhand UserForm für nur 500 Millisekunden auszugeben und wie?

Ausgereifter wäre es allerdings wenn diese Meldung (im Falle den Wert einer Variable, welche sich in ThisOutlookSession befindet) irgendwo in dem Fenster der neuverfassten Nachrichten (z. B. in der Statusleiste) ohne einen Timer permanent angezeigt wird.

Vorhaben:
Damit ihr den Fall besser versteht, gehe es hier konkret darum die Standardsprache für die Korrekturhilfe für den ausgewählten Text nach jeder Umschaltung irgendwo anzuzeigen. Da in der Praxis die Umschaltung von Sprache zu Sprache doch zu schnell erfolgt (da es zu viele Sprachen sind), soll sich der Popup auch nicht zu lang zögern, damit die Umschaltung zügig erfolgen kann und diese am Bildschirm nicht stört.
Wenn jedoch die aktuelle Korrektursprache irgendwo im Fenster (aber außerhalb des Textbereiches) angezeigt werden kann (was ja dann die beste Lösung wäre!), dann wäre ein Timer (TimeOut) überflüssig, da der aktuelle Status (EN, DE usw...) permanent angezeigt werden darf. So wäre es eindeutig viel praktischer.

Meine Versuche mit Statusbar=vMeineVar und sonstige UserForm-Experimentent scheiterten bisher.
Daher freue mich umso mehr für eure Hilfe . Sehr neugierig bin ich geworden, wie das Problem zu lösen wäre.

Gruß
Evinben
34 Antworten
Mitglied: colinardo
28.06.2013 um 12:16 Uhr
Hallo Evinben,
für dein Vorhaben wäre vielleicht ein benutzerdefiniertes Formular in Outlook geeignet. Damit kannst du das Standardformular zum erstellen einer Nachricht mit weiteren Steuerelementen erweitern. Du könntest dann ein Label einfügen der eine benutzerdefinierte Property anzeigt, und diese Property änderst du im VBA-Projekt. Soweit die grobe Vorgehensweise.
Infos zum erstellen von Benutzerdefinierten Formularen findest du z.B. hier

Grüße Uwe
Bitte warten ..
Mitglied: evinben
28.06.2013 um 12:31 Uhr
Hallo colinardo,

wie ich oben bereits geschrieben habe, habe ich bereits mit UserForm probiert. Das wesentliche Problem dabei ist einen Timer zu setzen. Darum geht es eigentlich.

Du könntest dann ein Label einfügen der eine benutzerdefinierte Property anzeigt, und diese Property änderst du im VBA-Projekt.
Unter Eigenschaften des erstellten UserForm gibt es keine Timer-Option standardmäßig. Der Timer muss in den Code rein und hier scheiterten meine Versuche in Outlook.
In Excel und in Access wäre es mit dem Timer kein Problem, jedoch für Outlook winde ich nichts passendes.

Gruß
Evinben
Bitte warten ..
Mitglied: evinben
28.06.2013, aktualisiert 29.06.2013
... o... Sorry, du meinst die Formulare für die Outlook-Fenster selbst und nicht die UserFormulare!

Hmmm... das habe ich zuletzt vor drei Jahren gemacht. Schauen wir mal, wie weit ich es diesmal hin bekommen werde.

Bis Bald

Gruß
Evinben
Bitte warten ..
Mitglied: colinardo
28.06.2013 um 12:33 Uhr
Lese mal die Seite unter dem Link, ich meinte keine UserForm sonder ein benutzerdefiniertes Formular (keine VBA-Form) !!
Bitte warten ..
Mitglied: evinben
28.06.2013, aktualisiert 29.06.2013
Hallo colinardo,

das habe ich ja gleich erkannt - siehe mein letztes Schreiben vor dir

Ich werde es versuchen und berichten

Gruß
Evinben
Bitte warten ..
Mitglied: colinardo
28.06.2013, aktualisiert um 12:53 Uhr
Zitat von evinben:
Der Timer muss in den Code rein und hier scheiterten meine Versuche in Outlook.
In Excel und in Access wäre es mit dem Timer kein Problem, jedoch für Outlook winde ich nichts passendes.
Zur Info:
Ein simpler Timer könnte in Outlook so aussehen:
01.
Sub myTimer() 
02.
start: 
03.
    EndTime = Timer + 5 
04.
    While Timer < EndTime 
05.
        DoEvents 
06.
    Wend 
07.
    MsgBox "5 Sekunden verstrichen" 
08.
    GoTo start 
09.
End Sub
Bitte warten ..
Mitglied: evinben
28.06.2013, aktualisiert 29.06.2013
Hallo colinardo,

jetzt glaube ich hier zur Verwirrung gestiftet zu haben. Wenn die 1. Lösung (anhand einer Meldung, anstatt einer permanenten Statusanzeige) umgesetzt werden soll, dann geht es mir hier darum eine Meldung anzuzeigen und sie dann nach 500 Millisekunden automatisch zu schließen. Mit MsgBox wie oben wird es daher nichts.

Eine Meldung anhand UserForm anzuzeigen würde zwar wunderbar funktionieren, jedoch habe ich bisher keine Möglichkeit gefunden einen TimeOut zu setzen (was ich oben als "Timer" bezeichnet habe).

So, nun habe ich eine Lösung für UserForm gefunden:

01.
Option Explicit 
02.
 Private Declare Sub Sleep Lib "kernel32.dll" _ 
03.
     (ByVal dwMilliseconds As Long) 
04.
 
05.
 Private Sub UserForm_Activate() 
06.
     Call Sleep(500) 
07.
     Unload Me 
08.
 End Sub
Nun bleibt es den Wert der Variable, welche sich in ThisOutlookSession befindet, an UserForm(ular) so zu übergeben, so dass ihr Text dann in der Meldung ohne irgendwelchen Schaltflächen angezeigt wird.

Tipps wären willkommen.

(Bei Gelegenheit werde ich es dann mit benutzerdefinierten Outlook-Formularen ebenso probieren. Hierfür bräuchte ich mehr Zeit zum Experimentiren.)


Gruß
Evinben
Bitte warten ..
Mitglied: colinardo
28.06.2013, aktualisiert um 14:12 Uhr
Zitat von evinben:
Nun bleibt es den Wert der Variable, welche sich in ThisOutlookSession befindet, an UserForm(ular) so zu übergeben, so dass ihr Text dann in der Meldung ohne irgendwelchen Schaltflächen angezeigt wird.
Deklariere die Variable als Public in ThisOutlookSession, dann machst du im Activate-Event der Form folgendes:
01.
Private Sub UserForm_Activate() 
02.
   Label1.Caption = ThisOutlookSession.NAME_DEINER_VARIABLEN 
03.
End Sub
Bitte warten ..
Mitglied: 76109
28.06.2013, aktualisiert 30.06.2013
Hallo evinben!

Alternativ zu Colinardos Vorschlag:
Erstelle eine UserForm1 mit Meldetext (ohne Buttons), füge den Code in ein Modul ein und starte die Sub 'SendMsg'
01.
Public Sub SendMsg() 
02.
    UserForm1.Show vbModeless 
03.
    Call Pause(0.5)     '500 Millisekunden 
04.
    Unload UserForm1 
05.
End Sub 
06.
 
07.
'Pause in Sekunden ( 1s = 1, 100ms = 0.1, 500ms = 0.5, 10ms = 0.01...) 
08.
Public Sub Pause(ByVal Sekunden As Double) 
09.
    Dim StopTime As Double 
10.
    StopTime = Date + ((Timer + Sekunden) / 86400) 
11.
    Do While StopTime >= (Date + Timer / 86400) 
12.
        DoEvents 
13.
    Loop 
14.
End Sub
Gruß Dieter

[edit] Divisor (400) durch regulären Divisor (86400) ersetzt [/edit]
Bitte warten ..
Mitglied: evinben
28.06.2013, aktualisiert 29.06.2013
Hallo Dieter,

danke für den Tipp. Vielleicht könnte ich diese Lösung mal doch gebrauchen.

Momentan hänge ich jedoch noch daran die Variable (aus ThisOutlookSession) an UserForm zu übermitteln, da der Tex nicht konstant ist.

Collinardo@ hat mir daher oben empfohlen die Variable als Public zu deklarieren und das habe ich wie folgt Schrit für Schrit getan:

Wenn in UserForm wie folgt steht

01.
Option Explicit 
02.
 Private Declare Sub Sleep Lib "kernel32.dll" _ 
03.
     (ByVal dwMilliseconds As Long) 
04.
      
05.
 Private Sub UserForm_Activate() 
06.
    Label1.Caption = ThisOutlookSession.MeineVar 
07.
    Call Sleep(500) 
08.
    Unload Me 
09.
 End Sub
und dabei die Variable MeineVar wie folgt in einem Modul deklariert ist

01.
Public MeineVar As String
dann wird beim Aufruf von UserForm über ThisOutlookSession mit
01.
UserForm.Show
folgende Fehlermeldung von Compiler ausgegeben

"Methoden oder Datenobjekt nicht gefunden"

und dabei die Variable in UserForm markiert.


Hierfür bräuchte ich weiterhin paar Tipps

Gruß
Evinben
Bitte warten ..
Mitglied: colinardo
28.06.2013 um 19:18 Uhr
du hattest oben geschrieben das die Variable in ThisOutlookSession steht. dann musst du sie auch dort als Public deklarieren, wenn du ThisOutlookSession.MeineVar nutzt.
Wenn du sie in einem Modul als Public setzt kannst du sie direkt ohne das ThisOutlookSession adressieren ...
Bitte warten ..
Mitglied: evinben
28.06.2013, aktualisiert um 19:36 Uhr
Hallo colinardo,

so habe ich es auch ursprünglich gemacht, da das gleiche Problem aufgetreten war, habe ich sie dann zuletzt in einem Modul deklariert.
Die Fehlermeldung des Compilers lautet momentan

"Variable nicht definiert"

obwohl wie oben geschrieben die Variable in einem Modul als Public deklariert ist.

UserForm:
01.
Private Sub UserForm_Activate() 
02.
   Label1.Caption = MeineVar 
03.
End Sub
Gruß
Evinben
Bitte warten ..
Mitglied: colinardo
28.06.2013, aktualisiert um 20:11 Uhr
Das muss aber alles gehen !! Ich hoffe nicht das du die Variable in einer Sub oder Function als Public deklariert hast. Die muss außerhalb einer Prozedur definiert werden !!! Und Inhalt haben sollte sie auch.
Bitte warten ..
Mitglied: 76109
28.06.2013, aktualisiert 30.06.2013
Hallo Evinben!

Füge diesen Code in die UserForm ein:
01.
Public Sub SendMsg(ByVal strText As String) 
02.
    Label1.Caption = strText 
03.
    Show vbModeless 
04.
End Sub
Und diesen Code in ein Modul und starte die Sub Test:
01.
Sub Test() 
02.
    UserForm1.SendMsg "Mein Text" 
03.
    Call Pause(0.5) 
04.
    Unload UserForm1 
05.
End Sub 
06.
 
07.
'Pause in Sekunden ( 1s = 1, 100ms = 0.1, 500ms = 0.5, 10ms = 0.01...) 
08.
Public Sub Pause(ByVal Sekunden As Double) 
09.
    Dim StopTime As Double 
10.
    StopTime = Date + ((Timer + Sekunden) / 86400) 
11.
    Do While StopTime >= (Date + Timer / 86400) 
12.
        DoEvents 
13.
    Loop 
14.
End Sub
Gruß Dieter

[edit] Divisor (400) durch regulären Divisor (86400) ersetzt [/edit]
Bitte warten ..
Mitglied: evinben
28.06.2013, aktualisiert 29.06.2013
Hallo colinardo,

alles ist so wie du es betont hast:
- Inhalt hat sie (die Variable MeineVar wird in einer Sub in ThisOutlookSession gesetzt und sicher mit Inhalt gefüllt)
- ist außerhalb einer Sub (sogar in einem komplett leereren Modul!)
Alles ist genau so, wie ich es oben bereits offen gepostet habe.

Deine Reaktion/Ausrufezeichen wundern mich nun...

Gruß
Evinben
Bitte warten ..
Mitglied: evinben
28.06.2013 um 21:20 Uhr
Hallo Dieter,

soeben habe ich es ausprobiert:

"Laufzeitfehler '424': Objekt erforderlich"
Nach Klick auf Debbugen wird folgende Zeile gelb hervorgehoben:
01.
UserForm1.SendMsg "Mein Text"


Jedoch dein vorheriger Code funktioniert dagegen problemlos.
Es wundert mich, dass dein letzter Code bei dir so funktioniert.

(MS-Outlook 2007, x32 unter Win7 x32)

Gruß
Evinben
Bitte warten ..
Mitglied: colinardo
28.06.2013 um 22:43 Uhr
das kommt vom Copy 'n Paste Syndrom .
Heißt deine Form wirklich UserForm1 ?

Ich würde hier kein Code posten und Dinge behaupten die ich nicht vorher schon mal ausprobiert habe. Deshalb liegt der Fehler eindeutig bei Dir, Sorry.
Mehr als helfen kann ich hier nicht. Und wir haben hier schon sehr viel Geduld aufgebracht.
Bitte warten ..
Mitglied: evinben
28.06.2013, aktualisiert 29.06.2013
Hallo colinardo,

Ich würde hier kein Code posten und Dinge behaupten die ich nicht vorher schon mal ausprobiert habe. Deshalb liegt der Fehler eindeutig bei Dir, Sorry.
Mehr als helfen kann ich hier nicht. Und wir haben hier schon sehr viel Geduld aufgebracht.

wieso fühlst du dich angegriffen? Keine behauptet, dass der Fehler an dir wäre bzw. sowie keiner behauptet, dass der Fehler nicht an mir liegen würde.

Mal schön ganz ruhig . Es gibt wichtigere Dinge im Leben.

Mehr als helfen kann ich hier nicht. Und wir haben hier schon sehr viel Geduld aufgebracht.
Du bist ja in keiner Weise verpflichtet hier in Forum zu helfen.

Du hast Fakten und ich habe Fakten. Die Frage ist nicht wer letztendlich schuldig wäre, sondern wie das technische Problem zu lösen wäre.

Bei so einem kurzen Weg aufzugeben wäre es persönlich nichts für mich.

Jedoch auf deine Frage zu beantworten: es ist ja egal wie das UserForm(ular) letztendlich heißt, hauptsächlich es mit dem richtigen Nahmen in der jeweiligen Sub... anzusprechen.
D. h. für den Code von Dieter habe ich mir UserForm1 erstellt und für deinen Code eins mit einem anderen Namen, was äquivalent wäre, und es dann mit
01.
Name_des_UserForms.Show
aus einer Sub in ThisOutlookSession anspreche (mit gefüllter Variable MeineVar, welche in einem leereren Modul als Public deklariert worden ist usw.).
Oben habe ich ja alle meine Schritte beschrieben.

Gruß
Evinben
Bitte warten ..
Mitglied: colinardo
29.06.2013 um 09:27 Uhr
OK, zurück zum wesentlichen.
Dieters Code hier funktioniert einwandfrei unter Outlook 2007:
siehe dieses DEMO-Video.
Poste uns mal mehr aus deinem Projekt-Code damit wir der Ursache auf den Grund gehen können. Vielleicht hat sich da ein nicht sichtbares Sonderzeichen eingeschlichen, das den Fehler verursacht.

Zitat von 76109:
Hallo Evinben!

Füge diesen Code in die UserForm ein:
01.
Public Sub SendMsg(ByVal strText As String) 
02.
     Label1.Caption = strText 
03.
     Show vbModeless 
04.
End Sub

Und diesen Code in ein Modul und starte die Sub Test:
01.
Sub Test() 
02.
     UserForm1.SendMsg "Mein Text" 
03.
     Call Pause(0.5) 
04.
     Unload UserForm1 
05.
 End Sub 
06.
  
07.
 'Pause in Sekunden ( 1s = 1, 100ms = 0.1, 500ms = 0.5, 10ms = 0.01...) 
08.
 Public Sub Pause(ByVal Sekunden As Double) 
09.
     Dim StopTime As Double 
10.
     StopTime = Date + ((Timer + Sekunden) / 400) 
11.
     Do While StopTime >= (Date + Timer / 400) 
12.
         DoEvents 
13.
     Loop 
14.
 End Sub
Gruß Dieter

Grüße Uwe
Bitte warten ..
Mitglied: evinben
29.06.2013, aktualisiert um 11:09 Uhr
Hallo Uwe,

danke dir, dass du dich doch meldest und nicht aufgibst. Es freut mich sehr.

Das Video habe mir heruntergeladen und mehrmals alles vorsichtig miteinander verglichen.
Nur einen einzigen Unterschied habe ich gefunden, was jedoch keine Auswirkung auf Funktion hat:
In deinem Video bei UserForm1 ist ByVal in der Zeile
01.
Public Sub SendMsg(ByVal strText As String)

rausgelassen worden. Ansonsten nichts mehr.

Den anderen Code starte ich sowohl über einen leereren Modul als auch über ThisOutlookSession (dort habe ich sicherheitshalber alle meine restlichen Codes, welche hierfür irrelevant sind, vorher entfernt, um im Falle der Fälle eventuelle nicht ahnende Kollisionen zu vermeiden).

Leider wird beim Ausführen weiterhin dieselbe Fehlermeldung wie oben angezeigt:
"Laufzeitfehler '424': Objekt erforderlich"

Das Objekt UserForm1 kann aus unbekannten Gründen nicht gefunden werden, jedoch funktioniert einwandfrei (wenn in ihm enthaltene Sub gestartet wird).
Sicherheitshalber habe ich das UserFormular UserForm1 entfernt und neuerstellt. Dann mehrmals umbenannt (synchron ebenso in der Sub in dem Modul).
Leider keine Besserung bisher.

Anbei der angeforderte Code 1:1, ohne einzige Änderung:
01.
 
02.
'###################################### 
03.
'EXPERIMENTELL 
04.
'UserForm "UserForm1" aufrufen. 
05.
'###################################### 
06.
Sub Test() 
07.
    UserForm1.SendMsg "Mein Text" 
08.
    Call Pause(0.5) 
09.
    Unload UserForm1 
10.
End Sub 
11.
 
12.
'Pause in Sekunden ( 1s = 1, 100ms = 0.1, 500ms = 0.5, 10ms = 0.01...) 
13.
Public Sub Pause(ByVal Sekunden As Double) 
14.
    Dim StopTime As Double 
15.
    StopTime = Date + ((Timer + Sekunden) / 400) 
16.
    Do While StopTime >= (Date + Timer / 400) 
17.
        DoEvents 
18.
    Loop 
19.
End Sub
Bisher funktionierten alle meine viele Makros tadellos bis das jetzige und ich hatte nie so ein seltsames Problem, dass speziell in meinem VBA-Editor etwas nicht funktioniert und bei anderen doch.

Nun sind wir alle sehr verwirrt...

Dennoch lassen wir das Wochenende weiterhin mit einer guten Laune gehen.

Gruß
Evinben
Bitte warten ..
Mitglied: colinardo
29.06.2013, aktualisiert um 11:14 Uhr
Kurios..
Irgendwie wird das Objekt der UserForm1 nicht erzeugt. Das sollte normalerweise automatisch geschehen. Du kannst es aber auch manuell neu erzeugen in dem du die Sub Test() folgendermaßen abänderst:
01.
Sub Test() 
02.
    Dim newForm As New UserForm1 
03.
    newForm.SendMsg "Mein Text" 
04.
    Call Pause(0.5) 
05.
    Unload newForm 
06.
End Sub
probier das mal bei dir
Bitte warten ..
Mitglied: evinben
29.06.2013, aktualisiert um 13:29 Uhr
Hallo Uwe,

soeben habe ich es probiert: ...das gleiche Problem besteht weiterhin ("Laufzeitfehler '424': Objekt erforderlich")
Mit diesem Code ändert sich leider nichts daran.

Gruß
Evinben
Bitte warten ..
Mitglied: evinben
29.06.2013, aktualisiert um 11:58 Uhr
... es ist anscheinend nur etwas im Zusammenhang mit ... SendMsg "Mein Text"

Mit dem allerersten Code von Dieter funktioniert ja das Ansprechen eines UserFormulars. Wenn nun SendMsg benutzt wird, dann hört es auf ("Objekt nicht gefunden").
Bitte warten ..
Mitglied: colinardo
29.06.2013, aktualisiert um 11:35 Uhr
Zeigt der Editor dir denn nach dem Eintippen von UserForm1 die Funktion SendMsg im Intelli-Sense an ?
Hast du deinen Rechner schon mal neu gestartet?
Bitte warten ..
Mitglied: evinben
29.06.2013 um 12:03 Uhr
Ja!
(Der Verweis auf SendMsg wird im Intellisense definitiv mitaufgelistet)
Bitte warten ..
Mitglied: colinardo
29.06.2013 um 12:13 Uhr
Hast du noch einen zweiten Rechner mit dem du testen könntest ?
oder alternativ: lege mal testweise einen neuen Windows-Account an in dem du den Code in Outlook einbindest. Um auszuschließen das das Profil einen Schuss hat.
Bitte warten ..
Mitglied: evinben
29.06.2013 um 13:13 Uhr
Hallo Uwe,

soeben habe ich auf einem anderen Rechner (ebenso mit Win7 x32 und MS-Office 2007) die beiden Code-Abschnitte von Dieter in VBA-Editor des Outlooks eingefügt und ausprobiert.
Hierfür habe ich erstmals ein Outlook-Profil erstellen müssen. Den zweiten Code-Abschnitt habe ich sowohl in ThisOutlookSession als auch in einem leereren Modul eingefügt in beiden Bereichen und jeweils nacheinander ausgeführt.

Ergebnis: der Compiler debuggt weiterhin die gleiche Fehlermeldung wie oben.

Nun wird das Problem erst ab jetzt spannender.

Du kannst dich meinetwegen gerne mit mir per TeamViever (8) verbinden oder alternativ.
Jedoch vergewissere ich hier, dass ich von dir und von Dieter empfohlenen Schritten genauso, wie diese beschrieben sind, gemacht habe.

Gruß
Evinben
Bitte warten ..
Mitglied: 76109
29.06.2013, aktualisiert um 14:01 Uhr
Hallo zusammen!

Hat sich ja einiges getan

@colinardo
Danke für's einspringen

@evinben
Leider fällt mir zu Deinem Problem nix ein, zumal es bei mir auch problemlos läuft. Enthält die UserForm auch ein Textfeld mit dem Namen 'Label1' ?

Wenn nicht, dann kommt der beschriebene Fehler nämlich auch...

Gruß Dieter
Bitte warten ..
Mitglied: evinben
29.06.2013 um 14:27 Uhr
Hallo Dieter,

Enthält die UserForm auch ein Textfeld mit dem Namen 'Label1' ?
nein, die Notwendigkeit war mir nicht bekannt. Soeben habe ich es ergänzt und der Compiler meldet dies mal den folgenden Fehler:

Methode oder Datenobjekt nicht gefunden

hebt dabei die Zeile
01.
Public Sub SendMsg(ByVal strText As String)
gelb hervor und markiert in der danach folgenden Zeile die folgende Zeichenfolge: [.Caption =]

Gruß
Evinben
Bitte warten ..
Mitglied: colinardo
29.06.2013, aktualisiert um 14:36 Uhr
nein, die Notwendigkeit war mir nicht bekannt.
Das war der Hinweis den wir brauchten .....
Zu deinem letzten Fehler:
Es sollte hierbei natürlich ein Bezeichnungsfeld-Objekt(das mit dem großen A in der Werkzeugkiste) sein und kein Textfeld wenn du die Eigenschaft Caption verwendest. Ansonsten nimmst du bei einem Textfeld die Value Eigenschaft.
Bitte warten ..
Mitglied: evinben
29.06.2013, aktualisiert um 14:52 Uhr
Hallo Uwe,

, wenn ich Caption mit Value ersetze, dann erhalte ich endlich die Meldung "Mein Text" in dem weiß angezeigten Textfeld, den ich allerdings erst dann erstellt habe, nach dem mich Dieter darauf hingewiesen hat.

Also alles funktioniert durch prima
Und es freut mich, dass bei mir doch nichts etwas beschädigt ist oder so, wie es beinahe zu vermuten wäre...

Etwas verstehe ich allerdings noch nicht. Du schreibst:
Es sollte hierbei natürlich ein Label-Objekt sein und kein Textfeld wenn du die Eigenschaft Caption verwendest.
Warum sollte es sich in meinem Falle um ein Label-Objekt handeln? Und wie erstelle ich so ein Label-Objekt (der Textfeld wird in der Werkzeugsammlung als "Textfeld" bezeichnet und so habe ich ihn finden können). Kann es sein dass du mit diesem Label-Objekt in der deutschen Lokalisierung den "Bezeichnungsfeld" meinst?

PS: Der andere Rechner wird bald fertig und erst danach hätte ich Möglichkeit den TeamViewer zu starten, falls es überhaupt noch nötig wäre...

Gruß
Evinben
Bitte warten ..
Mitglied: 76109
29.06.2013, aktualisiert um 15:00 Uhr
Hallo!

Es sollte hierbei natürlich ein Bezeichnungsfeld-Objekt(das mit dem großen A in der Werkzeugkiste) sein und kein Textfeld wenn du die Eigenschaft Caption verwendest. Ansonsten nimmst du bei einem Textfeld die Value Eigenschaft.
Sorry, hatte ich eigentlich auch so gemeint, aber fälschlicherweise das Textfeld als Gegenstück der TextBox interpretiert

@evinben
Enthält die UserForm auch ein Textfeld mit dem Namen 'Label1' ?
nein, die Notwendigkeit war mir nicht bekannt.
Der war gut

Warum sollte es sich in meinem Falle um ein Label-Objekt handeln? Und wie erstelle ich so ein Label-Objekt (der Textfeld wird in der Werkzeugsammlung als "Textfeld" bezeichnet und so habe ich ihn finden können). Kann es sein dass du mit diesem Label-Objekt in der deutschen Lokalisierung den "Bezeichnungsfeld" meinst?
Das Textfeld alias TextBox ist ein Text-Eingabefeld, dass Du ja nicht benötigst, da Du ja nur Text anzeigen lassen willst, insofern reicht ein Bezeichnungsfeld (großes A-Symbol). Hatte es im letzten Kommentar nur verwechselt und colinardo hat es ja inzwischen richtig gestellt...

Gruß Dieter
Bitte warten ..
Mitglied: colinardo
29.06.2013, aktualisiert um 14:56 Uhr
Zitat von evinben:
Etwas verstehe ich allerdings noch nicht. Du schreibst:
> Es sollte hierbei natürlich ein Label-Objekt sein und kein Textfeld wenn du die Eigenschaft Caption verwendest.
Warum sollte es sich in meinem Falle um ein Label-Objekt handeln? Und wie erstelle ich so ein Label-Objekt (der Textfeld wird in
der Werkzeugsammlung als "Textfeld" bezeichnet und so habe ich ihn finden können). Kann es sein dass du mit diesem
Label-Objekt in der deutschen Lokalisierung den "Bezeichnungsfeld" meinst?
Genau das meinte ich, hatte es auch danach noch korrigiert.
PS: Der andere Rechner wird bald fertig und erst danach hätte ich Möglichkeit den TeamViewer zu starten, falls es
überhaupt noch nötig wäre...
ist ja nicht mehr nötig...

Dann können wir das ja hier abschließen .
Viel Erfolg weiterhin ..

Grüße Uwe
Bitte warten ..
Mitglied: evinben
29.06.2013, aktualisiert um 15:14 Uhr
Hallo Uwe und Dieter!

Alle Probleme haben sich auf Anhieb erledigt. Soweit habe ich alles verstanden und dabei reichlich gelernt.

Die Grundlogik einer UserForm habe ich soweit erkennen können und werde diese gerne öfters einsetzen


Ja, den Fall können wir soweit schließen.

Ein schönes Wochenende

Gruß
Evinben
Bitte warten ..
Neuester Wissensbeitrag
Festplatten, SSD, Raid

12TB written pro SSD in 2 Jahren mit RAID5 auf Hyper-VServer

Erfahrungsbericht von Lochkartenstanzer zum Thema Festplatten, SSD, Raid ...

Ähnliche Inhalte
Outlook & Mail
gelöst Outlook 2013 - Teilnehmer in Termin anzeigen (4)

Frage von xbast1x zum Thema Outlook & Mail ...

Outlook & Mail
Outlook 2013 mehrere kalender in Aufgabenleiste anzeigen lassen

Frage von montana zum Thema Outlook & Mail ...

Outlook & Mail
gelöst Outlook Signatur nicht als Attachement anzeigen (25)

Frage von FitforLife zum Thema Outlook & Mail ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...