So funktioniert JustAnswer:

  • Fragen Sie einen Experten
    Tausende Experten in über 200 Kategorien.
  • Erhalten Sie eine professionelle Antwort
    Per E-Mail oder sofortiger Benachrichtigung, während Sie auf unserer Website warten.
    Stellen Sie ggf. weitere Anschlussfragen.
  • 100%ige Zufriedenheit garantiert
    Bewerten Sie die erhaltene Antwort.

Stellen Sie Ihre Frage an IT-Fachinformat...

IT-Fachinformatiker
IT-Fachinformatiker, Systemadministrator
Kategorie: Computer
Zufriedene Kunden: 6838
Erfahrung:  Software Entwicklung, Projekt Erfahrung, Windows-Netzwerke, Linux-Netzwerke, Windows/Linux-Server
32504664
Geben Sie Ihre Frage in der Kategorie Computer hier ein
IT-Fachinformatiker ist jetzt online.

Guten Tag Meine Frage bezieht sich auf Excel-VBA im Zusammenhang

Kundenfrage

Guten Tag
Meine Frage bezieht sich auf Excel-VBA im Zusammenhang mit der Multifunktionsleiste.
Über eine eigene Schaltfläche starte ich das Makro X. Ganz am Schluss des Makros steht die Anweisung "ThisWorkbook.Close". Nun erhalte ich stets die Warnung "Anwendungs- oder objektdefinierter Fehler". In diesem Zeitpunkt ist die neu erstellte XLSX-Datei bereits sichtbar (d.h. die XLSM-Datei ist bereits geschlossen), jedoch ist meine Multifunktionsleiste mit der von mir erstellten Schaltfläche noch sichtbar. Drücke ich nun auf "OK", verschwindet diese und die normale Multifunktionsleiste wird einglendet.
Besteht die Möglichkeit, die erwähnte Warnung wegzubringen?
Gepostet: vor 6 Jahren.
Kategorie: Computer
Experte:  IT-Fachinformatiker hat geantwortet vor 6 Jahren.
Hallo,

Hm, das könnte an fehlenden Verweisen liegen oder die zugrunde liegende Layoutdatei ist nicht korrekt. Unter welcher Office Version programmieren Sie denn und, geht es gezielt um Ribbons und deren Erstellung? Das ist per VBA leider ein enormer Aufwand der sich allerdings umgehen läßt.

Gruss Günter
Experte:  IT-Fachinformatiker hat geantwortet vor 6 Jahren.
Hallo nochmal,

so damit das erstellen von Ribbons/Menübändern usw. enrom beschleunigt wird, ohne VBA im grösseren Still zu nutzen gibt es sehr preisgünstige Erweiterungen die Ihnen fast die gesamte Arbeit abnehmen: Der RibbonCreator ist das Tool, welches mit Sicherheit Ihren Erwartungen entspricht Sie sparen dadurch nicht nur Zeit sondern auch Fehler:

Office 2010:
http://www.ribboncreator2010.de/

Office 2007:
http://www.ribboncreator.de/

Alles, was Sie normalerweise per VBA machen müssen wird damit hinfällig denn das erledigt dieses Tool für Sie ebenso der Import in die entsprechenden Dateien ich selbst nutze es und es funktioniert absolut einwandfrei und enorm stabil.

Gruss Günter


Kunde: hat geantwortet vor 6 Jahren.

Hallo, da bin ich wieder

 

Vielen Dank für Ihre Antwort

 

Ich arbeite mit Excel 2007. Die von mir erstellte Multifunktionsleiste scheint mir in Ordnung zu sein. Es geht mehr darum, dass die Schaltfläche, welche im Augenblick "am Arbeiten" ist, am Schluss den Befehl "ThisWorkbook.Close" beinhaltet. Da wird doch "der Boden unter den Füssen weggezogen".

 

Sehen Sie eine Lösung, das Problem zu "umschiffen"?

 

Freundlichen Gruss

Martin Hüsler

Kunde: hat geantwortet vor 6 Jahren.
Noch eine Ergänzung: Wenn ich das Makro über die Symbolleiste für den Schnellzugriff starte, dann erscheint die unerwünschte Warnung nicht. Ebenfalls erscheint die Warnung nicht, wenn im Zeitpunkt der Warnung keine andere Excel-Datei geöffnet ist (Multifunktionsleiste ist dann hellgrau, d.h. inaktiv).
Experte:  IT-Fachinformatiker hat geantwortet vor 6 Jahren.
Hallo,

hm klingt sehr merkwürdig und deutet mehr auf einen Bug hin als auf einen Programmierfehler evtl. sollten Sie einmal Haltepunkte im Code setzen und dann im Einzelschritt forfahren ich bin mir sicher, das unter gewissen Umständen ein Wert gesetzt wird der aber bei dem anderen Verfahren also beim Klicken auf Symbolleiste nicht geändert wird. Das Debuggen ist auf jeden Fall ein sinnvolles Mittel, um den Fehler zu isolieren. Sind Sie denn sicher, das Sie an beiden Stellen wirklich das gleiche Makro aufrufen?

Die Meldung "Anwendungs- oder objektdefinierter Fehler" deutet dummerweise eher auf einen Bug in Excel hin daher sollten Sie alle Service Packs und Updates installieren sofern noch nicht geschehen.

http://www.microsoft.com/downloads/details.aspx?familyid=b444bf18-79ea-46c6-8a81-9db49b4ab6e5&displaylang=de

Nach dem was ich heraus gefunden habe ist es a) ein falsch gesetzter Wert beim aufrufen je nach dem von wo oder b) es handelt sich schlicht um ein Bug der noch nicht behoben wurde wenn man vorraussetzt, das Sie das aktuelle Service Pack noch nicht installiert haben. So oder so würde ich auch mal alle Schaltflächen etc. zurück setzen und noch einmal alles genau unter die Lupe nehmen.

Gruss Günter

Kunde: hat geantwortet vor 6 Jahren.

Bug tönt gut (oder auch nicht, wie man's nimmt...). Danke für den Hinweis!

 

Inzwischen habe ich meine Programmierung auf ein absolutes Minimum reduziert. Die Box mit dem Ausrufezeichen im gelben Dreieck, d.h. die Warnung "Anwendungs- oder objektdefinierter Fehler" erscheint nach wie vor.

 

Im "CustomUIEditor" habe ich dies programmiert:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="false">
<tabs>
<tab id="MyTab" label="Meine Registerkarte">
<group id="MyGroup" label="Meine Gruppe">
<button id="MyButton"
label="Mein Steuerelement"
onAction="MeinSteuerelement" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>

 

Im Excel-VBA sind diese beiden Prozeduren erfasst:

 

Option Explicit


Sub MeinSteuerelement(control As IRibbonControl)

Call MeinMakro

End Sub


Sub MeinMakro()

Workbooks.Add
ThisWorkbook.Close

End Sub

 

Auf dem Computer ist Windows XP Service Pack 3 installiert. In der Multifunktionsleiste ist zusätzlich ein Register "Nitro PDF Express" eingebaut (für alle Excel-Dateien automatisch vorhanden). Vielleicht liegt da ja der Fehler.

 

Könnten Sie mir bitte noch kurz mitteilen, ob Sie noch irgendetwas feststellen können?

 

Vielen Dank

und freundlichen Gruss

Martin Hüsler

Experte:  IT-Fachinformatiker hat geantwortet vor 6 Jahren.
Hallo,

aha Nitro PDF das würde ich mal in der Symbolleiste abschalten. Den Code muss ich allerdings erst genauer ansehen sieht auf den ersten Blick gut aus haben Sie denn schon mal mit debuggen begonnne? Die Fehlermeldung die Sie erhalten ist eindeutig ein Hinweis darauf, das Ihr Excel nicht korrekt arbeitet denn normalerweise erscheint exakt die Zeile in der der Laufzeitfehler ausgelöst wird das scheint hier nicht so zu sein d.h. Sie erhalten keinen Fehlercode wie es üblich wäre sondern eine schnöse Fehlermeldung ich sehe mir das aber noch mal genau an und melde mich gleich wieder.

Gruss Günter
Kunde: hat geantwortet vor 6 Jahren.
Mit Debuggen habe ich es versucht. Im Visual Basic Editor erscheint keine Meldung. Vermutlich weil die XLSM-Datei im Zeitpunkt der Warnung bereits geschlossen ist. Erst im allerletzten Augenblick taucht die Meldungs-Box auf. Die soeben erstellte XLSX-Datei ist dann bereits sichtbar, aber noch nicht die neue, übliche Multifunktionsleiste. Mit OK schliesst sich die Box und anschliessend die Leiste mit meinem Register. Die Warnung erscheint nicht, wenn ich das Makro "MeinMakro" direkt starte, also nicht über das Makro "MeinSteuerelement". Vielen Dank XXXXX XXXXX fürs Anschauen.
Experte:  IT-Fachinformatiker hat geantwortet vor 6 Jahren.
Hallo,

hm was mich wundert ist die Tatsache, das der Aufruf bei:

Sub MeinMakro()

Workbooks.Add
ThisWorkbook.Close

End Sub

klappt während er bei:

Sub MeinSteuerelement(control As IRibbonControl)

Call MeinMakro

End Sub

nicht klappt. Ich vermute hier fast etwas ganz merkwürdiges ees besteht die Möglichkeit, das die Sub MeinSteuerelement in einem anderen Kontext als die Sub MeinMakro aufgerufen wird auch, wenn in MeinSteuerelement die Sub MeinMakro aufgerufen wird. In der Sub MeinMakro haben Sie aber folgende Befehle:

Workbooks.Add
ThisWorkbook.Close

man sollte meinen das durch das aufrufen diese Befehle ebenfalls korrekt ausgeführt werden was fast der Fall ist aber durch den Kontextwechsel der hier offenbar stattzufinden scheint werden die Befehle "falsch" ausgeführt. Warum das so ist, kann ich Ihnen nicht erklären mir ist aber bekannt ich hab gestern mal geschaut das das sogar in Einzelfällen passieren kann.

Um das zu prüfen kann man die Sachen direkt in MeinSteuerelement aufnehmen also:

Workbooks.Add
ThisWorkbook.Close
Call MeinMakro

das wäre denkbar, auch wenn es sehr komisch aussehen mag. Eine andere Idee was ich grad sehe Sie machen keine Angabe darüber, ob die Subs private oder public sind machen Sie einmal aus den beiden Subs Private Sub und lassen es noch mal laufen (so wie Ihr Code vorher war).

Es gibt auch ein Konstrukt in der Form:

ThisWorkbook.Close False -> schließen nicht erzwingen
ThisWorkbook.Close True -> schließen erzwingen

das können Sie auch einmal probieren evtl. fehlt hier genau das True bzw. False. Bei Ihnen im Code fehlt True bzw. False könnte auch eine Ursache sein.

Gruss Günter


Kunde: hat geantwortet vor 6 Jahren.

Hat leider nicht geklappt. "Call MeinMakro" nach dem Befehl "ThisWorkbook.Close" wird nicht (mehr) ausgeführt. "Call MeinMakro" vor dem Schliesssen der Arbeitsmappe führt zu einem Loop und es erscheint der Laufzeitfehler 28 "nicht genügend Stapelspeicher".

 

Alle Varianten Private / Public führen zum gleichen Ergebnis.ThisWorkbook.Close False und True können die Ausgabe der Warnung ebenfalls nicht verhindern.

 

Ich denke, ich müsste mal bei den Leuten anklopfen, die das Register für "Nitro PDF express" eingebaut haben.

 

Oder kann man ein solches Register mit VBA auf Inaktiv setzen, damit es sich nicht mehr auf das Makro auswirkt (sorern es wirklich die Ursache des Fehlers ist) ?

Experte:  IT-Fachinformatiker hat geantwortet vor 6 Jahren.
Hallo, hm also alle Varianten klappen nicht. Sie gehen nun davon aus, das es mit Nitro PDF zusammen hängt, welches dort als Ribbon drinnen steckt? Das heisst ja, das Ihr Makro auf einem Excel wo kein Nitro PDF drinne ist laufen muss! Da ich ohne hin nix von diesen hinzugefügten Symbolleisten/Ribbons/Toolbars halte und es gänzlich vermeide sowas auch in die Nähe meines Rechners zu lassen (da es viel bessere Lösungen gibt und man besser ein mal mehr klickt als sich solche Probleme einzuheimsen) wäre es evtl. an der Zeit, das Sie das Ding wirklich mal raus werfen und zwar vollständig danach auch mal den CCleaner drüber laufen lassen. Evtl. auch eine Office Reparatur nicht ausgeschlossen das es wirklich da hakt d.h. das einige Einstellungen innerhalb der Ribbons durch Nitro PDF "versaut" wurden das wäre denkbar. Ich denke allerdings, das Sie mit VBA das Nitro kaum loswerden denn das ist "fest verdrahtet" absichtlich da hilft wohl nur Deinstallieren und Office Reparatur. Daher war ja mein aller erster Tipp mit dem RibbonCreator die Idee denn da müssen Sie gar nichts programmieren und können sicher sein, das Ihre Ribbons auch korrekt eingebunden werden.

Gruss Günter
IT-Fachinformatiker, Systemadministrator
Kategorie: Computer
Zufriedene Kunden: 6838
Erfahrung: Software Entwicklung, Projekt Erfahrung, Windows-Netzwerke, Linux-Netzwerke, Windows/Linux-Server
IT-Fachinformatiker und weitere Experten für Computer sind bereit, Ihnen zu helfen.
Kunde: hat geantwortet vor 6 Jahren.

Da werde ich gerne einhaken, bei dem RibbonCreator. Ausgezeichneter Tipp!

 

Ganz herzlichen Dank für Ihre Mithilfe! Sie haben mir weitergeholfen.

 

Gruss und schönes Wochenende

Experte:  IT-Fachinformatiker hat geantwortet vor 6 Jahren.
Hallo, ich habe zu Danken fürs akzeptieren! :-) ja, der Ribbon Creator ist genial nutze den selber seid einigen Monaten ist ein klasse Tool. Ihnen noch ein schönes Wochenende!
LG Günter
Kunde: hat geantwortet vor 6 Jahren.

Hallo nochmals

 

Ich möchte Sie kurz darüber informieren, dass die Nadel im Heuhaufen gefunden ist. Es war das Excel-Add-In "Eurowährungstools", welches mir in die Quere kam. Mit "AddIns("Eurowährungstools").Installed = False" habe ich dieses nun ausgeschaltet, wodurch die Warnung "Anwendungs- oder objektdefinierter Fehler" nicht mehr erscheint.

 

Freundliche Grüsse und einen schönen Tag

Martin Hüsler

Experte:  IT-Fachinformatiker hat geantwortet vor 6 Jahren.
AHA, sehen Sie das ist ehrlich gesagt auch eine Ursache diese Eurotools, die keiner braucht haben auch bei mir ab und zu Stress gemacht ist im übrigen leider eine häufiger Ursache die AddIns die nicht "dahin gehören" sollte man ohne hin gerade wegs Richtung Mülleimer verschieben :-) es freut mich, das Ihr Problem jetzt endgültig gelöst ist wie gesagt AddIns sind ein "mieses und gemeines" Thema und auch ich war schon "Opfer" solcher "kriminellen AddIns" :-) Lieben Gruss Günter
Experte:  Roberto Raimondo hat geantwortet vor 6 Jahren.

Versuchen Sie am anfang Ihre Macro folgendes zu schreiben:

 

on error resume next

 

und dann bekommen Sie keine Fehlermeldung mehr.

 

 

Hoffe das hilft.

Kunde: hat geantwortet vor 6 Jahren.

Guten Morgen

 

Vielen Dank für Ihren Ratschlag.

 

Als mir die Ursache des Problems noch nicht bekannt war, versuchte ich unter anderem auch, die Warung mit "On Error Resume Next" zu umschiffen. Dies gelang aber nicht, weil mit "ThisWorkbook.Close" der Dialog beendet war.

 

Da das Excel-Add-In "Eurowährungstool" nicht wirklich gebraucht wird, kann ich dieses bedenkenlos ausschalten. Dies wird niemanden stören.

 

Freundlichen Gruss und schönen Tag

Martin Hüsler

 

Bekannt aus:

 
 
 
„[...]mehr als Zehntausend Experten weltweit; 1500 davon in Deutschland. Acht Jahre nach dem Start ist das [...] Online-Unternehmen mit seinen 90 Mitarbeitern die größte Web-Seite für das Vermitteln von Experten von Anwälten über Ärzte bis hin zu Universitätsprofessoren.“
„Wer eine fachmänische Lösung für ein medizinisches, rechtliches oder technisches Problem sucht, kann das jetzt auch im Internet tun. Lebenshilfe auf die schnelle, unkomplizierte und vor allem erschwingliche Art bietet die Seite www.justanswer.de. Etwa 1500 Experten stehen per Mail für Fragen zu ca. 200 Fachgebieten rund um die Uhr zur Verfügung."
„Rat gewünscht? Rechtliche, medizinische oder allgemeine Fragen beantworten Experten unter www.justanswer.de."
„JustAnswer, die weltweit führende Online-Plattform für Expertenfragen und -antworten, bietet ab sofort noch mehr Sicherheit und Qualität für Verbraucher."
„Ob Vorbereitung, Notfall oder Reklamation nach dem Urlaub - JustAnswer bietet jederzeit schnelle, kompetente Antworten"
„Die Online-Plattform JustAnswer bringt Ratsuchende und Experten in über 200 Fachgebieten zusammen."
 
 
 

Was unsere Besucher über uns sagen:

 
 
 
  • Ich bedauere, dass ich nicht gleich bei Ihnen gelandet bin. Die Leerung des Cache hat das Problem gelöst. Danke Gerd Schönbuchner Grafrath
< Zurück | Weiter >
  • Ich bedauere, dass ich nicht gleich bei Ihnen gelandet bin. Die Leerung des Cache hat das Problem gelöst. Danke Gerd Schönbuchner Grafrath
  • Endlich ein Experte, der mir wirklich weiterhelfen konnte! DANKE! JustAnswer Kunde Taunusstein
  • Ihre Antwort hat mir sehr geholfen, die richtigen Entscheidungen zu treffen. Dass Sie mir darüber hinaus noch 2 Empfehlungen gegeben haben fand ich super. Vielen Dank! JustAnswer Kunde Freiburg
  • Die ausgearbeiteten Hilfen waren gut strukturiert, leicht verständlich und zu 100% hilfreich für mich. Vielen Dank Markus B. Karlsruhe
  • Sehr schnelle und kompetente Antwort, die für mich bares Geld bedeutet. Vielen Dank! S.Stober K.
  • Herzlichen Dank! Hab durch Ihre Antwort viel Geld gespart! Ben R. Deutschland
  • Sehr schnelle und kompetente Hilfestellung. Besonders für mich als Laien wurde alles sehr verständlich erklärt. Gerne wieder! Rosengl Bad Tölz
 
 
 

Lernen Sie unsere Experten kennen:

 
 
 
  • Tronic

    Tronic

    IT-Specialist

    Zufriedene Kunden:

    2269
    Elektroniker und EDV-Service
< Zurück | Weiter >
  • http://ww2.justanswer.com/uploads/PY/Pyroflash/2011-4-21_104934_tronic.64x64.jpg Avatar von Tronic

    Tronic

    IT-Specialist

    Zufriedene Kunden:

    2269
    Elektroniker und EDV-Service
  • http://ww2.justanswer.com/uploads/rufushoschi/2010-11-08_135947_bild.jpg Avatar von IT-Fachinformatiker

    IT-Fachinformatiker

    Systemadministrator

    Zufriedene Kunden:

    6338
    Software Entwicklung, Projekt Erfahrung, Windows-Netzwerke, Linux-Netzwerke, Windows/Linux-Server
  • http://ww2.justanswer.com/uploads/COMINAROSA/2010-02-03_172238_PASSBILD.JPG Avatar von COMIN IT-Service

    COMIN IT-Service

    Dipl.-Ing.

    Zufriedene Kunden:

    779
    Dipl.Ing (FH) ET, NT, IT
  • http://ww2.justanswer.com/uploads/RaubergerConcep/2010-03-02_102740_Portraet64.jpg Avatar von RaubergerConcept

    RaubergerConcept

    IT-Specialist

    Zufriedene Kunden:

    234
    Mehr als 10 Jahre Erfahrung in Softwareentwicklung und Netzwerktechnik
  • http://ww2.justanswer.com/uploads/LF/lfalkenburg/2015-2-8_01843_.64x64.jpg Avatar von Lutz Falkenburg

    Lutz Falkenburg

    IT-Specialist

    Zufriedene Kunden:

    96
    Seit über 20 Jahren beruflich im IT-/IUK-Bereich tätig. Egal ob EinzelPC der Netzwerk...
  • http://ww2.justanswer.com/uploads/BI/BigDaddyXD/2012-10-24_20126_WhySoSeriousJob.64x64.jpg Avatar von BigDaddyXD

    BigDaddyXD

    Informatiker

    Zufriedene Kunden:

    1588
    Microsoft Certified Professional, Microsoft Certified Desktop Support Technican,...
  • http://ww2.justanswer.com/uploads/PU/Pucky80/2011-5-14_54537_pucky80.64x64.jpg Avatar von Pucky80

    Pucky80

    IT-Systemkaufmann

    Zufriedene Kunden:

    1322
    MCITP (Microsoft Server 2008 Enterprise Administrator)
 
 
 

Ähnliche Fragen in der Kategorie Computer