Anzeige
Archiv - Navigation
1036to1040
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Funktion in AddIn verschieben

Funktion in AddIn verschieben
12.01.2009 09:15:41
Kai
Hallo,
ich bin neu hier und kann trotz längerer Suche für folgendes Problem keine Lösung finden:
Ich habe eine Funktion in einem Modul einer Arbeitsmappe implementiert. Diese funktioniert soweit auch ganz gut. Jetzt soll diese Funktion in einem AddIn bereitgestellt werden. Also den Code per Copy/Paste in ein AddIn-Modul kopiert und das nun nicht mehr benötigte Arbeitsmappen-Modul gelöscht. Jetzt wird allerdings die Funktion in der ursprünglichen Arbeitsmappe nicht mehr ausgewertet. Es erscheint immer "#NAME?" als Rückgabe. Im Formelassistenten werden die Parameter der Funktion aber noch korrekt angezeigt. Andere Arbeitsmappen können die Funktion ohne Probleme nutzen. Irgendwo merkt sich Excel also noch, dass der Code für die Funktion urspünglich in einem VBA-Modul der Arbeitsmappe war. Benenne ich die Funktion im AddIn um, wird sie in der Arbeitsmappe korrekt ausgewertet.
Über die LinkSources/Verknüpfungen komme ich leider an diese "interne" Verknüpfung auch nicht ran: die Auflistung ist leer.
Kennt jemand eine Möglichkeit, diese "internen" Verknüpfungen zu löschen bzw. zu aktualisieren?

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Funktion in AddIn verschieben
12.01.2009 09:32:34
Tino
Hallo,
ich mache dies normal so, ich erstelle meine Funktion in einer Excel- Datei (Modul) diese benenne ich
z. Bsp. "Public Function TestFunktion …", diese Datei speichere ich danach als Addin (*.xla Datei) ab.
Unter Extras Addins aktiviere ich diese nun in einer neuen Excel- Datei, jetzt kann ich diese auch verwenden.
Gruß Tino
AW: Funktion in AddIn verschieben
12.01.2009 09:45:37
Kai
Ja, natürlich wäre das möglich. Allerdings ist es so nicht möglich, neue Funktionalität in ein bestehendes AddIn einzubauen.
Ach so: Als bisher einzige Lösung habe ich bisher gefunden: Jedes Blatt der Arbeitsmappe in eine neue Arbeitsmappe einfügen - schon wird die AddIn-Funktion ausgewertet.
Ich suche aber möglichst nach einer Lösung, bei der sowohl die Arbeitsmappe, in der die Funktion ursprünglich implementiert wurde, als auch das AddIn weiter nutzbar bleiben. Arbeitsmappe und AddIn stehen bei uns in der Firma unter Versionsverwaltung und somit wäre es unschön, wenn für eine "Funktionsverschiebung" völlig neue Dateien entstehen würden. :-(
Anzeige
AW: Funktion in AddIn verschieben
12.01.2009 09:59:27
Tino
Hallo,
wie ihr das macht ist doch wurscht, ob Du nun dass Addin erweiterst oder ein neues erstellst.
Du willst es erweitern, dann kopiere doch einfach im VBA Editor dein Modul (Drag and Drop) in das bestehende Addin (Modulname darf nicht doppelt sein), dies findest Du im VBA Editor in der Explorer leiste links, zuvor musst du den VBA Schutz aufheben, speichern nicht vergessen, ist sogar noch leichter als ein neues zu erstellen.
Gruß Tino
AW: Funktion in AddIn verschieben
12.01.2009 11:42:33
Kai
Aber genau dann findet Excel ja die Funktion nicht mehr im Original-Dokument (welches weiter benutzt werden muss!!!). Probier' es doch mal aus:
Funktion (z.B. "test123" mit Rückgabe "Hallo") in einem Modul der Arbeitsmappe erstellen und testen
Dann die Funktion/das Modul in ein AddIn verschieben und die Funktionalität in der ursprünglichen Arbeitsmappe überprüfen. Ergebnis wird sein, dass Excel die eben verschobene Funktion nicht mehr findet ("#NAME?" erscheint).
Gruß
Kai
Anzeige
AW: Funktion in AddIn verschieben
12.01.2009 12:01:17
Tino
Hallo,
habe es gerade getestet, habe mir in einer Datei diese Funktion erstellt.
Public Function Addition(Zelle As Range) As Double
 Addition = Application.WorksheetFunction.Sum(Zelle)
End Function


Dieses Modul habe ich in einen Bestehenden Addin mit Drag and Drop kopiert
In eine Zelle "=Addition(C1:C9)" eingeben, funktioniert.
Alles geschlossen, eine neue Arbeitsmappe geöffnet und in eine Zelle
"=Addition(C1:C9)" eingegeben, funktioniert auch.
Keine Ahnung was bei Dir anders sein soll!?
Gruß Tino

Anzeige
AW: Funktion in AddIn verschieben
12.01.2009 12:11:41
Kai
Hast Du auch, wie von mir beschrieben, die Funktion vorher in der Arbeitsmappe, in der Du sie erstellt hast, ausprobiert und genau dort hinterher die Funktionsweise überprüft?
Wenn nicht, musst Du zum korrekten Nachvollziehen meines Problems natürlich wieder eine neue Funktion erstellen (da ja sonst die Funktion im AddIn aufgrufen wird):
- in der Arbeitsmappe eine Funktion "Addition2" erstellen
- diese Funktion in einer Zelle der Arbeitsmappe benutzen
- dann die Mappe speichern, schließen und neu öffnen (ist vielleicht nicht nötig, aber schadet ja nix)
- dann die Funktion in das AddIn verschieben (ursprüngliche Arbeitsmappe bleibt offen!)
- in der ursprünglichen Arbeitsmappe die Zelle mit der Funktion aktualisieren
--> #NAME?
Das klappt bei mir immer wieder (nicht).
Wenn ich natürlich, so wie Du es beschrieben hast, die Funktion nur in der Mappe erstelle und erst benutze, wenn sie ins AddIn verschoben wurde, funktioniert es. Klar. Aber das war ja nicht die Frage.
Gruß
Kai
Anzeige
AW: Funktion in AddIn verschieben
12.01.2009 12:27:32
Tino
Hallo,
habe doch geschrieben, dass ich diese getestet habe.
Gruß Tino
AW: Funktion in AddIn verschieben
12.01.2009 12:49:00
Kai
Nichts für ungut, aber irgendwie verrennst Du Dich in der Annahme, dass es doch funktioniert. Es gibt immer noch Unterschiede in der Vorgehensweise von Dir und von mir (zumindest, wenn Du alles, was Du gemacht hast, gepostet hast).
Wenn man es so mache, wie ich es beschrieben habe, findet Excel die Funktion definitiv nicht mehr. Das Problem ist nicht zuerst bei mir aufgetaucht, sondern wurde mir berichtet und ich soll es nun für die Kollegen beheben, die da auch nicht weiterwissen. Ich kann es nach meiner Anleitung 100%ig nachstellen.
Also nochmal:
- neue Mappe öffnen
- im VBA-Editor ein neues Modul "Modul1" erstellen
- eine Funktion "test123" mit einer beliebiegen Rückgabe im Modul "Modul1" implementieren
- in Zelle A1 die Formel "=test123()" eintragen (--> es erscheint die implementierte Rückgabe)
- Mappe speichern als "Mappe123.xls"
- Mappe schließen
- Mappe "Mappe123.xls" öffnen
- im VBA-Editor das Modul "Modul1" in ein AddIn verschieben
- überprüfen, ob die Mappe "Mappe123.xls" nun noch ein Modul "Modul1" besitzt (bei mir wird das Modul bei Drag&Drop nicht verschoben, sondern kopiert!)
- falls ja, dann dieses Löschen
- Mappe "Mappe123.xls" hat nun keine Module mehr
- in Zelle A1 klicken und die dort stehende Formel bestätigen
-->#NAME?
Anzeige
AW: Funktion in AddIn verschieben
12.01.2009 13:00:06
Tino
Hallo,
"aber irgendwie verrennst Du Dich in der Annahme, dass es doch funktioniert.
Es gibt immer noch Unterschiede in der Vorgehensweise"

Wenn es bei Dir nicht geht, ändere doch Deine vorgehensweise so dass es geht, wo ist Dein Problem?
"...falls ja, dann dieses Löschen"
Na dann ist es klar, dann Datei schließen wieder öffnen sollte wieder gehen.
Ist wie bei den meisten Softwareupdates, nach dem Update müssen die meisten Programme neu gestartet werden, ist nun mal so.
Gruß Tino
AW: Funktion in AddIn verschieben
12.01.2009 13:14:00
Luschi
Hallo Kai,
die AddIn's werden gelade, bevor irgend ein Excel-Workbook geöffnet wird. Wenn man dann ein bestimmtes AddIn verändert, muß es gespeichert und Excel geschlossenen werden.
Erst beim Neustart von Excel !!! wird das aktualisierte AddIn wieder neu geladen und die neu hinzugekommenen Funktionen/Subs können auch genutzt werden.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: @Luschi: Widerspruch
12.01.2009 13:23:41
Erich
Hi Luschi,
das glaube ich nicht.
Ich habe schon oft Makros in AddIns "on the fly" geändert. Man muss halt nur aufpassen,
dass man das Speichern des AddIns nicht vergisst. Das Speichern geht mit dem Speichern-Button im VBA-Editor.
Weder muss eine Mappe oder ein AddIn neu geladen werden noch muss Excel neu gestartet werden.
Man kann einfach weiter damit arbeiten.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
genau so kenne ich es auch...
12.01.2009 13:27:30
Tino
Hallo,
..., natürlich muss man die Exklusivrechte habe, sonst geht’s nicht.
Also ist noch eine zweite Excelinstanz geöffnet, kann man nicht speichern.
Gruß Tino
Anzeige
AW: Funktion in AddIn verschieben
12.01.2009 13:18:15
Erich
Hallo Kai,
nur ganz vorsichtig, und nur vorsichtshalber:
Ist das AddIn geladen und mit der Mappe verknüpft, wenn da statt des Ergebnisses #NAME? steht?
(Extras - AddIns... - Haken vor deas AddIn)
Wenn ich den Haken rausnehme, wird der Funktionsname in der Formel
durch den vollständigen Pfad des AddIns ergänzt.
F2 und nochmal abschicken ergibt #NAME?
Wenn ich den Haken beim AddIn wieder setzt, steht das Fkt-Eregebnis da.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: Funktion in AddIn verschieben
12.01.2009 13:35:00
Kai
Hallo,
@Tino & Luschi
Nein, das Beenden von Excel reicht auch nicht aus. Nach dem Neustart von Excel ist zwar das Modul im AddIn (also war das Speichern des AddIns erfolgreich!), aber in meiner Mappe, wo das Modul zuvor enthalten war, funktioniert die Funktion trotzdem nicht. In anderen Arbeitsmappen kann ich aber die Funktion jetzt benutzen. Das war aber nur der Sinn der Auslagerung - trotzdem sollte schon die "alte" Mappe noch funktionieren - schließlich hat man da viel Arbeit in das Layout und die Formeln reingesteckt.
Auch die Bemerkung von Erich G. kann ich bestätigen: Man kann wunderbar im Excel die AddIns beabeiten und die neuen/geänderten Funktionen gleich nutzen - ohne Neustart! Ich habe hier sogar eine VBA-Funktion implementiert, die ganze Module dynamisch in die AddIns nachlädt bzw. vom Dateisystem aktualisiert - je nachdem welche "Arbeitsversion" der Benutzer haben möchte. Auch das klappt. Aber das ist eine andere Geschichte. Mein Problem lässt sich auch auf einem völlig "jungfräulichen" Excel nachstellen.
@Erich G.
Ja, das AddIn ist unter "Extras->Add-Ins" korrekt mit einem Häkchen versehen.
Lässt sich das Problem echt nirgends nachstellen?
Anzeige
AW: Funktion in AddIn verschieben
12.01.2009 15:09:38
Tino
Hallo,
habe Deine Vorgehensweise jetzt nachvollziehen können.
Ich würde demnach nicht die Bearbeitung in einer Excel- Datei machen,
sondern gleich in dem Addin, also gleich in dem Bestimmungsort, somit dürfte es auch keine Probleme geben.
Gruß Tino
AW: Funktion in AddIn verschieben
12.01.2009 15:20:40
RS
Hi Kai,
Ich konnte das exakt so nachvollziehen, wie du beschreibst.
Workaround:
  • In der 'alten, originalen' Exceldatei alle =Funktion(...) durch Texte ersetzen also X=Funktion(...)

  • 'alte, originale' Exceldatei schliessen mit speichern

  • 'alte, originale' Excdatei öffnen und alle X=Funktion(...) durch =Funktion ersetzen

  • Grüsse RS
    Anzeige
    AW: Funktion in AddIn verschieben
    12.01.2009 15:58:58
    Kai
    Hallo RS,
    super! Das klappt schonmal und ist auch sehr einfach zu automatisieren (über Suchen/Ersetzen von "=" zu "X=", speichern, schließen, öffnen und wieder Suchen/Ersetzen von "X=" zu "="). Zumindest geht das besser, als meine Idee, jedes Blatt der Arbeitsmappe in eine neue Arbeitsmappe inkl. Formatierungen zu kopieren...
    Etwas wie das Bearbeiten der LinkSourcen (bei Änderungen an externen Verknüpfungen) hätte ich mir zwar gewünscht, aber diese Lösung hier reicht vollkommen aus. Falls noch jemand eine reine VBA-Lösung findet, kann er diese ja hier noch posten.
    Vielen Dank an alle.
    Gruß
    Kai

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige