none
VBA Verweis-Problem RRS feed

  • Frage

  • Hallo,

    ich habe ein Verweisproblem in VBA. Es kommt die Fehlermeldung "Projekt oder Bibliothek nicht gefunden". Aber nur auf meinem Laptop! Auf meinem PC kommt diese Fehlermeldung nicht. Ich habe es schon mit verschiedenen Verweiskombinationen getestet (s. Bild), aber kein Erfolg. Woran kann das liegen?

    Mit freundlichen Grüßen

    Herbert Grom
    Verweis-Test

    Servus

    Dienstag, 11. Februar 2020 15:42

Alle Antworten

  • Der Verweis geht auf ein VBAProject in einer anderen Exceldatei, die auf deinem Laptop aber nicht da ist.
    Das Gemeine ist, dass man durchaus auf verschiedene Excel-VBA's verweisen kann, die dann allerdings alle in derselben Ordnerstruktur benötigt werden.

    Die Frage ist aber, ob du das andere Projekt auch wirklich brauchst.

    Übrigens:
    Wenn du den VBA-Editor offen hast, siehst du im "Projektfenster" z.B. "VBAProjekt (Mappe1)".
    Über die Eigenschaften solltest du diesem einen vernünftigen Namen geben, dann steht das auchso in den Verweisen.

    Wenn du wiederkehrende Module benötigst, solltest du diese als ".xlam" (Excel-Addin) speichern.
    Dann kannst du diese per AddIn laden, dann ist der Installationsort fast egal.
    Außerdem kann man die Makrosicherheit dann u.U. höher stellen.

    Dienstag, 11. Februar 2020 16:10
  • Entschuldigung, aber ich verstehe dich nicht ganz. Was meinst du mit "das andere Projekt"?

    Ich habe dem VBAProjekt einen "vernünftigen" Namen gegeben, doch dieser erscheint nicht in der Verweisübersicht! Oder sind die angezeigten Verweise dann mit dem VBA-Projekt/Excel-Datei gespeichert?


    Servus

    Dienstag, 11. Februar 2020 17:09
  • Genau.

    Eine Makro-Excel hat immer ein Projekt, dess Standardname "VBAProjekt" ist.
    Wenn ich nun 2 Makro-Excels öffne, kann ich über "Extras"->Verweise eben auf ein andere Makroprojekt verweisen, weil ich da gemeinsame Module entwicklet habe.

    Ein Verweis auf auf das eigene Projekt ist nie nötig.
    Nimm den Verweis doch einfach mal raus und schau nach, was passiert.
    Ich vemute mal, das hast du aus Versehen angeklickt, da man eher selten Makros aus anderen Excels (außer AddIn's) aufruft.

    Dienstag, 11. Februar 2020 17:15
  • Hat leider alles nix geholfen, die Fehlermeldung kommt nach wie vor. Und das an unterschiedlichen Stellen und auch nicht jedes Mal! Kann das evtl. damit zusammenhängen, dass ich die Excel-Datei auf meinem PC mit Windows 10 Pro erstellt habe und der Laptop nur Windows 10 Home hat?

    Servus

    Mittwoch, 12. Februar 2020 09:08
  • Nein, das hat nichts mit Windows sondern nur mit Excel zu tun.
    Wenn du den Verweis entfernst muss dein VBA-Code doch an irgendeiner Stelle aus der Kurve fliegen.
    Der Editor zeigt mir dies doch.
    Dann vergleiche dies mit deinem funktionierenden PC, welche Funktion/Prozedur da in welchem Excel aufgerufen wird (Einzelschritt).
    Mittwoch, 12. Februar 2020 09:31
  • Es passiert dann, wenn ich in eine Zelle z.B. die zahl 1989 eingebe. Dann habe ich die "Worksheet_Change"-Routine auf Einzelschritt geschaltet. Doch darauf reagierte er nicht und brachte gleich, nachdem ich die Eingabe mit Enter abgeschlossen habe, die Fehlermeldung. Nun habe ich die Verweise auf die 3 reduziert, die er mich auch nicht abschalten lässt, da er diese "zur Zeit verwendet". Nachdem er sie ja verwendet, kann er diese 3 ja auch nicht vermissen, denke ich jedenfalls.

    Leider kein Erfolg. Und das verrückte ist, dass er das nicht jedes Mal macht, sondern anscheinend nur bei der ersten Eingabe nach dem Start der Datei. Danach funzt es. Ist das nicht eigenartig?


    Servus

    Mittwoch, 12. Februar 2020 10:00
  • Ich beschreibe mal genau, was ich mache.

    Ich klicke auf einem Sheet auf einen Button, der mir eine UF öffnet. Darin klicke ich auf einen Eintrag, wo mir dann, in einem zweiten Sheet die Daten des ausgewählten Eintrags in die Spalte D eingetragen werden. Wenn ich dann, in diesen Daten in der Spalte D, in der Zelle D8 eine beliebige Zahl eintrage, kommt diese Fehlermeldung. 

    Wenn ich dann, in dem sich öffnenden Verweis-Fenster, auf OK klicke, zurück zur Zelle D8 gehe und dann noch einmal eine Zahl eingebe, dann kommt keine Fehlermeldung mehr!

    Durch eine Eingabe in diesem zweiten Sheet, wird das "Worksheet_Change"-Ereignis ausgelöst und dabei geprüft, ob die Eingabe in einer Zelle erfolgte, wo dann weitere Aktionen ausgeführt werden müssen. Bei D8 müssen keine weiteren Aktionen erfolgen, wodurch die Routine bis zum Ende durchläuft, ohne etwas zu unternehmen.

    Kann das mit der UserForm zusammenhängen?


    Servus

    Mittwoch, 12. Februar 2020 10:31
  • Das hat was mit den verwendeten (Verweise) Objekten zu tun, die dein VBA-Code aufruft.

    Dies kann u.U. gar kein Verweis sondern ein Steuerelement sein.
    Wenn du deinen Formular-Editor aufmachst, verwendest du u.U. ein bestimmtes Control-Element (z.B. DateTime-Picker), dass auf einem Laptop nicht vorhanden ist.

    Das kann dann z.B. auch an der unterschiedlichen Bitness deinerInstallation liegen.
    Aus der Historie gubt es viele Controls aus der VB6-Umgebung, allerdings nur in 32-Bit.

    Somit kann das Makro/die Userform in 64-Bit nicht ausgeführt werden.
    Da deine Userform allerdings weiterläuft, scheinst du das Conrol ggf. gar nicht zu benötigen.

    Gehe mal in den Formualrentwurf, wo es nicht funktioniert.
    Im Entwurf wird dann ein Control, dass nicht existiert, nur als Icon dargestellt.

    Mittwoch, 12. Februar 2020 11:10