2.8k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo an alle,

ich bräuchte mal einen Tipp, wie man das Problem wohl am sinnvollsten löst:

Also, ich hoffe, ich kanns so einigermaßen beschreiben:
ich habe 2 Rechner im Netzwerk, die jeweils 1 eigene Excel-Tabelle bearbeiten. Per VBA sollen jetzt Daten in einer 3. Tabelle oder Datenbanken geprüft werden und ggf. auch was reingeschrieben oder gelöscht werden, nix dolles nur 1 Spalte mit Zahlen...

Wie mache ich das am dümmsten ? Exceltabelle scheidet wohl aus, Access habe ich leider, was könnte man da noch nehmen ??

Danke für eure Hilfe :-))

11 Antworten

0 Punkte
Beantwortet von
nur 1 Spalte mit Zahlen...

Dann sollte es wohl auch eine stinknormale Textdatei tun.

Exceltabelle scheidet wohl aus

Warum eigentlich?

John Yossarian
0 Punkte
Beantwortet von
Hallo,

in der VBA Hilfe habe ich schon n bischen gelesen wg. Textdatei, aber irgendwie keinen Befehl gefunden, wie ich Zeilen auch wieder löschen kann .... Get, put .. aber kein delete oder so für Textdateien ..
oder ???

Excel-Tabelle dürfte etwas schwierig werden, wenn 2 User gleichzeitig drauf zu greifen .. Stand zumindest in einigen anderen Beiträgen .. Excel ist eben keine Datenbank ..
0 Punkte
Beantwortet von
Excel-Tabelle dürfte etwas schwierig werden, wenn 2 User gleichzeitig drauf zu greifen ..

Extras - Arbeitsmappe freigeben...

Hinweis: Dort unter "Weitere" in der Auswahl "Widerspr. Änderungen versch. Benutzer" die Option "Gespeicherte Änderunge behalten" wählen.

John Yossarian
0 Punkte
Beantwortet von
... ich hab die Hilfe dazu zwar gelesen, aber nicht verstanden:
Wenn beide User die Tabelle auf haben + beide was ändern, welche Änderung ist dann gültig, wenn beide die Tabelle dann speichern ???
0 Punkte
Beantwortet von
...welche Änderung ist dann gültig, wenn beide die Tabelle dann speichern ???

Die letzte.

Mal ein Quickie-Makro zum Probieren:
Sub Lesen_Schreiben()

'Freigegebene Mappe auf Netzlaufwerk öffnen
Workbooks.Open Filename:="U:\Freigegeben.xls"

'Anzeige Zelle A1
MsgBox Workbooks("Freigegeben.xls").Sheets(1).Range("A1").Value

'Schreiben Zelle A1
Workbooks("Freigegeben.xls").Sheets(1).Range("A1").Value = Application.UserName

'Speichern und Schließen
Workbooks("Freigegeben.xls").Close SaveChanges:=True

End Sub

Diese Prozedur (wechselseitig ausgeführt in beliebigen Mappen auf mehreren Rechnern) schreibt den jeweiligen Usernamen (wie er im Office/Excel eingetragen ist) in eine freigegebene gemeinsame Excel-Mappe auf einem Netzlaufwerk und speichert/schließt diese wieder.

Eigentlich bräuchte man dabei die zentrale Mappe aber gar nicht freigeben, da sie nach den Änderungen eh immer geschlossen werden muß und vom anderen PC aus wieder neu geöffnet.

Aber eine Textdatei müßtest du (um den jeweils aktuellen Stand zu bekommen) ja genauso immer neu einlesen. Nur mit einer "richtigen" Datenbank wäre das nicht notwendig. Aber die hast du ja nicht.

John Yossarian
0 Punkte
Beantwortet von
yo, so ungefähr hatte ich mir das auch schon gedacht ...

Was passiert wohl, wenn beide User das Makro gleichzeitig aufrufen, bzw. die Bearbeitung (Schreiben) der Datei "Freigegeben.xls" etwas länger dauert ??

Müßte man dann nicht doch mit der Freigabe arbeiten ??
0 Punkte
Beantwortet von
Falls das passiert, dann sollte halt die Freigabe der Mappe die Lösung sein. Wer zuletzt speichert, dessen Daten stehen dann drin.

Ich habs natürlich mit meinem Makro probiert, die "Freigegeben.xls" kann von einem PC aus geöffnet sein und gleichzeitig kann ein anderer per Makro reinschreiben und speichern.

John Yossarian
0 Punkte
Beantwortet von
prima, danke :-))

probier ich mal aus, wie das so klappt ...
0 Punkte
Beantwortet von
Zusatz zu: "Wer zuletzt speichert, dessen Daten stehen dann drin."

Dies betrifft nur konkurrierende Änderungen, z.B. Änderungen in der gleichen Zelle.
Bearbeiten die User (also die Makros) unterschiedliche Bereiche, dann bleiben diese Änderungen natürlich erhalten.

John Yossarian
0 Punkte
Beantwortet von
.. ich glaube, meine English Kenntnisse müssen mal dringend aufgebessert werden :-(((

Kann ich das "Workbook.open" auch nur als lesezugriff einstellen ?? Das also Daten nicht geschrieben, sondern mit Makro nur gelesen werden sollen ??
...