Office: Freigegebene Exceldatei aus VBA aktualisieren

Helfe beim Thema Freigegebene Exceldatei aus VBA aktualisieren in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, wenn ich in Excel 2010 eine Arbeitsmappe freigebe, wird die Excel-Funktion "Datei aktualisieren" oder "FileUpdate" freigeschaltet. Mit... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von User, 9. Juni 2012.

  1. Freigegebene Exceldatei aus VBA aktualisieren


    Hallo zusammen,

    wenn ich in Excel 2010 eine Arbeitsmappe freigebe, wird die Excel-Funktion "Datei aktualisieren" oder "FileUpdate" freigeschaltet. Mit diesem Befehl kann man eine freigegebene Datei aktualisieren, ohne sie zu speichern.

    Wenn ich aus VBA heraus eine neue Zeile einsetze und ausfülle, möchte ich zuvor sicherstellen, dass dies nicht bereits ein anderer User auf der selben Zeilennummer getan hat. Ich möchte also vor dieser Aktion die Datei aktualisieren, dann mein Makro ausführen und zum Schluß die Datei speichern. Somit ist sichergestellt, dass es keine Probleme und Kollisionen gibt.

    Meine Frage: Wie kann ich diesen Befehl "Datei aktualisieren" aus VBA aufrufen? (Automatisches aktualisieren alle 5 Minuten über die Einstellungen der Freigabe ist für mich unbrauchbar!)

    Vielen Dank vorab.
    Gruß Sven

    :)
     
  2. Hallo Sven,

    ich glaube, Dein gesuchter Befehl heißt anders: ActiveWorkbook.AcceptAllChanges

    Code:
    Da ich ein ähnliches Problem haben werde, habe ich mal ein wenig rumprobiert.

    Wichtig ist in meinen Augen, das der Code im betreffenden Tabellenblatt steht und mit einen Ereignis ausgelöst wird (aber nur, wenn die Datei freigegeben ist - in meinem Fall).

    Je nachdem, wie Dein eigener Code gestrickt ist, muss Du halt eine Bedingung schaffen, die Deinen eigentlich Code nicht von jedem User auslösen lässt.

    Falls das "ActiveWorkbook.AcceptAllChanges" Deinen Ansprüchen nicht genügt, dann würde ich die Datei einfach speichern, bevor Du Deine Änderung machst.

    Ich hoffe, ich konnte helfen oder zumindest einen Denkschubser geben.

    Viel Erfolg.

    Gaby
     
    Uhulinchen, 25. Juni 2012
    #2
  3. Hallo Gaby,

    vielen Dank für Deine Antwort.

    AcceptAllChanges funktioniert, mit dieser Funktion arbeite ich momentan auch. Nachteil: mit dem Befehl wird auch gleich gespeichert! Mit dem Excel Befehl "Datei aktualisieren" wird die Datei nur neu eingelesen aber nicht gespeichert.

    Zur Not kann ich AcceptAllChanges verwenden, die Gefahr liegt halt darin, dass mehrere User gleichzeitig speichern.

    Meine Vorgehensweise wäre eigentlich:
    1) Daten neu einlesen 2) Datensatz hinzufügen 3) Datei speichern

    Momentan läuft es so:
    1) Daten neu einlesen und speichern 2) Datensatz hinzufügen 3) Datei speichern

    Vielleicht findet ja noch jemand den Aufruf der Excel-Funktion, ansonsten werde ich bei AcceptAllChanges bleiben.

    Danke.
    Sven
     
  4. Freigegebene Exceldatei aus VBA aktualisieren

    Moin,
    vielleicht hilft eine von beiden Anweisungen:

    Code:
     
    M Merlin, 25. Juni 2012
    #4
  5. Hallo MMerlin,

    danke für Deinen Vorschlag. Ich habe in einer Mini-Testumgebung Deine Befehle ausprobiert, aber leider ohne den gewünschten Erfolg. "Refresh" führte sogar zu einem Laufzeitfehler in der freigegebenen Datei.

    M.M. nach wirken diese Befehle auf externe Daten im Sinne von Dateien und auf Pivottabellen. Und beides ist nicht der Fall, wenn Du eine freigegebene Tabelle hast.

    @ Sven:
    Ich fürchte, die einzige Möglichkeit, an "aktuelle" Daten zu kommen, ist das vorausgehende Speichern Deiner eigenen Version! Ein Ansatz könnte vielleicht sein, das Du in Abhängigkeit von Deinem Usernamen, die Datei irgendwie sperrst. Aber das läuft gegen die Grundsätze einer Freigabe.... und die Freigabe für diesen Zeitraum aufzuheben könnte weitreichende Probleme verursachen.....

    Du findest mit Goggle eine Millionen Gründe, warum man keine freigegebenen Mappen verwenden soll. Und wenn man es tut, dann nur unter größter Vorsicht. Begründung: Eben weil Excel KEINE echte Datenbank ist und nur so tun kann, ohne die entsprechenden Sicherheitsvorkehrungen zu treffen....

    Ich habe eine solche Datei seit ca. 1 1/2 Jahren in Betrieb und es funktioniert recht gut, weil jeder User in einer für ihn vorgesehenen Spalte eintragen soll. Das größte Problem bei uns ist, das es um Warenbestände geht und es durch "Vergessen zu speichern" zu Überverkäufen kommt.

    Dies will ich jetzt mit einem automatischen Speichern nach jeder Eingabe versuchen zu verhindern.... (s. Skript oben). Mal sehen ob es klappt. Es könnte natürlich ein Problem mit dem gleichzeitigen Speichern geben..... *rolleyes.gif*

    Aber: Die Hoffnung stirbt zuletzt!

    Viel Erfolg beim Weiteren ausprobieren...
    Gruß
    Gaby
     
    Uhulinchen, 26. Juni 2012
    #5
  6. Grüezi Sven

    Hier steckt IMO noch ein Denkfehler drin.

    Wenn Du die Mappe aktualisierern lässt, dann wird der Stand der 'Original'-Mappe eingelesen.
    Haben die weiteren Mituser nicht unmittelbar vorher gespeichert, dann passen die Daten nicht richtig, und das ganze System gerät durcheinander.

    Die Mappe müsste daher also nach jedem Eintrag sofort gespeichert werden, damit jeweils aktuelle Daten vorhanden sind.
     
    Thomas Ramel, 26. Juni 2012
    #6
  7. Hallo MMerlin,

    RefreshAll aktualisiert nur externe Verknüpfungen und Calculate berechnet die internen Zellen neu. Beides funktioniert leider nicht. Vielen Dank trotzdem.

    --------------------
    Hallo Gaby,

    Excel ist keine Datenbank - leider habe ich nur Excel zur Verfügung. Wir arbeiten ebenfalls seit 2 Jahren mit einer freigegebenen Mappe. Jetzt werden die Anforderungen aber größer, deshalb muß die Mappe auf ein neues Niveau. Dein Ansatz könnte vielleicht funktionieren, wenn ich vor jedem Speichern prüfe, ob ein anderer gerade speichert. Wenn ja verzögere ich das eigene Speichern. Vielen Dank.

    --------------------
    Hallo Thomas,

    ja, die Mappe wird immer auf den Stand gebracht, der zuletzt gespeichert wurde. Jede Aktion, die ich per Makro ausführe, endet mit dem Speichern. Also ist die gespeicherte Datei immer aktuell. Bevor ich eine Makro-Aktion ausführe muß ich aber zuerst den aktuellen Stand einlesen - und genau da möchte ich nicht speichern.

    --------------------
    Vielen Dank an alle, vielleicht findet ja doch noch jemand den original Excel-Befehl: "Datei aktualisieren" oder "FileUpdate". Noch zur Info, diese Funktion ist nur verfügbar, wenn die Arbeitsmappe freigegeben ist. Der entsprechende VBA-Befehl wird also auch nur in einer freigegebenen Mappe funktionieren.

    Gruß
    Sven
     
  8. Freigegebene Exceldatei aus VBA aktualisieren

    Hallo _Sven_,

    das Problem mit dem Speichern und dem Verzug kann bei einer Datei immer vorkommen.

    Ich würde das Problem anders lösen. Eine Datei mit den Beständen anlegen und eine "Arbeitsdatei" in der ich Käufe bzw. Verkäufe erfassen kann anlegen.
    Wenn jemand den Button "Verkauf" in der Arbeitsdatei drückt, kann der aktuelle Bestand abgefragt und wenn der Bestand vorhanden ist, sofort reduziert werden. So können keine Überschneidungen auftreten.

    MfG

    Björn
     
    Björn_vbxls, 27. Juni 2012
    #8
  9. Hallo Sven,

    ich glaube, Thomas hat das anders gemeint:

    Wenn einer Deiner verehrten User nach SEINEM Eintrag nicht speichert, dann kannst DU auch nicht den wirklich aktuellen Stand bekommen.

    Daher solltest Du Deine Arbeitsmappe dazu bringen, nach jedem Eintrag des "allgemeinen" Users sofort zu speichern. Dann kannst DU sicher sein, das Du den wirklich letzten Stand hast.....

    Das ist der Ansatz, den ich verfolge. Wahrscheinlich kannst Du Dir noch jede Menge Bedingungen ausdenken, aber "sofortiges" sichern muss sein.

    Bei meinen Test war es auch so, das im Fall wenn zwei User in die "Zelle A2" eingetragen haben, wurde ein Eintrag eben in A3 verschoben, Ob das aber immer so funktioniert oder nur in meiner 2 PC-Insel-Testsituation-ohne-mutwillige-User, das kann ich Dir nicht versprechen. Ist in meiner Ausgangsituation (jeder seine Spalte) auch nicht wirklich relevant.
    Ich denke, Thomas ist da eher der Experte, wenn auch nicht Freund von freigegebenen Dateien. *wink.gif*

    Mein "Echt-Test" mit drei mutwilligen-unberechnenbaren-User läuft derzeit sehr gut *grins . Wenn das bis Freitag so bleibt, werde ich todesmutig auf 15 User (maximale Last *entsetzt ) erweitern.

    Viele Grüße
    Gaby
     
    Uhulinchen, 27. Juni 2012
    #9
  10. Hallo Gaby,

    ich habe das genau so verstanden und wollte mit meiner Antwort sagen: mein Makro speichert bei jedem User nach jeder Änderung automatisch.

    Wäre es nicht so, könnte die Arbeitsmappe ja gar nicht funktionieren.

    Gruß
    Sven
     
  11. Hallo liebe Mitleser,

    ich wollt euch auf dem Laufenden halten: Mein Volllastversuch mit automatischer Speicherung ist leider gescheitert! *frown.gif*

    Bis lang konnte ich noch keinen Grund ausmachen. Folgendes Szenario stellt sich da:

    Erst ist alles gut, dann scheint die Datei auf einmal nicht mehr freigegeben zu sein. Es gibt mind. 1 User, der in der Titelzeile nicht mehr das Wort "freigegeben" hat und mind. einen, bei dem es noch da ist. Fehlermeldung "Die Datei ist nicht mehr freigegeben". Alternativ, wenn sie erneut geöffnet werden soll: "Die Datei ist von einem anderen Benutzer gesperrt" - ohne Namensangabe oder "Leerzeichen".
    Obwohl die Datei laut Fehlermeldung nicht mehr freigegeben ist, kann man NICHT auf das VBA-Modul zugreifen. Das geht erst dann wieder, wenn die Datei freigegeben und gespeichert wurde und die Freigabe wieder zurückgenommen wurde.

    Ich habe zuerst das automatisch speichern entfernt, das hat leider keine Verbesserung gebracht. Weill es dann ein wenig drubbelig wurde, bin ich zu meiner alten Version zurückgekehrt. Damit gehören alle Ereignisse wie "Worksheet_SelectionChange" und "Worksheet_Change" wieder der Vergangenheit an.

    Code:
    Ich finde diesen Rückschlag außerordentlich schade, weil das richtige Verbesserungen gewesen wären. *bawling

    Habe ich irgendwo einen Denkfehler ?????
    Wie kann ich die Verbesserungen an den Start bringen ?

    Vielen Dank für eure Unterstützung......
     
    Uhulinchen, 1. Juli 2012
    #11
  12. Grüezi Uhulinchen

    Ich bin nicht kein Freund der Freigabe sondern weise auf die vielen Einschränkungen und ggf Datenverluste hin die damit einhergehen (können).

    Zuverlässig in grossem Stile vermutlich gar nicht.

    Mit der Freigabe kommt Excel in den Bereich einer Datenbank aber es fehlen sämtliche Mechanismen um den gleichzeitigen Datenzugriff zu verhindern und es gibt dafür auch nicht wirklich einen Workaround, wie Du selbst schmerzlich festgestellt hast.

    Daher die Freigabe nur in eingeschränktem Masse einsetzen und sehr gut getrennte Eingabe-Bereiche den einzelnen Usern zuteilen.
    Alles andere führt über kurz oder lang zu einem (Daten-) Desaster.
     
    Zuletzt von einem Moderator bearbeitet: 12. Januar 2021
    Thomas Ramel, 2. Juli 2012
    #12
  13. Freigegebene Exceldatei aus VBA aktualisieren

    Hallo Thomas,

    ich weiss, das Du kein Freund von freigegeben Dateien bist...... Wie ich schon erwähnt hatt, ist die "Ursprungsdatei" schon seit knapp 2 Jahren am Start und sie lief wirklich wunderbar.

    Natürlich hat jeder User seinen vorgegebenen EIngabebereich, so das es NICHT zu gleichzeitiger Eingabe in einer Zelle kommt.

    Ich wollte die Datei doch nur ein wenig "pimpen" und ein wenig "Luxus" hineinbringen. *frown.gif*

    Das ist schon wenig frustrierend..... zumal ich fast vermutet, das die drei User, die den Einstiegstest gemacht haben, vielleicht doch nicht soviel getestet haben, wie sie mir erzählt haben ...... *rolleyes.gif*

    Wenn Du also noch einen netten Ansatz für mich hast, freue ich mich von Dir zu hören :-)

    Liebe Grüße
    Gaby
     
    Uhulinchen, 2. Juli 2012
    #13
  14. Hallo Gaby,

    ich verwende schon länger eine freigegebene Datei mit Makros. In der Regel arbeiten 7 Leute mit der Datei - täglich. Bis jetzt funktioniert es ganz gut. Bei meinem neuen Projekt werden die selben 7 mit einer Datei arbeiten, die nun komplett über Makros zu bedienen ist. Es laufen bisher aber nur Tests.

    Ich glaube nicht, dass Dein Fehler von den Makros kommen. Du kannst aber eine Fehlerverarbeitung einbauen, so dass Du überhaupt erfährst, wo und wann ein Fehler auftritt:

    Sub meineSUB()
    Const strErr = "meineSUB"
    On Error GoTo ErrHandler
    .
    .
    .
    Exit Sub

    ErrHandler:
    MsgBox "Bitte Gaby rufen:" & vbCrLf & strErr & " - " & Err.Description, vbCritical, "FEHLER"
    End Sub


    Ich habe alle Probleme so gelöst. In meinen Dateien lasse ich zusätzlich alle Fehlermeldungen inkl. Zeitstempel und Usernamen in ein Protokollschreiben. So bekomme ich auch die Meldungen, die mir nicht direkt gesagt werden.

    Versuche es weiter - es wird schon klappen.
    (ich verwende sicherheitshalber eine tägliche Datensicherung - natürlich auch per Makro)

    Gruß
    Sven
     
  15. Danke Sven, für Deinen Zuspruch *Smilie Der war auch bitter notwendig!

    Ich werde jetzt die Salami-Taktik anwenden und eine Änderung nach der anderen einbauen. Auf diese Weise komme ich vielleicht auch dahinter, was mit der Datei so alles getrieben wird, was man mir NICHT gesagt hat. Heute habe ich nämlich erfahren, das ein "Nutz-Nießer-Bereich" entstanden ist.

    Die explizite Fehlerverarbeitung mit Protokoll ist eine gute Idee - da schlampe ich gerne mal *tongue.gif* .

    Außderdem habe ich schwer den Verdacht, das mit unbedachten Rumgeklicke unbedachte Dinge getan werden. Alle, die ich "beobachten" konnte, geben einen Wert ein und schließen die Eingabe mit der Maus ab, statt einfach [Enter] zu drücken.

    Ich werde also einen weiteren Angriff wagen und hier berichten :-) Wäre doch gelacht, wenn ich nicht als Sieger aus der Schlacht zwischen User und Computer hervorgehe *grins .

    Liebe Grüße
    Gaby
     
    Uhulinchen, 3. Juli 2012
    #15
Thema:

Freigegebene Exceldatei aus VBA aktualisieren

Die Seite wird geladen...
  1. Freigegebene Exceldatei aus VBA aktualisieren - Similar Threads - Freigegebene Exceldatei VBA

  2. Outlook Markierungen freigegebenes Postfach

    in Microsoft Outlook Hilfe
    Outlook Markierungen freigegebenes Postfach: Guten Tag Zusammen, wir nutzen mit mehr als 15 Usern ein freigegebenes Postfach zum bearbeiten und verschieben von Nachrichten die ankommen. Nun ist es der Fall das die markeirungen und...
  3. Freigegebenen Kalender wieder ausblenden

    in Microsoft Outlook Hilfe
    Freigegebenen Kalender wieder ausblenden: Hallo zusammen, ich habe eine Frage zu der Kalenderfunktion: Ich habe über die Funktion "Freigebenen Kalender öffnen" im Kalenderbereich von Outlook den Kalender einer anderen Person...
  4. Freigegebenen Kalender exportieren

    in Microsoft Outlook Hilfe
    Freigegebenen Kalender exportieren: Hallo zusammen, ich benötige hier dringend mal eure Hilfe. Ich disponiere mehrere Kollegen und verwalte daher die Kalender. Ich soll nun die Kalender der Kollegen in eine Excel-Datei exportieren....
  5. Standardsignatur für freigegebenes Postfach

    in Microsoft Outlook Hilfe
    Standardsignatur für freigegebenes Postfach: Ich experimentiere mit einem freigegebenen Postfach. (Exchange) Das Postfach soll von mehreren Benutzern genutzt werden. Schreibe ich nun eine Mail, dann kann ich unter "Von:" die...
  6. Anzeigen von Änderungen für alle Nutzer der Mappe

    in Microsoft Excel Hilfe
    Anzeigen von Änderungen für alle Nutzer der Mappe: Hallo zusammen, bei Excel gibt es die Funktion "Änderungen Nachverfolgen". Ich habe die Excelmappe für andere Bearbeiter freigegeben (aus Gründen nicht über die Cloudfunktion) und diese Funktion...
  7. Maske in freigegeben Excel Datei nutzen

    in Microsoft Excel Hilfe
    Maske in freigegeben Excel Datei nutzen: Hallo wir nutzen in einer Excel die Funktion Maske um Daten einzugeben. Jetzt möchten wir die Datei Freigeben damit mehrere Personen gleichzeitig daran arbeiten können leider ist dann die...
  8. Teilnehmerliste in Teams über freigegebenen Bildschirm anzeigen (Liste immer sichtbar) - geht ...

    in Microsoft Teams Hilfe
    Teilnehmerliste in Teams über freigegebenen Bildschirm anzeigen (Liste immer sichtbar) - geht ...: Hallo, bekanntermaßen kann man in Teams Anwendungsfenster für die Teilnehmer anzeigen lassen (freigeben). Bei uns in der Schule ist das meist das Programmfenster von Smart Notebook, unserer...
  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