Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
408to412
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
408to412
408to412
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

automatisches einbinden von VBA extensibility

automatisches einbinden von VBA extensibility
VBA
wie kann man diesen verweis in "workbook_open" aktivieren?
wenn ich das richtig gelesen habe sind alle elemente wie "references" teil von vbide, also genau von dem was ich aktivieren will...
danke für die hilfe

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: automatisches einbinden von VBA extensibility
VBA
Hallo Woro?.
das setzen eines Verweises per VBA ist eigentlich kein Problem. Nur, wenn du eine Variable aus der Objektbibliothek der DLL/OLB/TLB, auf die du verweisen willst, verwendest und der Verweis ist nicht beim laden der Mappe gesetzt, bekommst du eine Kompilierungsfehler, der nicht abfangbar ist. Die einzige Möglichkeit wäre den Code nach dem stezen des Verweises zur Laufzeit zu generieren.
Gruß
Nepumuk
AW: automatisches einbinden von VBA extensibility
VBA
kannsz du mir deinen letzten satz genauer erläutern?
die frage ist: die vbide ist nicht aktiviert, ich benutze aber eigenschaften daraus. jetzt gebe ich jemand meine datei, der startet die und kann mit der gesamten programierung nichts anfangen, weil: 1. projekt geschützt, zweitens ein laufzeitfehler das nutzen nicht möglich macht, sondern fehlermeldung (...im verborgenen modul ...bla ).
gibt es nicht eine routine mit der man die bibliotheken alle aktivieren kann (auch wenn sie schon aktiviert sind). es führt auch zu einer fehlermeldung bereits aktivierte bibliotheken nochmals zu aktivieren....
gruß woro
Anzeige
AW: automatisches einbinden von VBA extensibility
VBA
Der Verweis auf die entsprechende Bibliothek wird mit deiner Mappe gespeichert.
Ist diese Biblothek auf dem anderen PC vorhanden, gibts keine Probleme.
Ist sie es nicht, kannst du den Verweis ohnehin nicht setzen.
Kurt
AW: automatisches einbinden von VBA extensibility
08.04.2004 08:28:25
VBA
Hallo Woro?,
das aktivieren von Bibliotheken im nachhinein geht aber nur, wenn der Benutzer das Kennwort für das VBA - Projekt hat. Das geht dann so:


Public Sub abfragen_und_setzen()
    Dim intIndex As Integer, bolgefunden As Boolean
    With ThisWorkbook.VBProject.References
        For intIndex = 1 To .Count
            If Right(.Item(intIndex).FullPath, InStr(1, StrReverse(.Item(intIndex).FullPath), "\") - 1) = "VBE6EXT.OLB" Then bolgefunden = TrueExit For
        Next
        If Not bolgefunden Then .AddFromFile "C:\Programme\Gemeinsame Dateien\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB"
    End With
End Sub


Für das erstellen eines Codes zur Laufzeit gibt es mehrere Möglichkeiten.
1. Du kannst komplette Module importieren
2. Du kannst den Code auskommentieren und beim laden der Mappe die Hochkommatas weglöschen.
3. Du kannst den Code aus einer Textdatei importieren.
4. Du kannst den Code aus einer ausgeblendeten Tabelle der Mappe einlesen.
5. Du kannst den Code direkt per Code erzeugen. Dazu ein kleines Beispiel:


Public Sub test()
    With ThisWorkbook.VBProject.VBComponents("DieseArbeitsmappe").CodeModule
        .DeleteLines 1, .CountOfLines
        .InsertLines 1, "Option Explicit"
        .InsertLines 2, ""
        .InsertLines 3, "Private Sub Workbook_Open()"
        .InsertLines 4, "    Dim Tabelle As Worksheet"
        .InsertLines 5, "    For Each Tabelle In Worksheets"
        .InsertLines 6, "        Tabelle.Protect Password:=" & Chr(34) & "Kennwort" & Chr(34) & ", UserInterfaceOnly:=True"
        .InsertLines 7, "        Tabelle.EnableOutlining = True"
        .InsertLines 8, "        Tabelle.EnableAutoFilter = True"
        .InsertLines 9, "     Next"
        .InsertLines 10, "End Sub"
    End With
End Sub


Voraussetzung dafür ist aber immer, dass das Projekt nicht geschützt ist, oder der User das Kennwort kennt.
Eine weiter Möglichkeit wäre, durch das Workbook_Open - Ereignis eine VB - Routine zu starten, die den Code in die Module schreibt, der dann beim schließen / speichern der Mappe wieder gelöscht wird. Dann würde der User drei Zeilen Code mit einer Shell - Anweisung finden.
Gruß
Nepumuk
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige