Discussion:
Doppelte Arbeitsmappen in VBAProject: "DieseArbeitsmappe" und "DieseArbeitsmappe1"
(zu alt für eine Antwort)
Bernd Augustin
2009-06-04 12:32:16 UTC
Permalink
Hallo NGler,

ich habe folgendes Problem.
In einer Arbeitsmappe (Format für Excel 2003 .xls), welche von verschiedenen
Kollegen sowohl mit Excel 2003 und Excel 2007 bearbeitet wird,
wurde von Excel selbst (vermutlich Excel 2003) im VBAProject eine zweite
Arbeitsmappe angelegt mit zusätzlichen leeren Tabellenblättern.

Beim öffnen der Datei funktionieren die VBA-Codes in "DieseArbeitsmappe"
nicht mehr, da Excel anscheinend jetzt nur noch
auf die neue Arbeitsmappe "DieseArbeitsmappe1" in VBAProject zugreift.
Ich kann zwar den VBA-Code von "DieseArbeitsmappe" zu "DieseArbeitsmappe1"
kopieren und dann klappt alles wieder,
aber das ist nur eine temporäre Lösung, wie sich gezeigt hat.
Denn nun hat Excel schon ein dritte Arbeitsmappe mit Namen
"DieseArbeitsmappe2" angelegt plus weitere leere Tabellenblätter.

Ich habe die Datei auch schon neu aufgebaut, aber das Phänomen bleibt. Die
zusätzliche Arbeitsmappe "DieseArbeitsmappe1" in VBAProject
wird immer wieder neu hinzugefügt.

Hat hier jemand die Lösung des Problems?

Ein Bild kann man von meiner Homepage http://www.excel-addins.de/ unter
folgendem Link ansehen
Loading Image...

Vorab besten Dank für Eure Bemühungen.

Freundliche Grüße aus der Pfalz

Bernd Augustin
Melanie Breden
2009-06-04 13:06:26 UTC
Permalink
Hallo Bernd,
In einer Arbeitsmappe (Format für Excel 2003 .xls), welche von verschiedenen Kollegen sowohl mit Excel 2003 und Excel
2007 bearbeitet wird,
wurde von Excel selbst (vermutlich Excel 2003) im VBAProject eine zweite Arbeitsmappe angelegt mit zusätzlichen leeren
Tabellenblättern.
dieses Phänomen habe ich bislang noch nicht erlebt!

Lässt sich denn rekonstruieren wann eine weiteres Klassenmodul angelegt wird?

Es "darf/kann" nur ein Klassenmodul für die Arbeitsmappe existieren.
Haben denn beide Klassenmodule die entsprechenden Dropdownfelder
für 'Workbook' und dessen Ereignisse?

Kannst du die Datei mal hochladen?


Mit freundlichen Grüssen
Melanie Breden
--
- Microsoft MVP für Excel -
www.melanie-breden.de

Ribbon-Programmierung für Office 2007 http://tinyurl.com/59awla
Bernd Augustin
2009-06-04 14:31:53 UTC
Permalink
Post by Melanie Breden
Hallo Bernd,
Post by Bernd Augustin
In einer Arbeitsmappe (Format für Excel 2003 .xls), welche von
verschiedenen Kollegen sowohl mit Excel 2003 und Excel 2007 bearbeitet
wird,
wurde von Excel selbst (vermutlich Excel 2003) im VBAProject eine zweite
Arbeitsmappe angelegt mit zusätzlichen leeren Tabellenblättern.
dieses Phänomen habe ich bislang noch nicht erlebt!
Lässt sich denn rekonstruieren wann eine weiteres Klassenmodul angelegt wird?
Es "darf/kann" nur ein Klassenmodul für die Arbeitsmappe existieren.
Haben denn beide Klassenmodule die entsprechenden Dropdownfelder
für 'Workbook' und dessen Ereignisse?
Kannst du die Datei mal hochladen?
Mit freundlichen Grüssen
Melanie Breden
--
- Microsoft MVP für Excel -
www.melanie-breden.de
Ribbon-Programmierung für Office 2007 http://tinyurl.com/59awla
Hallo Melanie, hallo NGler,

hier der Link zur "hochgeladenen Datei".
http://www.excel-addins.de/DoppelteArbeitsmappenEintraege.zip
In der Zip-Datei habe ich folgendes hochgeladen:
Einmal die Datei "normaler Zustand", welche dann bei Excel 2003 den Fehler
auslöst.
Dann die gleiche Datei schon abgespeichert mit Excel 2003 und doppelten
Einträgen.
Drei Fehlerbilder und eine kleine Fehlerbeschreibung.

Die Makros im Startbereich "DieseArbeitsmappe" sind bereits auskommentiert.
D.h. daran dürfte es nicht liegen.
So wie es aussieht, haut Excel 2003 diese doppelte Arbeitsmappe rein.
Es wäre noch anzumerken, dass wir schon über 1 Jahr problemlos mit Excel
2003 und/oder 2007
diese Datei im Netzwerk aktualisieren, aber erst jetzt das Problem
aufgetreten ist.

Ich bin mal gespannt, ob sich für dieses Problem eine Lösung findet.

Freundliche Grüße aus der Pfalz

Bernd Augustin
Bernd Augustin
2009-06-04 14:33:32 UTC
Permalink
Hallo Melanie, hallo NGler,

hier der Link zur "hochgeladenen Datei".
http://www.excel-addins.de/DoppelteArbeitsmappenEintraege.zip
In der Zip-Datei habe ich folgendes hochgeladen:
Einmal die Datei "normaler Zustand", welche dann bei Excel 2003 den Fehler
auslöst.
Dann die gleiche Datei schon abgespeichert mit Excel 2003 und doppelten
Einträgen.
Drei Fehlerbilder und eine kleine Fehlerbeschreibung.

Die Makros im Startbereich "DieseArbeitsmappe" sind bereits auskommentiert.
D.h. daran dürfte es nicht liegen.
So wie es aussieht, haut Excel 2003 diese doppelte Arbeitsmappe rein.
Es wäre noch anzumerken, dass wir schon über 1 Jahr problemlos mit Excel
2003 und/oder 2007
diese Datei im Netzwerk aktualisieren, aber erst jetzt das Problem
aufgetreten ist.

Ich bin mal gespannt, ob sich für dieses Problem eine Lösung findet.

Freundliche Grüße aus der Pfalz

Bernd Augustin
Andreas Killer
2009-06-04 15:43:26 UTC
Permalink
Post by Bernd Augustin
hier der Link zur "hochgeladenen Datei".
http://www.excel-addins.de/DoppelteArbeitsmappenEintraege.zip
Einmal die Datei "normaler Zustand", welche dann bei Excel 2003 den Fehler
auslöst.
Das wäre Datei "Container Plan 2009 - Kopie leer.xls"?

So genau hab ich das nicht durchblickt/angeschaut, aber irgendwo aus
dieser Ecke kommt's:

Deaktiviere mal die Makro's, öffne die Datei und kommentiere die
function's KWoche und ZaehlenDiagonal aus. Danach ist der Fehler weg.

BTW, Wochenübersichten!Q1 steht die Formel =Q$131-#BEZUG!

Und irgendwo in der Kombination mit #BEZUG! und "On Error Resume Next"
wird's wohl liegen.

Ich würde nach dem auskommentieren der Functions die Datei nochmals
neu aufbauen (oder auf eine ältere Sicherungskopie zurückgehen?),
Formeln durchkucken und dann erstmal zwei Dummy-Functions als Ersatz
der beiden obigen einbauen und schauen ob der Fehler wiederkommt und
dann weitersehen.

Andreas.
Bernd Augustin
2009-06-04 15:56:36 UTC
Permalink
Hallo Melanie, hallo NGler,

Mittlerweile konnte ich den Fehler etwas eingrenzen.

Der Fehler scheint in einer Unverträglichkeit von Excel 2003 mit
Kalenderwochenfunktion in Modul 3 zu liegen.

Function KWoche(d As Date) As Integer
Dim t&
t = DateSerial(Year(d + (8 - Weekday(d)) Mod 7 - 3), 1, 1)
KWoche = (d - t - 3 + (Weekday(t) + 1) Mod 7) \ 7 + 1
End Function

Ich habe dies Kalenderfunktion auch schon durch eine andere ersetzt, der
Fehler bleibt.

Wenn man diese "Funktion" auskommentiert, scheint der Fehler nicht mehr
aufzutreten.

Bleibt aber immer noch die entscheidende Frage
wie kann so ein Fehler die Datei mit zusätzlichen
Einträgen im VBAProject verändern, die es eigentlich gar nicht geben dürfte?

Und wenn man die Funktion mit Excel 2007 in eine leere neue Excelmappe
schreibet, und mit Excel 2003 öffnet gibt es auch keine Probleme.


Freundliche Grüße aus der Pfalz

Bernd Augustin
Melanie Breden
2009-06-04 16:39:02 UTC
Permalink
Hallo Bernd,
Post by Bernd Augustin
Mittlerweile konnte ich den Fehler etwas eingrenzen.
Der Fehler scheint in einer Unverträglichkeit von Excel 2003 mit Kalenderwochenfunktion in Modul 3 zu liegen.
ich gehe eher davon aus, dass der Fehler in der Funktion "ZaehlenDiagonal" liegt.

Wenn du Reg als Range deklarierst scheint die Datei einwandfrei zu laufen:

Public Function ZaehlenDiagonal(Reg As Range) As Long
' welcher Fehler soll abgefangen werden?
' On Error Resume Next
Application.Volatile
Dim C As Range
For Each C In Reg.Cells
If C.Borders(xlDiagonalUp).ColorIndex = 3 Or _
C.Borders(xlDiagonalUp).ColorIndex = 11 And _
C.Borders(xlDiagonalUp).LineStyle = xlContinuous And _
C.Value >= 0.5 Then
ZaehlenDiagonal = ZaehlenDiagonal + 1
End If
Next C
End Function


Mit freundlichen Grüssen
Melanie Breden
--
- Microsoft MVP für Excel -
www.melanie-breden.de

Ribbon-Programmierung für Office 2007 http://tinyurl.com/59awla
Bernd Augustin
2009-06-04 18:00:14 UTC
Permalink
Danke Melanie!!!

Das wars.
Allerdings hatte an dieser Stelle niemand was verändert..
Die Funktion "ZaehlenDiagonal" lief so schon eine Ewigkeit einwandfrei.

Was wurde verändert? Ein Kollege hatte die "schlafende Funktion KWoche"
aktiviert.
Bislang noch nicht in Formeln verwendet setze er in die Zelle HW1 folgende
Formel =KWoche(HEUTE())

Seit dem trat der Fehler auf.
Die "Funktion KWoche" aber aktivierte auch gleichzeitig den Fehler in der
Funktion "ZaehlenDiagonal"
Aber beim Fehler einkreisen markierte VBA irreführend stets einen Fehler in
der "Funktion KWoche".

D.h. entfernte man die Formel "=KWoche(HEUTE())", oder kommentierte man die
"Funktion KWoche" aus war der Fehler weg.

In der Funktion "ZaehlenDiagonal" hätte ich den Fehler nie gesucht. Da sieht
man doch den Profi.

Allerdings bemerkenswert, wie so ein kleiner Fehler die Dateistruktur
durcheinander bringen kann.
Und die zugefügten Teile wie Arbeitsmappe1 und ihre zusätzlichen Tabellen
lassen sich auch nicht mehr löschen.

Nochmals vielen Dank Melanie und Andreas.

Freundliche Grüße aus der Pfalz

Bernd Augustin
Post by Melanie Breden
Hallo Bernd,
Post by Bernd Augustin
Mittlerweile konnte ich den Fehler etwas eingrenzen.
Der Fehler scheint in einer Unverträglichkeit von Excel 2003 mit
Kalenderwochenfunktion in Modul 3 zu liegen.
ich gehe eher davon aus, dass der Fehler in der Funktion "ZaehlenDiagonal" liegt.
Public Function ZaehlenDiagonal(Reg As Range) As Long
' welcher Fehler soll abgefangen werden?
' On Error Resume Next
Application.Volatile
Dim C As Range
For Each C In Reg.Cells
If C.Borders(xlDiagonalUp).ColorIndex = 3 Or _
C.Borders(xlDiagonalUp).ColorIndex = 11 And _
C.Borders(xlDiagonalUp).LineStyle = xlContinuous And _
C.Value >= 0.5 Then
ZaehlenDiagonal = ZaehlenDiagonal + 1
End If
Next C
End Function
Mit freundlichen Grüssen
Melanie Breden
--
- Microsoft MVP für Excel -
www.melanie-breden.de
Ribbon-Programmierung für Office 2007 http://tinyurl.com/59awla
Bernd Augustin
2009-06-04 14:31:53 UTC
Permalink
Post by Melanie Breden
Hallo Bernd,
Post by Bernd Augustin
In einer Arbeitsmappe (Format für Excel 2003 .xls), welche von
verschiedenen Kollegen sowohl mit Excel 2003 und Excel 2007 bearbeitet
wird,
wurde von Excel selbst (vermutlich Excel 2003) im VBAProject eine zweite
Arbeitsmappe angelegt mit zusätzlichen leeren Tabellenblättern.
dieses Phänomen habe ich bislang noch nicht erlebt!
Lässt sich denn rekonstruieren wann eine weiteres Klassenmodul angelegt wird?
Es "darf/kann" nur ein Klassenmodul für die Arbeitsmappe existieren.
Haben denn beide Klassenmodule die entsprechenden Dropdownfelder
für 'Workbook' und dessen Ereignisse?
Kannst du die Datei mal hochladen?
Mit freundlichen Grüssen
Melanie Breden
--
- Microsoft MVP für Excel -
www.melanie-breden.de
Ribbon-Programmierung für Office 2007 http://tinyurl.com/59awla
Hallo Melanie, hallo NGler,

hier der Link zur "hochgeladenen Datei".
http://www.excel-addins.de/DoppelteArbeitsmappenEintraege.zip
In der Zip-Datei habe ich folgendes hochgeladen:
Einmal die Datei "normaler Zustand", welche dann bei Excel 2003 den Fehler
auslöst.
Dann die gleiche Datei schon abgespeichert mit Excel 2003 und doppelten
Einträgen.
Drei Fehlerbilder und eine kleine Fehlerbeschreibung.

Die Makros im Startbereich "DieseArbeitsmappe" sind bereits auskommentiert.
D.h. daran dürfte es nicht liegen.
So wie es aussieht, haut Excel 2003 diese doppelte Arbeitsmappe rein.
Es wäre noch anzumerken, dass wir schon über 1 Jahr problemlos mit Excel
2003 und/oder 2007
diese Datei im Netzwerk aktualisieren, aber erst jetzt das Problem
aufgetreten ist.

Ich bin mal gespannt, ob sich für dieses Problem eine Lösung findet.

Freundliche Grüße aus der Pfalz

Bernd Augustin
Bernd Augustin
2009-06-04 14:33:32 UTC
Permalink
Hallo Melanie, hallo NGler,

hier der Link zur "hochgeladenen Datei".
http://www.excel-addins.de/DoppelteArbeitsmappenEintraege.zip
In der Zip-Datei habe ich folgendes hochgeladen:
Einmal die Datei "normaler Zustand", welche dann bei Excel 2003 den Fehler
auslöst.
Dann die gleiche Datei schon abgespeichert mit Excel 2003 und doppelten
Einträgen.
Drei Fehlerbilder und eine kleine Fehlerbeschreibung.

Die Makros im Startbereich "DieseArbeitsmappe" sind bereits auskommentiert.
D.h. daran dürfte es nicht liegen.
So wie es aussieht, haut Excel 2003 diese doppelte Arbeitsmappe rein.
Es wäre noch anzumerken, dass wir schon über 1 Jahr problemlos mit Excel
2003 und/oder 2007
diese Datei im Netzwerk aktualisieren, aber erst jetzt das Problem
aufgetreten ist.

Ich bin mal gespannt, ob sich für dieses Problem eine Lösung findet.

Freundliche Grüße aus der Pfalz

Bernd Augustin

Melanie Breden
2009-06-04 13:06:26 UTC
Permalink
Hallo Bernd,
In einer Arbeitsmappe (Format für Excel 2003 .xls), welche von verschiedenen Kollegen sowohl mit Excel 2003 und Excel
2007 bearbeitet wird,
wurde von Excel selbst (vermutlich Excel 2003) im VBAProject eine zweite Arbeitsmappe angelegt mit zusätzlichen leeren
Tabellenblättern.
dieses Phänomen habe ich bislang noch nicht erlebt!

Lässt sich denn rekonstruieren wann eine weiteres Klassenmodul angelegt wird?

Es "darf/kann" nur ein Klassenmodul für die Arbeitsmappe existieren.
Haben denn beide Klassenmodule die entsprechenden Dropdownfelder
für 'Workbook' und dessen Ereignisse?

Kannst du die Datei mal hochladen?


Mit freundlichen Grüssen
Melanie Breden
--
- Microsoft MVP für Excel -
www.melanie-breden.de

Ribbon-Programmierung für Office 2007 http://tinyurl.com/59awla
Lesen Sie weiter auf narkive:
Loading...