Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
236to240
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
236to240
236to240
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Änderungen in Echtzeit anzeigen

Änderungen in Echtzeit anzeigen
01.04.2003 14:55:46
Frank Barthold
Hallo Ihr Excel-Profis,

ich habe zwar Programmier-Erfahrung, aber leider
nicht in VBA. Bei uns in der Firma, gibt es ein
Excel-Dokument, dass mehrere Benutzer gleichzeitig
bearbeiten können sollen. Die Änderungen sollen
dabei in allen geöffneten Ansichten in Echtzeit
angezeigt werden.

Meine Idee:
Jeder Benutzer, erhält beim Öffnen eine Kopie des
Original-Dokuments. Ein VBA-Skript überprüft in regelmäßigen
Abständen, ob sich die Dateieigenschaft 'modified' am
Original verändert hat. Wenn ja, wird die Tabelle in der Kopie
neu geschrieben.
Gibt es eine elegantere Lösung, z.B den Inhalt über Outlook-Exchange zu kontrollieren?

Danke im Voraus an alle, die mir hierzu Tipps und Anregungen
geben können.

viele grüße

Frank


4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Änderungen in Echtzeit anzeigen
01.04.2003 15:15:37
ChrisL

Hallo Frank

Vielleicht findest du in der Recherche unter MultiUserEditing etwas brauchbares.
https://www.herber.de/cgi-bin/searchstruct.pl?begriff=MultiUserEditing

Ansonsten hätte ich noch folgende Idee. Je nach Aufbau der Datei kannst du die Daten evtl. in ein Userform (z.B. Listbox) in einer anderen Datei (ReadOnly) laden. Das Laden erfolgt in dem das Makro die andere Datei öffnet, Daten entnimmt und automatisch wieder schliesst. In der Recherche gibt es Beispiele, um vorher zu prüfen, ob die Datei bereits geöffnet ist. Da der Ladevorgang aber nur wenige Sekunden dauert, sollte es nicht zu oft vorkommen, dass die Datei bereits geöffnet ist. Ich habe hier zusätzlich mal einen Code abgeändert, der wenn die Datei besetzt ist automatisch ein Paar Sekunden wartet, dann erneut probiert etc.

Function DateiIstFrei(ByVal sDateiname As String) As Boolean
'Funktion zur Überpfüfung, ob Datei bereits geöffnet
Dim hFile As Integer
On Error Resume Next
hFile = FreeFile()
Open sDateiname For Random Access Read Lock Read Write As #hFile
If Err Then
DateiIstFrei = False
Else
DateiIstFrei = True
End If
Close #hFile
End Function


Sub oeffnen()
Dim newHour As Date, newMinute As Date, newSecond As Date, WaitTime As Date
Dim i As Integer

Application.Cursor = xlWait
Application.ScreenUpdating = False
Besetzt = False
If DateiIstFrei(DBPfad) = True Then
Workbooks.Open DBPfad
Exit Sub
Else

'1. Datei ist besetzt, deshalb 3 Sekunden warten und erneut testen
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 3
WaitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait WaitTime

'2. Erneut prüfen, falls besetzt 5 Sekunden warten
If DateiIstFrei(DBPfad) = True Then
Workbooks.Open DBPfad
Exit Sub
Else
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 5
WaitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait WaitTime

'3. Versuch und sonst abbrechen
If DateiIstFrei(DBPfad) = True Then
Workbooks.Open DBPfad
Exit Sub
Else
MsgBox "Fehler: Die Datenbank konnte nicht geöffnet werden, da bereits durch einen anderen User in Bearbeitung."
Application.Cursor = xlDefault
Besetzt = True
Application.ScreenUpdating = True
Exit Sub
End If

End If
End If
End Sub

Sub DB1oeffnen()
DBPfad = "C:\Test.xls"
Call oeffnen
If Besetzt = True Then Exit Sub
End Sub

Ob es anderst nicht besser ginge kann ich nicht sagen, aber vielleicht gibt es dir ein paar Ideen.

Gruss
Chris

Anzeige
Re: Änderungen in Echtzeit anzeigen
01.04.2003 15:19:00
Mike E.

Hallo Frank,

was ist denn, wenn mehrere User auf die gleiche Zelle zugreifen und ggf. unterschiedliche Änderungen vornehmen wollen? Welche Datei soll dann gespeichert werden?

Ich würde eine Lösung vorschlagen, bei der nach Speichern durch User XY automatisch ein E-Mail an alle anderen Benutzer geschickt wird; so können sich die anderen überlegen, ob sie mit der neuen Version zufrieden sind...oder so...

Gruß
Mike E.

Re: Änderungen in Echtzeit anzeigen
01.04.2003 15:31:55
Frank Barthold

Danke für den Hinweis,

daran habe ich auch zuerst gedacht.
Damit ist bei mir in der Firma BIS JETZT
aber leider niemand zufrieden. Vielleicht
ändert sich das ja noch!

MfG
Frank

Anzeige
Re: Änderungen in Echtzeit anzeigen
01.04.2003 15:41:33
Frank Barthold

Danke für die Recherche-Tipps und Code-Beispiele!

Das Code-Beispiel scheint ja im Grunde bereits
die Umsetzung meiner ansatzweisen Idee zu sein.

MultiUserEditing klingt nach der Traumlösung schlechthin.
Jedenfalls heissesten Dank für die praktische Hilfe!!!

Grüße
Frank

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige