Typ-Fehler bie Dim X as Dataobject

Bild

Betrifft: Typ-Fehler bie Dim X as Dataobject von: Reinhard
Geschrieben am: 14.02.2005 17:00:40

Hallo Wissende,
wohl wieder Ende der Fahnenstange bei mir bzw. zurückrutschen zu den Basics der Definitionen :-(
Was will der Editor da von mir? Im Internet steht das oft genauso, warum meckert der Compiler da an der im Remark gezeigten Stelle?


Sub kopieren_test()
    Dim MyData As DataObject ' Compiler-Fehler:Benutzerdefinierter Typ nicht definiert
    Set MyData = New DataObject
    MyData.SetText "Hello World"
    MyData.PutInClipboard
End Sub


Dabei funktionierte es auch wenn man die Dim-Anweisung weglässt. (Denn ist Teilcode aus meinem jeanniefür arme posting in Forumstechnik) Und da lief es schon öfters problemlos auch ohne die Dim-Zeile, aber halt nicht immer, jetzt will ich halt genau wissen warum es manchmal nicht geht und wie die Abhilfe aussieht bzw wie es richtig aussehen muss.

Also 2 Fragen :
a) warum lief es 90/10 auch ohne die Dim -Anweisung?
b) wieso läuft es mit Dim-Anweisung nicht?

Danke für etwige Hilfe
Gruß
Reinhard
Bild


Betrifft: AW: Typ-Fehler bie Dim X as Dataobject von: Ute
Geschrieben am: 14.02.2005 17:02:37

Ist ein Verweis auf die Forms 2.0 Bibliothek gesetzt?

mfg Ute


Bild


Betrifft: AW: Typ-Fehler bie Dim X as Dataobject von: Kurt
Geschrieben am: 14.02.2005 17:11:09

Das DataObject ist ein Element der Bibliothek FM20.dll.
Wenn der Verweis darauf nicht gesetzt ist, kannst du es nicht verwenden.
Schau mal in der VBE unter Menü Extras|Verweise, ob da der Verweis auf
die Microsoft Forms 2.0 Object Library(FM20.dll) gesetzt ist.


Bild


Betrifft: Danke Ute & Kurt von: Reinhard
Geschrieben am: 14.02.2005 22:56:17

Hi euch Beiden,
danke sehr für den Hinweis auf die "forms", über google krieg ich raus wie ich das im Makro einbinde, ich nehme an, damit ist das eine Problem gelöst, also warum es nicht läuft.
Bliebe noch das Problem warum es ohne Einbindung mehrfach lief.
Da ich ja den o.g. Code nicht nur selbst mehrfach problemlos ausgeführt habe, OHNE Einbindung von irgendwas, sondern auch hier in Forumstechnik und auch in einem anderen Foren postete, wo andere Leute das ausprobierten, und es bei denjenigen lief, mutmaße ich, (davon ausgehend nix ist speziell eingebunden) wenn ich Excel frisch starte, läuft der Code nicht, aber wenn ich dann , keine Ahnung, ein SteuerButton erstelle oder sowas, dass dann Excel im Geheimen den Verweis auf Forms setzt.
Nur so kann ich mir das Ganze erklären.
Danke für die Antworten, ich setz noch mal die Frage auf noch offen, vielleicht weiss ja jemand was Excel bewegt diesen Verweis von sich aus zu setzen.
Gruß
Reinhard


Bild


Betrifft: personl.xls und fm20.dll (MS Forms 2.0 Object Libr von: Reinhard
Geschrieben am: 15.02.2005 16:25:24

Hallo Wissende,
im Erignis Workbook-Open der personl.xls setze ich den Verweis auf Microsoft Forms 2.0 Object Library mit
Application.VBE.ActiveVBProject.References.AddFromFile "fm20.dll"
Das klappt und auch im Codebereich der dann geöffnetetn Mappe1 ist der Verweis gesetzt.
Aber, öffne ich eine beliebig andere datei über Datei--Öfnnen, so ist in deren Codebereich, der Verweis nicht gesetzt?
Wie kann ich das erreichen dass da auch durch personal.xls der Verweis gesetzt wird für alle später geöffneten Dateien?
Manuelles Setzen des Verweises ist bei der nächsten Excel-Instanz weg.
Gruß
Reinhard


Bild


Betrifft: AW: personl.xls und fm20.dll (MS Forms 2.0 Object Libr von: Tim
Geschrieben am: 17.02.2005 17:57:17

Dazu ist ein Klassenmodul z.B. in der persönlichen Mappe nötig, das den Verweis bei jedem neuen Workbook setzt.
Du kannst auch eine Vorlage verwenden, bei der der Verweis gesetzt ist.

Tim


Bild


Betrifft: Verweise bei Workbook, Klasenmodul personl.xls von: Reinhard
Geschrieben am: 18.02.2005 02:03:32

Merci Tim,
das mit der Vorlage, okay, das krieg ich sicher hin.
Aber interessieren würde mich der Code für das Verweise setzen in einem Klassenmodul in der Personl.xls.
Außer in der personl.xls Einfügen---Klassenmodul auszuwählen fehlt mir dafür alles weitere Wissen :-()
Wie würde denn da der Code lauten?
Dankeschön
Reinhard


Bild


Betrifft: AW: Verweise bei Workbook, Klasenmodul personl.xls von: Tim
Geschrieben am: 18.02.2005 12:47:44

Klassenmodule sind nichts für Anfänger, nimm die Vorlagenlösung.

Tim


Bild


Betrifft: Lösung von: Reinhard
Geschrieben am: 18.02.2005 21:33:09

Hallo Interessierte,
ich habe eine Lösung im Internet gefunden und für meine Zwecke angepasst :

In Personl.xls ein Klasssenmodul einfügen und per F4 umbenennen in AppEventClass
Darin folgenden Code eintragen:

Option Explicit
Public WithEvents xlApp As Excel.Application
Private Sub Class_Initialize()
Set xlApp = Application
End Sub
Private Sub xlApp_WorkbookOpen(ByVal Wb As Workbook)
Application.VBE.ActiveVBProject.References.AddFromFile "fm20.dll"
End Sub

In "DieseArbeitsmappe" von personl.xls:

Private Sub Workbook_Open()
Set xlEvents.xlApp = Application
End Sub


In "Modul1" von Personl.xls:

Option Explicit
Public xlEvents As New AppEventClass

In allen geöffneteten Dateien wird nun automatisch beim Öffnen der Verweis auf "fm20.dll", also MS Forms 2.0 Object Library gesetzt.
Gruß
Reinhard


 Bild

Beiträge aus den Excel-Beispielen zum Thema "SVerweis u. Zielwertsuche"