Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Excel Änderungen live anzeigen für andere Nutzer

Frage Microsoft Microsoft Office

Mitglied: crack24

crack24 (Level 2) - Jetzt verbinden

23.09.2014, aktualisiert 23:14 Uhr, 1997 Aufrufe, 10 Kommentare

Hallo,

ist es möglich, dass wenn jemand Änderungen in einer Excel macht, andere Nutzer diese sofort live sehen wenn sie die Datei auch geöffnet haben? Oder müssen die die Datei dafür neu öffnen?

Viele Grüße
crack
Mitglied: colinardo
LÖSUNG 23.09.2014, aktualisiert um 23:14 Uhr
Moin,
siehe: http://www.administrator.de/forum/excel07-excel-datei-von-mehreren-arbe ...

Die Makro-Variante könnte so aussehen:

Man erstelle ein Excel Dokument mit Makros (*.xlsm) in welchem man folgenden Code in den Abschnitt DieseArbeitsmappe im VBA-Editor (ALT-F11) einfügt:
01.
Private Sub Workbook_Open() 
02.
    If ThisWorkbook.ReadOnly = True Then 
03.
        UpdateTimer 
04.
    End If 
05.
End Sub 
06.
 
07.
Sub UpdateTimer() 
08.
    Application.OnTime (Now() + TimeValue("00:00:05")), "DieseArbeitsmappe.UpdateTimer" 
09.
    On Error Resume Next 
10.
    ThisWorkbook.UpdateFromFile 
11.
End Sub
Dieses Dokument speichert man nun auf einem Netzlaufwerk. Der Bearbeiter öffnet das Dokument als erstes und hat damit Schreibzugriff auf die Arbeitsmappe. Alle weiteren Clients öffnen dann das Workbook im Schreibgeschützen Modus, und nur hier startet dann das Makro welches eine Aktualisierung der Arbeitsmappe alle X Sekunden (im Beispielcode alle 5 Sekunden) veranlasst. Speichert der Bearbeiter nun das Workbook sind kurz darauf die Änderungen an den Clients zu sehen.

Grüße Uwe
Bitte warten ..
Mitglied: crack24
23.09.2014 um 23:14 Uhr
Hallo Uwe,

das ist genau das was ich brauche! Vielen Dank.

Viele Grüße
crack
Bitte warten ..
Mitglied: crack24
24.09.2014 um 13:40 Uhr
Alle Änderungen eines Tages automatisch farbig zu kennzeichnen ist wahrscheinlich nicht möglich oder?
Bitte warten ..
Mitglied: colinardo
24.09.2014, aktualisiert um 14:37 Uhr
Zitat von crack24:
Alle Änderungen eines Tages automatisch farbig zu kennzeichnen ist wahrscheinlich nicht möglich oder?
man kann ein Makro hinterlegen das bei jeder Zelländerung z.B. die Hintergrundfarbe der jeweiligen Zelle automatisch ändert(Worksheets_OnChange-Event). Diese Zellen müsste man dann nur am Anfang eines neuen Tages wieder zurücksetzen. Möglich ist vieles ....
Einfacher lässt sich das natürlich mit einem freigegebenen Workbook machen, das hat diese Funktion ja schon integriert (Änderungen nachverfolgen) - wie unter obigem Link beschrieben.
Bitte warten ..
Mitglied: crack24
24.09.2014 um 14:15 Uhr
....wenn man weiß wie es geht
Dann muss ich mal recherchieren, ob man irgendwie die Zellen auch wieder automatisch zurücksetzen kann.
Bitte warten ..
Mitglied: colinardo
24.09.2014, aktualisiert um 17:34 Uhr
So, hier mal ein Beispiel das geänderte Zellen gelb hinterlegt und beim Öffnen nachfragt ob die Markierungen alle gelöscht werden sollen. Hier noch das Demo-Sheet dazu: mark_edited_cells_249949.xlsm / Kommentare befinden sich im Code
01.
'Variable enthält den zwischengespeicherten Wert der aktiven Zelle(n) 
02.
Dim currentCellValue As String 
03.
'Markerfarbe 
04.
Dim markerColor As Long 
05.
 
06.
'Beim Öffnen des Workbooks checken ob es schreibgeschützt geöffnet wurde 
07.
Private Sub Workbook_Open() 
08.
    'Farbe der Marker festlegen 
09.
    markerColor = RGB(255, 255, 0) 
10.
     
11.
    If ThisWorkbook.ReadOnly = True Then 
12.
        'Workbook schreibgeschützt, starte die 'UpdateTimer' Prozedur 
13.
        UpdateTimer 
14.
    Else 
15.
        'Workbook ist nicht schreibgeschützt, Frage ob alle Tagesmarkierungen entfernt werden sollen 
16.
        If MsgBox("Möchten sie die Tagesmarkierungen entfernen?", vbQuestion Or vbYesNo, "Tagesmarkierungen") = vbYes Then 
17.
            ClearMarkers 
18.
        End If 
19.
    End If 
20.
End Sub 
21.
 
22.
'Bei Zelländerungen den Wert der Zelle auf Änderung überprüfen und dann entsprechend farbig markieren 
23.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) 
24.
    On Error Resume Next 
25.
    If Not IsEmpty(Target.Value) Then 
26.
        If Target.Cells(1, 1).Value <> currentCellValue Then 
27.
            Target.Cells(1, 1).Interior.Color = markerColor 
28.
        End If 
29.
    Else 
30.
        If currentCellValue <> "" Then 
31.
            Target.Cells(1, 1).Interior.Color = markerColor 
32.
        End If 
33.
    End If 
34.
End Sub 
35.
 
36.
'Aktuellen Wert der aktivierten Zelle zwischenspeichern um Zelländerungen feststellen zu können 
37.
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) 
38.
    currentCellValue = Target.Cells(1, 1).Value 
39.
End Sub 
40.
 
41.
'Update-Timer wird gestartet wenn das Workbook schreibgeschützt geöffnet wird 
42.
Sub UpdateTimer() 
43.
    'Update-Routine alle 5 Sekunden erneut aufrufen 
44.
    Application.OnTime (Now() + TimeValue("00:00:05")), "DieseArbeitsmappe.UpdateTimer" 
45.
    On Error Resume Next 
46.
    'Update druchführen 
47.
    ThisWorkbook.UpdateFromFile 
48.
End Sub 
49.
 
50.
'Tagesmarkierungen entfernen 
51.
Sub ClearMarkers() 
52.
    Dim ws As Worksheet, cell As Range 
53.
    For Each ws In ThisWorkbook.Worksheets 
54.
        For Each cell In ws.UsedRange 
55.
            If cell.Interior.Color = markerColor Then 
56.
                cell.Interior.ColorIndex = xlColorIndexNone 
57.
            End If 
58.
        Next 
59.
    Next 
60.
End Sub
Viel Erfolg

Grüße Uwe
Bitte warten ..
Mitglied: crack24
25.09.2014 um 15:37 Uhr
Danke! Muss ich am Wochenende direkt mal einbauen und testen
Bitte warten ..
Mitglied: crack24
18.10.2014 um 11:16 Uhr
Funktioniert super. Zwei Fragen habe ich noch.
Kann man irgendwie auch den Windows User abfragen, so dass die Änderungen eines bestimmten Users nicht markiert werden?
Kann man statt der MsgBox("Möchten sie die Tagesmarkierungen entfernen?") auch einen Button in einer Zelle platzieren der die Markierungen entfernt?

Viele Grüße
Oliver
Bitte warten ..
Mitglied: colinardo
18.10.2014, aktualisiert um 11:25 Uhr
Hallo Oliver,
Zitat von crack24:
Funktioniert super. Zwei Fragen habe ich noch.
Kann man irgendwie auch den Windows User abfragen, so dass die Änderungen eines bestimmten Users nicht markiert werden?
yip s. Code unten Zeile 20, dort kannst du den Namen ändern, dann werden Änderungen dieses Users nicht markiert.
Kann man statt der MsgBox("Möchten sie die Tagesmarkierungen entfernen?") auch einen Button in einer Zelle
platzieren der die Markierungen entfernt?
Kannst du mit diesem Code machen, du musst dann nur noch deinen Button erstellen und Ihm das Makro **ClearMarkers()* zuweisen.
01.
'Variable enthält den zwischengespeicherten Wert der aktiven Zelle(n) 
02.
Dim currentCellValue As String 
03.
'Markerfarbe 
04.
Dim markerColor As Long 
05.
 
06.
'Beim Öffnen des Workbooks checken ob es schreibgeschützt geöffnet wurde 
07.
Private Sub Workbook_Open() 
08.
    'Farbe der Marker festlegen 
09.
    markerColor = RGB(255, 255, 0) 
10.
     
11.
    If ThisWorkbook.ReadOnly = True Then 
12.
        'Workbook schreibgeschützt, starte die 'UpdateTimer' Prozedur 
13.
        UpdateTimer 
14.
    End If 
15.
End Sub 
16.
 
17.
'Bei Zelländerungen den Wert der Zelle auf Änderung überprüfen und dann entsprechend farbig markieren 
18.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) 
19.
    ' Nur ausführen wenn User nicht 'Werner' heißt markiere Änderungen 
20.
    If Application.UserName <> "Werner" Then 
21.
        On Error Resume Next 
22.
        If Not IsEmpty(Target.Value) Then 
23.
            If Target.Cells(1, 1).Value <> currentCellValue Then 
24.
                Target.Cells(1, 1).Interior.Color = markerColor 
25.
            End If 
26.
        Else 
27.
            If currentCellValue <> "" Then 
28.
                Target.Cells(1, 1).Interior.Color = markerColor 
29.
            End If 
30.
        End If 
31.
    End If 
32.
End Sub 
33.
 
34.
'Aktuellen Wert der aktivierten Zelle zwischenspeichern um Zelländerungen feststellen zu können 
35.
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) 
36.
    currentCellValue = Target.Cells(1, 1).Value 
37.
End Sub 
38.
 
39.
'Update-Timer wird gestartet wenn das Workbook schreibgeschützt geöffnet wird 
40.
Sub UpdateTimer() 
41.
    'Update-Routine alle 5 Sekunden erneut aufrufen 
42.
    Application.OnTime (Now() + TimeValue("00:00:05")), "DieseArbeitsmappe.UpdateTimer" 
43.
    On Error Resume Next 
44.
    'Update druchführen 
45.
    ThisWorkbook.UpdateFromFile 
46.
End Sub 
47.
 
48.
'Tagesmarkierungen entfernen 
49.
Sub ClearMarkers() 
50.
    Dim ws As Worksheet, cell As Range 
51.
    For Each ws In ThisWorkbook.Worksheets 
52.
        For Each cell In ws.UsedRange 
53.
            If cell.Interior.Color = markerColor Then 
54.
                cell.Interior.ColorIndex = xlColorIndexNone 
55.
            End If 
56.
        Next 
57.
    Next 
58.
End Sub
Grüße Uwe
Bitte warten ..
Mitglied: crack24
18.10.2014 um 12:26 Uhr
Danke für deine Hilfe!
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Microsoft Office
gelöst Verschieben von Zellinformation in andere Spalte (per VBA) excel 2010 (5)

Frage von thomas1972 zum Thema Microsoft Office ...

VB for Applications
gelöst Schreiben in andere Excel-Datei macht Worksheet unsichtbar (5)

Frage von Albatros91 zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...