3.1k Aufrufe
Gefragt in Tabellenkalkulation von klapptnicht Einsteiger_in (57 Punkte)
Hallo,

ich versuche grade folgendes Problem zu lösen + komm irgendwie nicht weiter:

User A öffnet ExcelDatei A, User B ExcelDatei B.
per VBA werden Daten in ExcelDatei C aus Dateien A+B geprüft, reingeschrieben + geändert.
Ich habs jetzt schon soweit hinbekommen, das Datei C nur kurz beim Update geöffnet wird, nur passiert es eben mal, das beide gleichtzeitig versuchen, die Datei zu öffnen und dann kommen Fehlermeldungen hoch.

Hat jemand n Tipp, wie man das am besten löst ?
Geimensamen Zugriff einstellen habe ich auch schon versucht, klappt aber irgendwie nicht so richtig ...

Danke :-))

9 Antworten

0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Nick,

"Geimensamen Zugriff einstellen habe ich auch schon versucht, klappt aber irgendwie nicht so richtig ..."

Du hast die Datei also freigegeben?

Gruß hajo
0 Punkte
Beantwortet von klapptnicht Einsteiger_in (57 Punkte)
Ja, damit habe ich es mal versucht...
Wenn einer dann Datei C öffnet, was reinschreibt + die Datei wieder schliessen will, kommt die Meldung, das die Datei geändert wurde + ob man eine Kopie speichern möchte ...

Oder habe ich da was falsch eingestellt ?
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Nick,

das iest sich so als ob Du was falsch gemacht hast. Wird in der Titelleiste angezeigt das die Arbeitsmappe freigegeben ist?

Gruß hajo
0 Punkte
Beantwortet von klapptnicht Einsteiger_in (57 Punkte)
Au .. gute Frage, das weiß ich nicht mehr :-((

Ich hab das unter "Arbeitsmappe freigeben" eingestellt ...

Was sollte da denn eigentlich passieren ??
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Nick,

dann können mehrere Leute gleichzeitig auf die Datei zugreifen oder was war die Frage?

Gruß hajo
0 Punkte
Beantwortet von
Hier wurde sowas ähnliches schon mal diskutiert:

www.supportnet.de/t/2241967

Geht eigentlich mit VBA ganz gut.

Yossarian
0 Punkte
Beantwortet von klapptnicht Einsteiger_in (57 Punkte)
Also, ich hab alles probiert, aber irgendwie klappt das nicht:
Wenn ich Datei C auf einem PC geöffnet hatte, wurde C auf dem anderen schreibgeschützt geöffnet oder Excel wollte eine Kopie speichern...

Ich habs jetzt anders gemacht:

jeder, der die Datei öffnet, hat exclusiven Zugriff. Wenn jetzt noch einer kommt, muß der eben mal grad mal 2 Sekunden warten:

OpenW:
On Error Resume Next
Open PfadSp & "Datei C.xls" For Binary Access Read Lock Read As #1
Close #1
If Err.Number <> 0 Then
Application.Wait (Now + TimeSerial(0, 0, 2))
GoTo OpenW
End If

Halte ich auch für sinnvoll, dann kann jeder seine Änderungen machen und man hat keinen Datenmischmasch ...

Dabei ist mir auch noch aufgefallen, das

Workbooks("Datei C").Close savechanges:=True
ActiveWorkbook.Close savechanges:=True

irgendwie nicht dasselbe machen ...
bei letzerem wird die Datei nicht geschlossen ...

oder ich hab was verkehrt gemacht.

Trotzdem Danke für die Antworten :-)))
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Klapptnicht,

die Anweisungen

Workbooks("Datei C").Close savechanges:=True
ActiveWorkbook.Close savechanges:=True

machen schon das gleiche. Durch die Anweisungen wird aber nicht immer die gleiche Datei geschlossen.

Mit ActiveWorkbook.Close savechanges:=True wird die aktive, also die Datei, mit der Du gerade arbeitest geschlossen.

Mit Workbooks("Datei C").Close savechanges:=True wird explicit die Datei C geschlossen, egal aus welcher Datei heraus diese Anweisung ausgeführt wird.

Mal ein Beispiel: Du hast in Datei A über ein Makro die Datei C geöffnet, arbeitest aber weiterhin in Datei A. Wenn Du nun die Anweisung Workbooks("Datei C").Close savechanges:=True anwendest, wird die Datei C geschlossen. Benutzt Du aber die Anweisung ActiveWorkbook.Close savechanges:=True, wird Datei A geschlossen. Datei C bleibt weiterhin geöffnet.

Ich hoffe, Du konntest mit meinen Erklärungen etwas anfangen

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von klapptnicht Einsteiger_in (57 Punkte)
Hi Coros,

da sagst du was ...
Könnte sein, das ich auf der falschen Tabelle stand :-((

Danke für den Tipp :-))

Klapptnicht
...