1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

alte .xla in Exel 2007 verwenden

Discussion in 'Office-Programme' started by houston81, Sep 4, 2009.

Thread Status:
Not open for further replies.
  1. houston81

    houston81 ROM

    Ich habe ein sehr spezielles Problem, mal sehen, ob mir jemand helfen kann.

    Wir haben eine kleine .xla Datei, die in Exel benutzerdefinierte Funktionen einfügt, die Eigenschaften von Wasserdampf angeben. Mit älteren Officeversionen funktioniert es problemlos. Bei Exel 2007 gibt es bei den meisten Rechnern Probleme.
    Bei einem Rechner funktioniert es, die Datei ist in C:\Dokumente und Einstellungen\rj\Vorlagen\XLSTART gespeichert, und die Funktionen tauchen wie gewohnt auf, in der Kategorie Benutzerdefiniert.
    Bei den anderen Rechnern gibt es Fehlermeldungen. Die genauen Meldungen kann ich erst am Montag angeben (jetzt sind alle schon im Wochenende), aber vielleicht weiß ja jemand auch schon so bescheid.
    Ich habe bei dem Rechner, bei dem es klappt, mal nach Office-Komponenten geschaut (unter Software), und einiges gefunden. Vielleicht ist es ja etwas davon:
    MS Office Small Business Connectivity Components
    MS Office 2007 Primary Interop Assemblies
    Visual C++ 2005 und 1008, jeweils redistributalbe und ATL Update
    MSXML 4.0 SP2
    MSXML 6.0 Parser

    Ich hoffe jetzt auf einen schlauen Kommentar, ansonsten warte ich bis ich am Montag die Fehlermeldungen angeben kann.

    Mit freundlichen Grüßen
    houston
     
  2. bahnrat

    bahnrat Kbyte

    Hallo!

    Seit wann speichert man Excel-Add-Ins in XLSTART? Speichere das Add-In in einem beliebigen Ordner und binde es über den Add-In-Manager in Excel ein. Des Weiteren solltest Du ein Excel 2007 Add-In (*.xlam) daraus machen. Damit erhöhst Du die Chance, dass es auch in Excel 2007 funktioniert. Zumindest verhinderst Du damit den Kompatiblity-Modus, in dem alle Offixce 97-2003-Dateien laufen.

    Gruß, René
     
  3. AntiDepressiva

    AntiDepressiva CD-R 80

    Seit es Office gibt...

    Weil dort nunmal die Dateien liegen, die Excel beim Start automatisch ausführen soll.
     
  4. houston81

    houston81 ROM

    Das Umwandeln in .xlam kann ich mal versuchen. Aber ich bin Office 2007 Neuling, und weiß nicht, wie das geht. Kann mir das einer sagen?
     
  5. bahnrat

    bahnrat Kbyte

    Eben nicht. Add-Ins werden nicht in XLSTART gespeichert, sondern in einem beliegigen Ordner und dann über den Add-In-Manager eingebunden, wie ich bereits erwähnte. Auch die über den Add-In-Manager eingebundenen Add-Ins werden beim Start vob Excel automatisch geladen. Solltest Du auch über den Add-In-Manager machen, nicht über XLSTART. Genau dafür ist der Add-In-Manager vorgesehen.


    1. Verschiebe das Add-In aus XLSTART in einen beliebigen Ordner, zum Beispiel auf den Desktop. Das ist wichtig, da sonst beide Add-Ins beim Excelstart geladen werden, wenn sich beide Versionen in XLSTART befinden.
    2. Starte Excel und öffne das Add-In
    3. Wechsle in den VBE und wähle im Objekt-Explorer das Add-In
    4. Doppelklicke im Add-In auf DieseArbeitsmappe
    5. Setze die Eigenschaft IsAddin auf False
    6. Wechsle zurück nach Excel
    7. Speichere jetzt die Datei als Microsoft Office Excel-Add-In. Der Add-In-Ordner wird automatisch vorgegeben.
    8. Binde das Add-In nun über den Add-In-Manager in Excel ein.
    9. Nach dem Beenden von Excel das Add-In auch an die anderen Nutzer weitergeben.

    Noch einmal der Tipp/Hinweis:
    Das Add-In gehört NICHT in XLSTART. Das Add-In in einem beliebigen Ordner speichern und über den Add-In-Manager in Excel einbinden. Das Add-In wird automatisch beim Excelstart geladen.
     
  6. Beverly

    Beverly Halbes Megabyte

    Hi,

    natürlich kann man AddIns auch in den Startordner legen, wie jede andere Datei auch, die beim Start von Excel mit geladen werden soll. Das ist insbesondere dann sinnvoll, wenn aus verschiedenen Gründen keine AddIns installiert werden dürfen.

    Zum Thema Startordner :guckstdu: http://support.microsoft.com/kb/822107/de

    Normalerweise steht der Verwendung von 2003er AddIns zur Verwendung im Startordner in Excel2007 also nichts entgegen, andernfalls hätte MS in diesem Betrag etwas dazu geäußert. Es muss also auch nicht zwingend in XLAM umgewandelt werden.

    Wichtig wäre, die Fehlermeldungen zu kennen, möglicherweise lassen sie ja einen Rückschluss zu. Ist auf allen Rechnern das gleiche Betriebssystem installiert?
     
  7. AntiDepressiva

    AntiDepressiva CD-R 80

    Eben doch ^^

    Deine Lösung ist nur EINE Möglichkeit.

    Das heißt aber nicht, daß es die einzig richtige ist ^^
     
  8. bahnrat

    bahnrat Kbyte

    Bis Excel 2003 konnte man die Datei auch als normale Datei speichern, in dieser die Tabellen ausblenden und diese Datei dann als Add-In missbrauchen. Die enthaltenen Symbolleisten wurden dann auch erstellt und angezeigt. Funktioniert ab Excel 2007 leider nicht mehr.
     
  9. Beverly

    Beverly Halbes Megabyte

    Hi René,

    und wie blendest du alle Tabellenblätter aus? Mein Excel möchte mindestens 1 Tabellenblatt eingeblendet haben.
     
  10. bahnrat

    bahnrat Kbyte

    Ich meine damit das gesamte Fenster. In Excel 2007 kann man das über das Tab Ansicht, Gruppe Fenster, Schaltfläche Ausblenden. Oder per VBA. Damit sind alle Tabellen ausgeblendet, die Datei aber noch offen. Leider verschwinden in Excel 2007 damit auch alle benutzerdefinierten RibbonX-Elemente, da diese Dateiabhängig sind. Bis Excel 2003 dagegen bleiben die benutzerdefinierten Symbol- und Menüleisten erhalten, sofern man in Workbook_Deactivate nichts anderes angiebt.
     
    Last edited: Sep 7, 2009
  11. bahnrat

    bahnrat Kbyte

    Hier noch der VBA-Code, den ich verwende.

    Sub DateiAus()
    Rem Datei ausblenden
    Dim datei As String
    On Error Resume Next
    datei = ThisWorkbook.Name
    Windows(datei).Visible = False
    End Sub

    Sub DateiEin()
    Rem Datei einblenden
    Dim datei As String
    On Error Resume Next
    datei = ThisWorkbook.Name
    Windows(datei).Visible = True
    End Sub

    Code eingefügt mit VBA in HTML 2.0
     
  12. Beverly

    Beverly Halbes Megabyte

    Hi René,

    naja, es besteht schon ein Unterschied, ob man die Tabellenblätter oder das Fenster mit der Arbeitsmappe ausblendet, denn wenn das Fenster ausgeblendet wird, bleiben die Tabellenblätter dennoch eingeblendet (kann man im VBA-Editort überprüfen). Ich weiß, manch einer mag dies möglicherweise als Haarspalterei ansehen, aber für das Verständnis dessen, was vor sich geht, ist es schon besser, den Unterschied zu kennen.

    Fenster lassen sich in den Vorgängerversionen ausblenden (oder einblenden) über Fenster -> Ausblenden (oder Einblenden).

    Die Symbolleisten verschwinden bei mir auch in Excel2007 nicht - sie bleiben im Register "Benutzerdefinierte Symbolleisten".

    Aus welchem Grund verwendest du On Error Resume Next in deinem Code? Das ist m.E. in diesem Fall nicht erforderlich - das sollte reichen:

    Code:
    Private Sub Workbook_Open()
        Windows(ThisWorkbook.Name).Visible = False
    End Sub
     
  13. bahnrat

    bahnrat Kbyte

    Ich sprach ja auch nicht von den alten Symbolleisten, sondern von RibbonX (Ribbon-XML, benutzerdefinierte Ribbon in Office 2007/2010). Die verschwinden, wenn man das Fenster bzw. die Datei ausblendet.

    Der Beispielcode ist uralt und stammt aus meinen Anfangszeiten. Der Code stammt aus dem Herber-Forum. Den Code benutze ich schon lange nicht mehr. Den habe ich damals genutzt, weil Excel 2003 beim Speichern in den Tabellen des Add-Ins immer den Dateiheader ungefragt in xls geändert hat. Dadurch stimmte selbiger nicht mehr mit der Dateiendung überein. Daher habe ich den hier erwähnten "Trick" benutzt. Heute speichere ich die Daten bei meinem offiziellen Tool in der Registrierungsdatenbank. Das ist der einzige Pfad, den der Anwender nicht ohne weiteres bzw. nur mit erhöhtem Aufwand löschen und/oder ändern kann. Und wenn er ein (IMHO unnötiges) Registrytool nutzt und damit die Einträge beseitigt, dann hat er Pech und muss alles noch einmal machen. Gelegentlich benutze ich auch die DocumentProperties (für die Speicherung der Zustände von toggleButton und checkBox in den benutzerdefinierten Ribbon).
     
  14. Beverly

    Beverly Halbes Megabyte

    sorry, das hatte ich dann wohl falsch interpretiert - ich war vom Eröffnungsbeitrag ausgegangen, in dem es um die Verwendung einer 2003er-Datei in Excel2007 ging. In deinem Beitrag jedoch war der "Missbrauch" :) einer 2007er-Datei gemeint.

    Ich hoffe, du machst die Benutzer deines AddIns darauf aufmerksam, dass du die Registry veränderst? Also ich möchte nicht unbedingt, dass jemand ohne mein Wissen irgendetwas in meine Registry schreibt ;-)))).
    Ich benutze für das temporäre oder permanente Abspeichern irgendwelcher programmrelevanter Daten lieber ein Tabellenblatt des AddIns, da ich damit nicht von eventuelle Änderungen der Registry durch den Benutzer abhängig bin, zumal er ja nicht nachvollziehen kann, weshalb das AddIn plötzlich nicht mehr funktioniert. Aber das soll natürlich jeder so machen wie er/sie es für richtig hält, denn die Ansichten sind ja bekanntlich unterschiedlich. :-)
     
    Last edited: Sep 7, 2009
  15. bahnrat

    bahnrat Kbyte

    Aber selbstverständlich. Steht groß und rot in der Kurzanleitung. Wenn Du möchtest, kannst Du es Dir anschauen.

    Office 2007 Telefon- und Mailfunktion (offizielle Version)

    Office Telefon- und Mailfunktion (inoffizielle Beta, läuft auch in Office 2010)

    Das mach ich schon absichtlich nicht. Das Tool wird auch in Firmennetzwerken eingesetzt. Da möchten bestimmt einige Anwender nicht, dass Kollegen private Rufnummern einsehen oder gar nutzen können.
     
  16. Beverly

    Beverly Halbes Megabyte

    Und in die Registry kann niemand schauen?
     
  17. bahnrat

    bahnrat Kbyte

    Nicht ohne Schnüffeltool. Normalerweise kann nur der angemeldete Anwender in den Schlüssel HKEY_CURRENT_USER schauen. Die Daten werden in HKCU\Software\VB and VBA Program Settings abgelegt. Andere Mitanwender können dort nicht reinschauen, da IMHO jeder Anwender seinen eigenen Schlüssel HKCU besitzt.
     
  18. Beverly

    Beverly Halbes Megabyte

    Normalerweise kann auch niemand in ein mit Password geschütztes VBA-Projekt schauen, sodass die Daten dort also genau so sicher bzw. genau so unsicher aufgehoben sind wie in der Registry. Man kann es also drehen und wenden wie man will - wenn jemand an die Daten kommen will, kann er es auf die eine oder andere Weise doch, was nur das bekannte Problem von VBA bestätigt: in VBA ist nichts zu 100% sicher.

    Was würde man eigentlich machen, wenn man dein AddIn nicht mehr auf dem aktuellen Rechner sondern - mit den selben Daten - auf einem anderen Rechner einsetzen will? In diesem Fall bleiben die Daten doch in der Registy auf dem alten Rechner. Oder überträgst du sie dabei in das AddIn sozusagen als "Zwischenspeicher" ?
     
  19. bahnrat

    bahnrat Kbyte

    Für diesen Fall habe ich eine Exportfunktion eingebaut, mit der man das Telefonbuch und die Einstellungen in externe Reg-Dateien exportieren kann. Diese lassen sich dann auf anderen Systemen importieren. Ich sichere regelmäßig, man kann ja nie wissen...
     
  20. -humi-

    -humi- Joker

    Da sich der TO sowieso nicht mehr meldet und die Diskussion ohne TO nicht zielführend ist, wird der Thread mal geschlossen, falls seitens des TOs doch mal Interesse an einer Weiterarbeit besteht, kann er einen Mod bitten, diesen wieder zu öffnen

    :zu:
     
Thread Status:
Not open for further replies.

Share This Page