VBA Verweis setzen - Fehler

Hallo.

ich habe eine, nicht von mir gefertigte, Vorlage mit Makro. wenn ich mir das Makro ansehe entdecke ich einen Verweis auf eine andere dot-Datei welche auch auf dem Rechner existiert.
im Projekt Manager schaut ist auch ein Eintrag dazu da “TemplateProject (Dateiname)“.

möchte ich in eine weitere Vorlage genau den selben Verweis setzen (über extras/verweise…/durchsuchen) findet er zwar die Datei bricht aber ab mit dem Hinweis “Name steht in Konflikt mit vorhandenen Modul, Projekt oder vorhandener Objekt Bibliothek“.

versteh ich nur nicht da diese Datei noch nicht in der Vorlage als Verweis vorhanden ist.

Office 2007, windoofs so

möchte ich in eine weitere Vorlage genau den selben Verweis
setzen (über extras/verweise…/durchsuchen) findet er zwar
die Datei bricht aber ab mit dem Hinweis “Name steht in
Konflikt mit vorhandenen Modul, Projekt oder vorhandener
Objekt Bibliothek“.
versteh ich nur nicht da diese Datei noch nicht in der Vorlage
als Verweis vorhanden ist.

Hallo Tobias,

notiere dir oder mach ein Bildschirmfoto davon was du alles an Verweisen hast in der neuen Vorlage, dann lösche die Zug um Zug und teste immer ob es irgendwann gelingt den neuen Verweis zu setzen.
Mehr wüßt ich jetzt auch nicht.

Was immer was bringt ist nach der genauen Fehlermeldung zu suchen aber deine ist falsch geschrieben.

Suche dann bei google so:

+dot +„genaue Fehlermeldung“

oder halt so:

http://www.google.de/#sclient=psy&hl=de&source=hp&q=…

Problem dabei ist, bei manchen Fehlermeldungen hat man seeeeehr viele Treffer :smile:

Gruß
Reinhard

Hi,

hab’ ein bißchen herumgegoogelt. Ungetestet und ohne Gewähr:

Bestimmte Objekten in VBA haben sowohl eine Name- als auch eine CodeName-Eigenschaft. Vielleicht ist Dir aufgefallen, daß alle gespeicherten Dateien stets als „TemplateProject“ bezeichnet werden und den Dateinamen in Klammern tragen, so daß zu vermuten ist, daß „TemplateProject“ die CodeName- und der Dateiname die Name-Eigenschaft ist.

Vielleicht will VBA ja einen eindeutigen CodeName. Gib den Deinen Vorlagen doch: im Eigenschaftsfenster (Aufruf mit F4) in der ersten Zeile.

HTH.

Markus

Hallo Markus,

Bestimmte Objekten in VBA haben sowohl eine Name- als auch
eine CodeName-Eigenschaft. Vielleicht ist Dir aufgefallen, daß
alle gespeicherten Dateien stets als „TemplateProject“
bezeichnet werden und den Dateinamen in Klammern tragen, so
daß zu vermuten ist, daß „TemplateProject“ die CodeName- und
der Dateiname die Name-Eigenschaft ist.

ich habe jetzt nicht in Word nachgeschaut, ich vermute daher oder sonstwo kommt das mir unbekannte „TemplateProject“.
In Excel ist das so, auf vba-Ebene, also im VB-Editor sieht man links im Bild alle Tabellenblätter.
Sie haben in der tat zwei namen wie du sagst, Name und Codename.

Name kann man in Excel direkt ändern.
D.h. bei einer leeren Excel-Mappe steht z.B.
Tabelle1 (Tabelle1)
Ändert man nun in Excel den Blattnamen ab in Huhu, so steht da:
Tabelle1 (Huhu)

Wie du sagst ist dann Huhu der Name des Blattes und Tabelle1 ist der Codename.

Auf beide Namen kann man zugreifen, z.B. so:
MsgBox Worksheets(„Huhu“).Range(„A1“).Value
MsgBox Tabelle1.Range(„A1“).Value

In der Praxis wird die erste variante meist benutzt.
Die zweite dann wenn man genau auf dieses Blatt zugreifen will auch wenn es x-beliebig vom User umbenannt wurde.

Auch den Codenamen kann man ändern.

Vielleicht will VBA ja einen eindeutigen CodeName. Gib den
Deinen Vorlagen doch: im Eigenschaftsfenster (Aufruf mit F4)
in der ersten Zeile.

Ich glaube (=nicht wissen) du liegst falsch (oder ich *gg*)
Ich habe das so verstanden daß da im VB-Editor ein Verweis manuell gesetzt werden soll.

Und die Fehlermeldung daß da irgendein Konflikt besteht mit einem bestehenden Verweis führte mich zu meinem Vorschlag wie man das mal angehen könnte.

Mal abwarten was kommt und vielleicht ist der Anfrager so nett mal zu zeigen welche Verweise er denn so hat.

Gruß
Reinhard

Hallo Reinhard,

ich habe eben in Word nachgeguckt.

  • Im Projekt-Explorer werden Dokumente immer als

    Project (Dokument1)

angezeigt, Dokumentvorlagen dagegen als

TemplateProject (Vorlage1)
  • Der CodeName eines jeden Dokuments ist ThisDocument. Die Hilfe sagt, er sei schreibgeschützt. Und tatsächlich kann man ihn mit

    ActiveDocument.CodeName = „Yadda“

nicht ändern - es kommt die Fehlermeldung, die Zuweisung an eine schreibgeschützte Eigenschaft sei nicht möglich. Doch es ist kein Problem, den CodeName im Eigenschaftsfenster zu ändern. (Soviel zum Schreibschutz bei MS.)

Weil standardmäßig alle Dokumente der gleichen CodeName haben, hatte ich bereits vorgeschlagen, jeder Dokumentvorlage, auf die verwiesen werden soll, über das Eigenschaftsfenster einen eindeutigen CodeName zuzuweisen. Vielleicht ist dann noch ein bißchen Nacharbeit im Code nötig, aber das sollte sich aufgrund eindeutiger Fehlermeldungen in Grenzen halten.

HTH.

Markus

Hallo Markus,

  • Im Projekt-Explorer werden Dokumente immer als

Project
(Dokument1)

angezeigt, Dokumentvorlagen dagegen als

TemplateProject (Vorlage1)

  • Der CodeName eines jeden Dokuments ist ThisDocument. Die
    Hilfe sagt, er sei schreibgeschützt. Und tatsächlich kann man
    ihn mit

ActiveDocument.CodeName = „Yadda“

nicht ändern - es

naja, Word ist nicht so mein Ding.
In Excel kann man Tabellenblättern sowohl manuell oder auch per Code andere Namen und auch Codenamen zuweisen.
Nachfolgend Code von K.Rola, eine sehr sehr gute Vbalerin, der das mit dem Codename macht.

Liegt schon Jahre zurück wo es darum oder um nur was ähnliches ging, da war eine sehr seltsame Syntax *erinner*:

.Name.Name

Nur durch die Verdopplung konnte man das Gewünschte erreichen, leider habe ich vergessen was es war :frowning:

kommt die Fehlermeldung, die Zuweisung an eine
schreibgeschützte Eigenschaft sei nicht möglich.

Ja, scheinbar ist Codename schreibgeschützt, auch in Excel, deshalb greift ja K.Rola über VBComponent darauf zu.
Ob das irgendwie dadurch auch in Word geht weiß ich nicht.

Gruß
Reinhard

Sub CodeName\_ändern()
Dim s As Long, CName As String, wks As Worksheet, wb As Workbook
Set wb = ThisWorkbook
For Each wks In wb.Worksheets
 CName = wks.CodeName
 s = s + 1
 ThisWorkbook.VBProject.VBComponents(CName).Properties(5).Value = "KRola" & s
Next
End
End Sub

Word, Codename ThisDocument abändern

  • Der CodeName eines jeden Dokuments ist ThisDocument. Die
    Hilfe sagt, er sei schreibgeschützt. Und tatsächlich kann man
    ihn mit

ActiveDocument.CodeName = „Yadda“

nicht ändern - es
kommt die Fehlermeldung, die Zuweisung an eine
schreibgeschützte Eigenschaft sei nicht möglich. Doch es ist
kein Problem, den CodeName im Eigenschaftsfenster zu ändern.
(Soviel zum Schreibschutz bei MS.)

Hallo markus,

da ich im Internet nix fand habe ich mal so ins Blaue zusammen mit IntelliSense rumprobiert.
Siehe da, man kann ThisDocument abändern per Code.

Sub nn()
Application.VBE.ActiveVBProject.VBComponents.Item(1).Name = „huhu“
End Sub

Vorher bin ich an etwas anderem gescheitert, das brachte in dem Fall gar nix, aber sonst in aussichtslosen Fällen schon was.
Ich weiß jetzt nicht ob du das kennst, ich lkannte das (leider) jahrelang nicht :frowning:

Sub tt()
Dim S
Set S = ActiveDocument
End Sub

Den Code gehe ich mit F8 bis End Sub durch ohne es auszuführen, dann Ansicht—Lokalfenster, Doppelklick auf „S“…

Sehr leider, hab da schon sehr gute in Excel-Vba gefragt, gibt es wohl keinerlei Code der das was man da sieht auflisten könnte sodaß man viel besser suchen könnte.

So wird’s halt leicht eintönig wenn man was bestimmtes sucht und immer wieder auf plus oder minus klicken muß, dazu permanentes Scrollen :frowning:

Gruß
Reinhard

Hallo,

ich danke erst einmal für die Antworten. Ich versuche es nochmal zu beschreiben. Hatte vielleicht vom Handy aus nicht so den Draht es richtig rüber zu bringen :smile:

Also, auf Arbeit haben Profis das Office-Paket so angepasst dass es eben für unsere Arbeitsstelle sehr gut passt. Einige Quellcodes scheinen in einer Vorlage programmiert zu sein (nennen wir sie V1). Wenn ich in eine andere Vorlage (nennen wir sie V2) reinschaue ist diese Vorlage (V1) als Verweis integriert. Nun wollte ich ein Programm in einer weiteren Vorlage (V3) nutzen. Aus dem Code der Vorlage V2 kann man erkennen dass sie (100%?) auf diese gewisse Vorlage V1 verweist im Programm.
Wenn ich den Code in V3 ohne diese Vorlage V1 als Verweis starte bricht es ab. Jedoch einfügen kann ich sie eben auch nicht durch den genannten Fehler.
Der Verweis scheint auch in der normal.dot zu sein, aber ich kann mir nicht vorstellen dass es daran liegen könnte. Denn die Vorlage V2 hat ja definitiv diesen Verweis auf V1 integriert.

LG
Tobi@s