Excel 2007 - AddIns kommen sich gegenseitig in die Quere

21/11/2007 - 01:34 von Joachim Jörgens | Report spam
Hallo NG,

ich habe zwei AddIns die sich vom Grundaufbau àhnlich sind:
1. USt-AddIn mit Ribbon in dem sich u.a. 2 dropDown-Controls
und eine editBox befinden. Mit den dropDown-Controls
wàhle ich die Berechnungsparameter aus. Über das
clsEvent App_SheetSelectionChange lese ich den Wert
der aktiven Zelle und lasse mir in der editBox das
Berechnungsergebnis anzeigen.
2. AddIn für Wàhrungsumrechnungen, auch mit dropDown-
Controls und editBox und App_SheetSelectionChange etc.

In beiden Fàllen parke ich die item-Indizes mittels
ThisWorkbook.Worksheets(1).Cells(Zeile,Spalte).Value
um anschließend mit diesen Werten im jeweiligen
AddIn-Code weiter zu arbeiten.

Jetzt mein Problem:
Ist nur eines dieser AddIns über den AddIn-Manager aktiviert,
funktioniert das jeweilige AddIn tadellos.
Sind beide AddIns aktiviert, kommen sie sich in die Quere:
Ich bekomme Laufzeitfehler 13 (Typen unvertràglich).
Ich habe aber keinerlei Code, in dem ein AddIn auf das
andere AddIn zugreift.
Die Module sind Option Private Module. Variablen sind
entweder innerhalb einer Prozedur mit Dim oder innerhalb
des Moduls Private deklariert (auch die Ribbons).

Wie ist das möglich? Es sind doch unterschiedliche
xlam-Dateien.
In beiden AddIns gibt es ein Klassenmodul clsEvent
mit Public WithEvents App As Application.
Sind hier mögliche Kollisionen vorprogrammiert?

Gruß und Danke
Joachim
 

Lesen sie die antworten

#1 Joachim Jörgens
21/11/2007 - 02:26 | Warnen spam
Hallo NG,

den im ersten Posting beschriebenen Laufzeitfehler 13
bekomme ich nur im USt-AddIn.

Der kommt wie folgt zustande:
Ribbon-Control dropDown1 hat drei feste items.
Der Item-Index wird in Zelle E1 abgelegt.

Ribbon-Control dropDown2 ist dynamisch,
was aber immer zwei Items hat in Abhàngigkeit
von dropDown1.
Der Item-Index von dropDown2 wird in Zelle E2
abgelegt (also 0 oder 1).

Zelle E3 hat folgende Formel:
=SVERWEIS(E1;A1:D3;E2+3)

Ist nur dieses USt-AddIn aktiv liefert die Formel
immer einen von 6 möglichen zulàssigen Strings,
die in C1:D3 stehen.

Aktiviere ich jetzt mein Waehrung-AddIn
kommt es vor, das Zelle E2 im USt-AddIn
mit einem Wert > 1 belegt wird, was unweigerlich
zu #BEZUG! in Zelle E3 führt. Dieser Fehlerwert
führt zu Laufzeitfehler 13 weil ich im Programmcode
unbedingt einen String benötige.

ABER: Die im Waehrung-AddIn befindlichen
dropDowns legen ihre Indizes doch über
ThisWorkbook.Worksheets(1) in die
AddIn-eigene Tabelle1 in ANDEREN ZELLEN
ab.

???? Ich versteh die Welt nicht mehr ????

Wer hat die Lösung?

MfG
Joachim

Ähnliche fragen