Office: Code funktioniert nur im Einzeschritt

Helfe beim Thema Code funktioniert nur im Einzeschritt in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Guten Morgen allerseits Ich steh mal wieder an und hoffe auf eure Hilfe... Der Code soll folgendes machen: 1. Datei A: überprüfen ob geöffnet,... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von acerspeedlinkacer, 25. November 2014.

  1. Code funktioniert nur im Einzeschritt


    Guten Morgen allerseits

    Ich steh mal wieder an und hoffe auf eure Hilfe...


    Der Code soll folgendes machen:

    1. Datei A: überprüfen ob geöffnet, falls nicht -> Datei A öffnen
    2. Datei B: schliessen
    3. Datei A: als Datei B speichern und schliessen
    4. Datei B: öffnen und Formatierung anpassen


    Ich habe schon verschiedene kleine Änderungen am Code vorgenommen, das Resultat bleibt aber immer das Gleiche: im Einzelschritt funktioniert der Code einwandfrei, aber wenn ich das Makro via Button starte, hört Excel immer an der gleichen Stelle mit der Prozedur auf.

    Hier der entsprechende Code (er steht in einem Add-In):


    Code:
    Ich habe keine Ahnung woran das liegt... im Netz hab' ich nur mal gelesen, dass dieses Problem ab und an mal erscheint und man dagegen eigentlich nichts machen kann... manchmal soll ein Umschreiben des Codes helfen, bei mir hats bisher nichts gebracht :-/

    Hat jemand ne Idee woran es liegen kann?

    Gruss acerspeedlinkacer

    :)
     
    acerspeedlinkacer, 25. November 2014
    #1
  2. Hallo,

    ... hatte ein ähnliches Problem. Offensichtlich kommt das Filesystem nicht hinterher.
    Bau mal testweise ein "Wait" dazwischen.

    Application.Wait (Now + TimeValue("0:00:02"))

    gruß robert
     
  3. Hallo Robert

    Besten Dank für die Antwort.


    Ich bin nicht sicher, ob dich richtig verstanden habe... ich hab nun den Code folgendermassen angepasst:

    Code:
    Leider hat es nichts gebracht und es ist immer noch an der gleichen Stelle Schluss. Hab jetzt gerade bemerkt, dass der Code auch normal durchläuft wenn er aus dem VBA-Editor gestartet wird.

    Gruss acerspeedlinkacer
     
    acerspeedlinkacer, 26. November 2014
    #3
  4. Code funktioniert nur im Einzeschritt

    Hallo,

    wenn es am Dateisystem liegt, könnte ein eingestreutes DoEvents dem Betriebssystem die Gelegenheit zum Aufräumen geben.

    In welcher Deiner Dateien steht denn der VBA-Code? Wenn es gerade das ActiveWorkbook ist, ziehst Du ihm mit wbFrontend.Close den Boden unter den Füßen weg.
     
    haklesoft, 26. November 2014
    #4
  5. Hallo Haklesoft

    Der Code steht in einem Add-In, das auf einem NAS liegt. Wie gesagt, wenn ich das Makro normal über den VBA-Editor starte oder im Einzelschritt durchführe, funktioniert alles einwandfrei. Der Code sollte ja dementsprechend eigentlich verfügbar sein?

    Interessanterweise hatte der Code zu Beginn funktioniert. Aber irgendetwas, ich hab leider keine Ahnung was, muss ich geändert haben. Nun läufts nicht mehr rund...


    Gruss acerspeedlinkacer
     
    acerspeedlinkacer, 27. November 2014
    #5
  6. Hallo acerspeedlinkacer,

    warum passt Du die Formatierung nicht einmalig in der Quelldatei "Y:\**\Datei A.xlsm" an?
    Dann könntest Du bei jedem User mit FileCopy Quelle, Ziel arbeiten und müsstest nicht ständig Workbooks öffnen und schließen?

    Als User würde ich mich ggf. herzlich bedanken, wenn mir der Job per wbFrontEnd.Close meine gerade mühsam erstellte Datei - die ja nicht unbedingt mit dem Job zu tun haben muss - ohne Rückfrage in die Tonne tritt.
     
    haklesoft, 27. November 2014
    #6
  7. Hallo Haklesoft

    Wir haben bei uns auf der Arbeit eine Excel-Datei mit den wichtigsten Angaben über verschiedene Projekte. Die Datei ist natürlich nicht mehrbenutzerfähig, aber es arbeiten bis zu 4 Personen daran. Oftmals sind es nur kleine Änderungen und man kann sich gut organisieren, dass die eine Person dann eben kurz raus geht wenn eine andere Person etwas bearbeiten muss.

    Nun geht es darum, dass die Datei "mehrbenutzerfähig" wird, damit man nicht immer für die kleinsten Anpassungen aus der Datei muss... in diesem Sinne sollen die Personen, die auf die Datei Zugriff haben, eine lokale Kopie der Datei erhalten (wbFrontEnd). Wenn etwas geändert werden soll, wird mittels Makro auf die Datei im Netzwerk (wbBackEnd) zugegriffen und der Datensatz geändert - Excel soll sozusagen zur Datenbank mutieren. Dass das Ganze nicht optimal ist versteht sich von selbst... bei grössseren Bearbeitungen ist es deshalb hilfreich, wenn direkt in der Originaldatei gearbeitet werden kann. Damit sich die Benutzer auch wirklich bewusst sind in welcher Datei sie arbeiten, habe ich die Formatierung angepasst. Das aufgeführte Makro bildet sozusagen die Aktualisierung der lokalen Datei.

    Ich hoffe, ich konnte mich verständlich ausdrücken. Ansonsten bitte einfach nochmal nachfragen.

    Gruss acerspeedlinkacer
     
    acerspeedlinkacer, 27. November 2014
    #7
  8. Code funktioniert nur im Einzeschritt

    Hallo acerspeedlinkacer,

    ich würde den Ablauf wohl so gestalten:
    1. Lokale Datei ggf. schließen
    2. Masterdatei per FileCopy mit neuem Namen lokal ablegen
    3. Lokale Datei öffnen, Formatierungen vornehmen, speichern
     
    haklesoft, 28. November 2014
    #8
  9. Hallo Haklesoft

    Danke für die Hilfe. Ich habs nun so ausprobiert, aber wieder das gleiche: sobald ich wbFrontEnd schliesse, hört Excel auf den Code auszuführen. Beim Start über den VBA-Editor funktioniert es aber... :S

    Gruss acerspeedlinkacer
     
    acerspeedlinkacer, 28. November 2014
    #9
  10. Du solltest schauen, ob die Masterdatei in der Excelinstanz geöffnet ist. Dann ggf. mit Hinweis abbrechen.
    Du solltest außerdem schauen, ob die lokale Datei geöffnet ist und dann dieses Workbook schließen; - nochmal der Hinweis: das muss nicht das ActiveWorkbook sein!

    Und Du solltest mal checken, ob Dein AddIn noch geladen und ansprechbar ist und welcher Code in der lokalen Datei beim Schließen ausgeführt wird.

    Erst dann kopierst Du Quelle auf Ziel und öffnest die neue lokale Datei.
     
    haklesoft, 28. November 2014
    #10
  11. Wenn ich dich richtig verstehe, dann meinst du das hier?

    Code:

    Die lokale Datei wird ja geschlossen, dann hängt sich das Makro auf... bzw. wird einfach nicht weiter ausgeführt (ich erhalte auch keine Fehlermeldung oder so). Am Anfang der Prozedur wird das aktive Workbook als wbFrontEnd deklariert, danach wird nur noch mit "wbFrontEnd" gearbeitet. Die Namensgebung hab ich auch mehrfach mit einer msgbox (msgbox wbFrontEnd.Name) überprüft - kam immer richtig raus.


    Wie kann ich das überprüfen? Das AddIn ist auch dann verfügbar, wenn nur Excel aber keine Arbeitsmappe geöffnet ist. Die Dateien enthalten neben den Codes CommandButtons keinen weiteren Code. Und diese sind nur Verweise auf Makros im AddIn.


    Gruss acerspeedlinkacer
     
    Zuletzt von einem Moderator bearbeitet: 12. Januar 2021
    acerspeedlinkacer, 28. November 2014
    #11
  12. Ich weiss nicht, wie bei Dir die Function FileStatus programmiert ist. Vermutlich prüft Sie den Zugriff auf Dateiebene. Das ist in dem Zusammenhang aber eigentlich uninteressant, denn wichtig wäre nur, ob in der aktuellen Excel-Instanz die Masterdatei bereits geöffnet ist.

    Beim ersten Schließen des Frontends knallst Du einfach das ActiveWorkbook in die Tonne. Du musst vorher klären, ob es sich dabei tatsächlich um die lokale Datei handelt!
     
    haklesoft, 28. November 2014
    #12
Thema:

Code funktioniert nur im Einzeschritt

Die Seite wird geladen...
  1. Code funktioniert nur im Einzeschritt - Similar Threads - Code funktioniert Einzeschritt

  2. Bild löschen auch wenn es nicht vorhanden ist?! Code funktioniert nicht mehr..

    in Microsoft Excel Hilfe
    Bild löschen auch wenn es nicht vorhanden ist?! Code funktioniert nicht mehr..: Hallo Leute, Habe ein Macro in Benutzung das jetzt über Monate gut funktioniert hat und jetzt kam anscheint ein update und es funktioniert nicht mehr, wobei ich es mir nicht erklären kann, weil...
  3. VBA Code " Zeilenhöhe bei Verb. Zellen Funktioniert fasst"

    in Microsoft Excel Hilfe
    VBA Code " Zeilenhöhe bei Verb. Zellen Funktioniert fasst": Hallo Leute dieser Code für Zellenhöhe bei Verbundenen Zellen Funktioniert fast. Ich habe ein Code von jemand anderem bekommen der nicht in einem Forum ist. Ich kann gerade diese Person nicht...
  4. VBA Code Schliesen nach Zeit X funktioniert nicht

    in Microsoft Excel Hilfe
    VBA Code Schliesen nach Zeit X funktioniert nicht: Hallo Leute , habe ein Problem in meiner Excel Datei wo ich nicht weiter komme. Versuche es so verständlich wie möglich zu beschreiben. ich habe ein Code von jemanden bekommen (leider komme ich an...
  5. VBA Code Funktioniert nicht

    in Microsoft Excel Hilfe
    VBA Code Funktioniert nicht: Hallo Leute habe ein Code von einem Lieben User bekommen. Obwohl es beim ersten mal funktioniert hat geht es nicht mehr. Da ich den User nicht erreichen kann (er hat wahrscheinlich viel zu tun :-)...
  6. Code funktioniert nicht

    in Microsoft Excel Hilfe
    Code funktioniert nicht: Code: Sub Preisliste() If InStr(Range("H43").Value, "*2016*") > 0 Then Call Liste2016 ElseIf InStr(Range("H43").Value, "*2019*") > 0 Then Call Liste2019 Else Call Liste2020 End If End Sub...
  7. Office 365 64 Bit-Version, VBA-Code funktioniert nicht mehr

    in Microsoft Access Hilfe
    Office 365 64 Bit-Version, VBA-Code funktioniert nicht mehr: Hallo Gemeinde Ich habe eine alte Datenbank, erstellt unter Access 2000, konvertiert nach Access 2007. Eine Kundin hat nun auf ihrem PC Office 365 in der 64 Bit-Version installiert. Nun...
  8. Code funktioniert nicht mehr

    in Microsoft Access Hilfe
    Code funktioniert nicht mehr: Hallo zusammen, ich habe ein Formular, dort gebe ich in zwei Feldern einen Benutzernamen und ein Passwort ein. im Bericht soll mir das Passwort als Barcode angedruckt werden. das hat bisher...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden