@Alex Änderung in der FAQ

Hallo Alex,

leider blieben meine letzten beiden Mails unbeantwortet, k.A. warum, vielleicht liegen sie im Spamordner oder tausend andere Gründe, deshalb dieser Weg.

Kannst du bitte in dem Code in der FAQ:2363 den Doppelpunkt in „FaQ2363“ dazwischenfügen.

Dankeschön und schau mal in den Briefkasten
Gruß
Reinhard

Hallo Reinhard!

leider blieben meine letzten beiden Mails unbeantwortet, k.A.
warum, vielleicht liegen sie im Spamordner oder tausend andere
Gründe, deshalb dieser Weg.

Ich kann mir auch nicht erklären, warum das so ist. Ich hab dich sogar im Adressbuch. Also Spam schickst du sicher keinen.

Kannst du bitte in dem Code in der FAQ:2363 den Doppelpunkt in
„FaQ2363“ dazwischenfügen.

Hab ich gemacht. Ist das schon der ganze Fehler? Thomas hat da was von objWorkbook und thisWorkbook geschrieben…

Gruß Alex

Grüezi zusammen

Kannst du bitte in dem Code in der FAQ:2363 den Doppelpunkt in
„FaQ2363“ dazwischenfügen.

Hab ich gemacht. Ist das schon der ganze Fehler? Thomas hat da
was von objWorkbook und thisWorkbook geschrieben…

…dann dopple ich hier doch gleich mal nach, wenn das Thema schon auf dem Tisch ist.

Ich hatte den Code 1:1 kopiert und er blieb mir dann beim ersten Durchlauf in der folgenden Sub hängen:

Sub VerweisSetzen()
Dim intIndex As Integer, blnFound As Boolean
With objWorkbook.VBProject.References
 For intIndex = 1 To .Count
 If .Item(intIndex).GUID = FM20\_GUID Then
 If .Item(intIndex).IsBroken Then
 .Remove .Item(intIndex)
 Else
 blnFound = True
 End If
 End If
 Next
 If Not blnFound Then .AddFromGuid GUID:=FM20\_GUID, Major:=2, Minor:=0
End With
End Sub

Als ich die folgende Zeile geändert habe:

With objWorkbook.VBProject.References

in

With ThisWorkbook.VBProject.References

lief es dann wunderbar durch. Ev müsste es auch

With ActiveWorkbook.VBProject.References

heissen. Vermtutlich war der Coe mal in VB programmiert gewesen oder in einer externen Applikation die mit einem WorkBook-Objekt gearbeitet hat und die Objekt-Variable
objWorkbook ist noch ein Überbleibsel?


Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hallo Thomas,

Ich hatte den Code 1:1 kopiert und er blieb mir dann beim
ersten Durchlauf in der folgenden Sub hängen:
Als ich die folgende Zeile geändert habe:

With objWorkbook.VBProject.References

in

With ThisWorkbook.VBProject.References

lief es dann wunderbar durch.

tja, das kommt davon wenn man wie ich mehrere Excelversionen hat, und dadrin unterschiedliche Codes hat.
Meine hier benutzte Version hat in
Sub VerweisSetzen
als ersten Befehl ein
Exit Sub :smile:

Klar daß dann bei mir kein Fehler kam und mir das nicht auffiel.

Den dortigen Code in der FAQ habe ich vor längerem geschrieben. Jetzt habe ich mir ihn nochmal angesehen um ggfs. noch was zu ändern/versclimmbessern.
Beim Testen stellte ich fest, dass diese GUID-Nummer für den Verweis auf MS Forms unterschiedlich bei XL97 einerseits und XL2000,XL2003 anderseits ist.
Eine Versionsüberprüfung muß im Code noch eingebaut werden, die dementsprechend die richtige GUID Nummer benutzt.
Dummerweise ist hat die Datei auf die der Verweis zielt im einen Fall den Namen fm20.dll, im anderen heißt sie anders.

Ev müsste es auch

With ActiveWorkbook.VBProject.References

heissen. Vermtutlich war der Coe mal in VB programmiert
gewesen oder in einer externen Applikation die mit einem
WorkBook-Objekt gearbeitet hat und die Objekt-Variable
objWorkbook ist noch ein Überbleibsel?

Richtig. In meiner Personal.xls ist ein Klassenmodul, wodurch bei jeder Datei die geöffnet wird dieser Verweis gesetzt wird und noch anderes getan wird, daher stammt noch objWorkbook, was für die gerade geöffnete Datei steht.

Gruß
Reinhard