Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: problem mit - ActiveWorkbook.VBProject allg.

problem mit - ActiveWorkbook.VBProject allg.
27.02.2005 18:27:50
chris
Hallo VBA Profis, jetzt wollte ich gerade jemandem hier im Forum einen Tipp geben und habe dazu alste beispiele herausgesucht. und habe festellen müssen das diese nicht mehr funktionieren.
Könnte sich das bitte mal jemand anschauen und mir weiterhelfen ? Danke
Das sind 3 verschiedene Makros die alle nicht mehr funktionieren ?
Warum weiß ich leider nicht :(

Sub loeschmakro()
With ActiveWorkbook.VBProject
With .VBComponents("modul1").CodeModule
.DeleteLines 1, .countoflines
End With
End With
End Sub

'-----------------------------------------------------

Sub NewModule()
Dim mdl As Object
Dim strName As String
strName = InputBox("Modulname:", , "MyNewModule")
If strName = "" Then Exit Sub
Set mdl = ThisWorkbook.VBProject.VBComponents.Add(1)
mdl.Name = strName
End Sub

'-----------------------------------------------------
Const SuchZeile = "MsgBox ""VBA macht Spaß !"""
Const NeueZeile = "MsgBox ""VBA macht großen Spaß !"""

Sub VBAZeileÄndern()
Set VBE = Application.VBE.VBProjects(1).VBComponents.Item("Modul1").CodeModule
With VBE
For x = 1 To .countoflines
i = .countoflines
If Trim(.Lines(x, 1)) = NeueZeile Then
.ReplaceLine x, SuchZeile
Exit Sub
End If
If Trim(.Lines(x, 1)) = SuchZeile Then
.ReplaceLine x, NeueZeile
Exit Sub
End If
Next x
End With
End Sub

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
zusatz
27.02.2005 18:36:50
chris
Zusätzlich habe ich gerade noch etwas ausprobiert.
Habe aus dem herbers Excelbeispielen einen Code in ein Modul kopiert und ausgeführt, es kommt folgender fehler:
Laufzeitfehler '1004'
Die Methode 'VBProjekt' für das Objekt'_Workbook' ist fehlgeschlagen
Hier der code bitte helt mir.

Sub Meldung()
MsgBox "Hallo Welt!"
End Sub


Sub AufrufUndLoeschen()
Call Meldung
ThisWorkbook.VBProject.VBComponents("Modul1").CodeModule.DeleteLines 3, 4
End Sub

Anzeige
AW: zusatz
Ulf
Versuch mal, ob du das VBComponents im Objektkatalog findest, wahrscheinlich nicht,
weil ein Verweis auf die MS Visual Basic for Applications Extensibility x.x fehlt.
Ulf
AW: zusatz
27.02.2005 19:49:24
chris
Danke lösung schon vorhanden
AW: problem mit - ActiveWorkbook.VBProject allg.
27.02.2005 18:37:10
Nepumuk
Hallo chris,
Extras - Makro - Sicherheit - Vertrauenswürdige Quellen - Häkchen bei "Zugriff auf Visual Basic-Projekt vertrauen" rein.
Gruß
Nepumuk
Anzeige
AW: problem mit - ActiveWorkbook.VBProject allg.
27.02.2005 18:41:36
chris
Danke das wars !! Sorry die "dumme" frage
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Probleme mit ActiveWorkbook.VBProject in Excel VBA


Schritt-für-Schritt-Anleitung

Um Probleme mit dem ActiveWorkbook.VBProject zu lösen, folge diesen Schritten:

  1. Zugriffsrechte aktivieren:

    • Gehe zu Extras > Makro > Sicherheit.
    • Setze ein Häkchen bei „Zugriff auf Visual Basic-Projekt vertrauen“.
  2. Verweis auf die Extensibility-Bibliothek hinzufügen:

    • Öffne den VBA-Editor (Alt + F11).
    • Gehe zu Extras > Verweise.
    • Aktiviere den Verweis auf „Microsoft Visual Basic for Applications Extensibility x.x“.
  3. Code anpassen und testen:

    • Füge den gewünschten VBA-Code ein und teste die Funktionalität.

Häufige Fehler und Lösungen

  • Laufzeitfehler '1004':

    • Dieser Fehler tritt auf, wenn der Zugriff auf das VBProject nicht erlaubt ist. Überprüfe die Sicherheitseinstellungen und aktiviere den Zugriff.
  • VBComponents nicht gefunden:

    • Überprüfe, ob die Extensibility-Bibliothek korrekt aktiviert ist. Ohne diesen Verweis kann VBA die VBComponents nicht erkennen.

Alternative Methoden

Wenn der Zugriff auf ThisWorkbook.VBProject weiterhin Probleme bereitet, kannst Du folgende alternative Methoden ausprobieren:

  • ActiveWorkbook verwenden:

    Dim comp As Object
    Set comp = ActiveWorkbook.VBProject.VBComponents.Add(1) ' 1 steht für ein Modul
  • Direktes Arbeiten mit VBComponents:

    With ThisWorkbook.VBProject.VBComponents("Modul1").CodeModule
      .InsertLines .CountOfLines + 1, "MsgBox ""Neuer Code!"""
    End With

Praktische Beispiele

Hier sind einige Beispiele, wie Du mit VBProject und VBComponents arbeiten kannst:

  1. Neues Modul hinzufügen:

    Sub NewModule()
       Dim mdl As Object
       Dim strName As String
       strName = InputBox("Modulname:", , "MyNewModule")
       If strName = "" Then Exit Sub
       Set mdl = ThisWorkbook.VBProject.VBComponents.Add(1) ' 1 = Modul
       mdl.Name = strName
    End Sub
  2. Codezeilen in einem Modul löschen:

    Sub DeleteLinesInModule()
       With ThisWorkbook.VBProject.VBComponents("Modul1").CodeModule
           .DeleteLines 1, .CountOfLines
       End With
    End Sub

Tipps für Profis

  • Sichere Deinen Code: Bevor Du Änderungen an VBComponents vornimmst, erstelle eine Sicherung des gesamten Projekts.
  • Nutze With-Anweisungen: Diese helfen, den Code übersichtlicher zu gestalten und die Lesbarkeit zu erhöhen.
  • Verwende Option Explicit: Dies zwingt Dich, alle Variablen zu deklarieren, was Fehler in der Programmierung minimiert.

FAQ: Häufige Fragen

1. Warum funktioniert mein VBA-Code nicht mehr? Überprüfe die Makrosicherheitseinstellungen und stelle sicher, dass Du Zugriff auf das VBProject hast.

2. Wo finde ich die VBComponents? Stelle sicher, dass der Verweis auf die Microsoft Visual Basic for Applications Extensibility aktiviert ist. Andernfalls sind die VBComponents nicht zugänglich.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige