TreeView verschwindet auf anderen PC's

  • Word

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von KronSii.

    TreeView verschwindet auf anderen PC's

    Hallo,

    ich habe derzeit ein sehr kurioses Problem auf der Arbeit. Ich bin dabei ein Makro für die Arbeit zu schreiben. Dabei verwende ich mehrere TreeViews. Das TreeView benötigt den Verweis Microsoft Windows Common Controls 6.0. Auf gefühlt über 100 PC's funktioniert das Makro problemlos. Allerdings funktioniert das Makro auf allen neuen PC's die wir erhalten nicht mehr.
    Führe ich das Makro auf einem neuen PC aus, so erscheint folgende Fehlermeldung:

    Mehrere Objekte konnten nicht geladen werden, da sie auf diesem Computer nicht verfügbar sind.

    Schaue ich jetzt in den Quellcode sehe ich, dass alle TreeViews aus den UserForms entfernt wurden. Das dann die Fehlermeldung erscheint ist ja klar. Schaue ich in die Verweise ist der Verweis Microsoft Windows Common Controls 6.0 vorhanden. Ich kann bei einem PC mit der Fehlermeldung in den Quellcode gehen und das TreeView manuell hinzufügen und dann läuft das Makro auch wieder problemlos. Aber warum schmeißt er alle TreeViews raus?

    Alle PC's im Unternehmen haben die gleiche Word Version (Word 2010 Standard). Die neuen PC's werden mit Windows 10 installiert, aber es gibt genug PC's die schon Windows 10 haben und das Makro läuft problemlos. Das kann also schon einmal ausgeschlossen werden. Die neuen PC's haben alle eine Skylake CPU.
    Ich bin etwas überfragt mittlerweile und das Makro ist sehr wichtig für uns.


    Gruß
    KronSii
    Möglicherweise ist eine andere Version der Lib installiert.
    Du kannst ggf. beim Öffnen des Workbook die DLL nachreferenzieren.
    stackoverflow.com/questions/98…eference-programmatically

    Oder du verwendest Late Binding mittels CreateObject, dann musst du aber die Treeviews per Code erzeugen.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Hallo petaod,
    vielen Dank für die schnelle Antwort. Das nach referenzieren hat leider keine Auswirkungen. Ich hatte auch schon die Datei MSCOMCTL.OCX manuell auf dem Computer mit meiner ersetzt. Hat nichts gebracht. Also sind die gleichen Versionen installiert. Ich bin gerade dabei das TreeView zur Laufzeit hinzuzufügen. Das klappt auch mit:

    Visual Basic-Quellcode

    1. Dim objTV As Object
    2. Set objTV = Me.Controls.Add("MSComctlLib.TreeCtrl", "TreeView1", True)
    3. With objTV
    4. .Left = 24
    5. .Top = 60
    6. .Width = 150
    7. .Height = 30
    8. .OLEDropMode = ccOLEDropManual
    9. End With


    Jetzt möchte ich mit Drag and Drop etwas in das TreeView hineinziehen. Zuvor habe ich das so gemacht:

    Visual Basic-Quellcode

    1. Private Sub TreeView1_OLEDragDrop(data As MSComctlLib.DataObject, Effect As Long, button As Integer, Shift As Integer, x As Single, y As Single)
    2. MsgBox data.Files(0)
    3. End Sub


    Das funktioniert jetzt natürlich nicht mehr wenn ich das TreeView zur Laufzeit hinzufüge. Wie kann ich das jetzt am Besten lösen?