PDA

Vollständige Version anzeigen : ActiveWorkbook.AcceptAllChanges


TWQ
04.07.2014, 12:24
Hallo zusammen,

ich nutze eine freigegebene Arbeitsmappe und aktualisiere diese mit dem Befehl "ActiveWorkbook.AcceptAllChanges".

Meine Frage:
Ist es möglich, diesen Befehl so zu modifizieren, dass z. B. nur die gerade aktive Tabelle aktualisiert wird und nicht die ganze Mappe?

so: "ActiveWorkbook.AcceptAllChanges , , ActiveSheet" funktioniert es leider nicht.

Hintergrund: Es dauert mir einfach zu lange, bis die komplette Mappe aktualisiert wurde. Oder kennt jemand eine Möglichkeit auf einem ganz anderen Wege eine freigegebene Arbeitsmappe "schneller" zu aktualisieren?

Für Eure Hilfe im Vorraus Danke.

Gruß Kai

TWQ
16.07.2014, 16:30
Hallo...keine eine Idee?

EarlFred
16.07.2014, 16:37
Hallo Kai,

auch wenn ich eigentlich keine Hilfe zu freigegebenen Arbeitsmappen gebe, solange der Teufel kein Weihwasser trinkt, dennoch der Hinweis, dass der Bereich als Adresse in der A1-Schreibweise vorgegeben werden muss:

ActiveWorkbook.AcceptAllChanges Where:=ActiveSheet.Name & "!A1"

Den Bereich nach Deinen Wünschen sinnvoll anpassen.

Grüße
EarlFred

TWQ
16.07.2014, 16:43
das habe ich leider schon öfters gehört...ich bin auch nicht wirklich zufrieden...aber mir fehlen Alternativen...ich habe eine Terminkalender programmiert, indem Termine eingegeben werden...womit würdest du das realisieren? Gruß Kai

TWQ
16.07.2014, 16:46
Hallo EarlFred,

vielen Dank, dass du mir dann trotzdem versuchst zu helfen....

Sag, was genau meint hier "!A1" in diesem Zusammenhang?

Gruß Kai

EarlFred
16.07.2014, 16:48
Hallo Kai,

womit würdest du das realisieren?
Ich würde mich nach vorhandenem auf dem Markt umschauen. Warum das Rad neu erfinden?

Sag, was genau meint hier "!A1" in diesem Zusammenhang?
Das ist die "stinknormale" Schreibweise für Bezüge, bestehend aus Blattnamen und Bereichsangaben, getrennt durch das übliche "!".

ActiveSheet.Name & "!A1"
= BlattnameDesAktivenBlattes!A1
= Zelle A1 des Aktiven Blattes

Der Bereich C4:F99 wäre also:
ActiveSheet.Name & "!C4:F99"

Das ganze Blatt:
ActiveSheet.Name & "!" & Cells.Address

Enthält der Blattname Leerzeichen (pfui!), musst Du noch Hochkommas setzen:
ActiveWorkbook.AcceptAllChanges Where:="'" & ActiveSheet.Name & "'!" & Cells.Address

Ob der Blattname obsolet ist, kann ich bei den Teufelsmappen nicht genau sagen. Vermutlich schon, solange es das aktive ist. Aber ich will es garnicht wissen, es verdirbt das Karma.

Grüße
EarlFred

TWQ
16.07.2014, 16:51
...und mit "!A1" wird dann der Bereich angegeben, bei dem das acceptAllChanges-Ereignis ausgelöst wird? Also kann ich hier auch als Bereich "A1:Z22" angeben?

EarlFred
16.07.2014, 16:53
Hallo Kai,

Also kann ich hier auch als Bereich "A1:Z22" angeben?
exakt.

Grüße
EarlFred

TWQ
16.07.2014, 17:03
hmm...bei "ActiveWorkbook.AcceptAllChanges Where:=ActiveSheet.Name & Cells.Address" bekomme ich den Laufzeitfehler 5 "Ungültiger Prozessaufruf oder ungültiges Argument"

TWQ
16.07.2014, 17:04
sorry, meinte auch :"ActiveWorkbook.AcceptAllChanges Where:= ActiveSheet.Name & "!" & Cells.Address"

TWQ
16.07.2014, 17:08
Klasse...habs hinbekommen...und wenn ich jetzt nur die aktive Zelle überprüfen möchte, dann:"ActiveWorkbook.AcceptAllChanges Where:="'" & ActiveSheet.Name & "'!" & ActiveCell.Address"?

EarlFred
16.07.2014, 17:12
Kai,

begreif doch bitte, dass Du den Teufel nicht nach dem Geschmack von Weihwasser fragen musst!

Frag nicht, probier's aus! Beispiel hast Du genug, der Rest obliegt nun Deiner Kreativität und Transferleistung.

Grüße
EarlFred

TWQ
16.07.2014, 17:18
Hallo EarlFred,

ok, vielen Dank für deine Hilfe. Hast mich echt weitergebracht. Ich habe jetzt nur noch eine Frage, die mich seit Tagen zum Verzweifeln bringt und nur indirekt etwas mit meiner freigegebenen Arbeitsmappe zu tun hat.

Ich lege die freigegebene Arbeitsmappe auf einem Netzwerklaufwerk ab. Wird der Befehl "ActiveWorkbook.AcceptAllChanges" ausgeführt, wird die Arbeitsmappe gespeichert und eine tmp-Datei erzeugt (der Zusammenhang ist mir bekannt). Problem ist aber, dass die tmp nach Vollendung des Speicherns nicht als Original transferiert wird (bzw. bestehen bleibt) bzw. meine Arbeitsmappe sich sogar selbst löscht (was wohl damit zu tun hat, das der Speichervorgng nicht abgeschlossen werden konnte); aber wo genau liegt das Problem? Am Netzwerk? Wenn ja, wonach muss ich suchen?

Gruß Kai

EarlFred
16.07.2014, 17:34
Hallo Kai,

es reicht.

Grüße
EarlFred

Hajo_Zi
16.07.2014, 17:41
<a href="http://hajo-excel.de/crossposting.htm" title="Crossposting" >Zu Crossposting lese diese Seite Hajo-Excel.de</a>
Du hast Glück das JINX nicht mehr da ist, ansonsten würde Dein Beitrag wegen Crossposting geschlossen werden.
Ein Zitat aus der Netiquette (hier im Forum):
Unerwünscht sind auch Crosspostings - also dieselbe Frage gleichzeitig in mehreren Foren (nicht nur im MSOF).
Denn auf diese Weise werden mehrere Gruppen von Leuten mit dem gleichen Thema befasst, ohne dass sie voneinander wissen.
Naturgemäß laufen dann die Antworten, die im einen Forum "zu spät" gegeben wurden, ins Leere und bleiben ohne Resonanz.
Es reicht also, zunächst in einem Forum zu posten - wenn die Antworten dann unbefriedigend sein sollten, steht es einem anschließend immer noch offen, ein anderes Forum zu Rate zu ziehen.

<img src="http://Hajo-Excel.de/images/grusz1.gif" align="middle" height="40" alt="Grußformel"><a href="http://Hajo-Excel.de/index.htm"><img border="0" src="http://Hajo-Excel.de/images/logo_hajo3.gif" align="middle" height="40" alt="Homepage"></a>

TWQ
16.07.2014, 17:53
Hallo Hajo,

vielen Dank für die Info. Nachvollziehbar.

Gruß Kai