Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Exceldatei auf entferntem Rechner schliessen

Exceldatei auf entferntem Rechner schliessen
16.11.2004 20:54:57
Kai
Habe einen Code gebastelt, der prüft ob eine bestimmte Datei geöffnet ist und diese dann schliesst. Kann ich Excel dazu bringen diese Datei zu schliessen, wenn ein anderer Benutzer im Netzwerk sie geöffnet hat?
Danke + Gruss Kai
'

Sub journal_schliessen()
'Dim bExists As Boolean
'Dim oWorkbook As Object
'' Prüfen ob Journal bereits geöffnet ist
'bExists = False
'With Application
'  For Each oWorkbook In .Workbooks
'    If UCase$(oWorkbook.Name) = "journal.xls" Then
'      ' Jetzt aktivieren
'      Windows(oWorkbook.Name).Activate
'      bExists = True
'      Exit For
'    End If
'  Next
'End With
'' Journal schliessen, wenn geöffnet
'    If Not bExists Then
'        On Error Resume Next
'        Workbooks("Journal.xls").save
'        Workbooks("Journal.xls").Close
'        On Error GoTo 0
'    End If
'End Sub

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Exceldatei auf entferntem Rechner schliessen
Ramses
Hallo
meines Wissens nach, ist das nicht möglich.
Gruss Rainer
AW: Exceldatei auf entferntem Rechner schliessen
RAnton
Hallo Kai,
das geht nur mit Domain - Admin Rechten.
Gruß
Anton
Dann erklär mir mal....
Ramses
Hallo
... wie ich als Admin eine Datei Remote SCHLIEESSEN kann.
Als Admin kann ich nur die Session schliessen, aber keine Datei.
Gruss Rainer
Anzeige
AW: Dann erklär mir mal....
RAnton
Hallo Rainer,
du gehst als Administrator auf die Datei, unter Eigenschaften - erweitert und kannst dann die Datei schließen.
Gruß
Anton
AW: Exceldatei auf entferntem Rechner schliessen
17.11.2004 00:31:25
Thomas
Hallo Rainer,
für solche Spässchen habe ich mir mal einen COM+-Server (rollenbasierte Sicherheit, einfach zu konfigurieren) geschrieben. Damit kann man so ziemlich alles machen, z.B. Excel schließen, Mappe öffnen/schließen, Addins (de)installieren, Tabellen syncronisieren, usw.
Funktioniert in jedem Netzwerk (Domäne, Workgroup, WWW/ungetestet).
Sieht dann etwa so aus ...


      
Option Explicit
Dim xlr As XLRemoting.CXLRemoting
Dim xl As Excel.Application
Dim wb As Excel.Workbook
Private Sub UserForm_Activate()
    
Set xlr = CreateObject("XLRemoting.CXLRemoting""workstation")
End Sub
Private Sub CommandButton1_Click()
    
If Not xlr Is Nothing Then
        
Set xl = xlr.GetExcel
        
If Not xl Is Nothing Then
            
'Set wb = xl.ActiveWorkbook
            'wb.Close
            xl.Quit
        
End If
    
End If
End Sub 


Gruß
Thomas
Risi Thomas Softwareentwicklung
Anzeige
AW: Exceldatei auf entferntem Rechner schliessen
17.11.2004 10:33:18
Kai
hi thomas
excel soll prüfen, ob eine bestimmte datei auf zwei bestimmten rechnern geöffnet ist und diese datei dann schliessen. wie muss ich Deinen code umschreiben...
danke für Deine hilfe.
gruss kai
AW: Exceldatei auf entferntem Rechner schliessen
17.11.2004 13:29:14
Thomas
Hallo Kai,
es ist so wie Rainer schreibt, es geht nicht (zumindest nicht so einfach). Deshalb habe ich mir auch den COM+-Server gebastelt. Dabei handelt es sich um kleines Programm (24kB), dass auf jedem Computer installiert werden muß. Mein Beispielcode erstellt nun eine Instanz dieser Komponente auf jedem gewünschten Rechner. Sobald die Verbindung steht, kann man machen, was einem beliebt. Damit können sogar Events (von Excel) auf dem Client-Rechner ausgewertet werden :-)
Gruß
Thomas
Risi Thomas Softwareentwicklung
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Exceldatei auf entferntem Rechner schließen


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen:

    • Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.
  2. Neues Modul erstellen:

    • Klicke auf „Einfügen“ und wähle „Modul“.
  3. Code einfügen:

    • Kopiere den folgenden VBA-Code in das neue Modul:
    Sub journal_schliessen()
       Dim bExists As Boolean
       Dim oWorkbook As Object
    
       ' Prüfen ob Journal bereits geöffnet ist
       bExists = False
       With Application
           For Each oWorkbook In .Workbooks
               If UCase$(oWorkbook.Name) = "journal.xls" Then
                   ' Jetzt aktivieren
                   Windows(oWorkbook.Name).Activate
                   bExists = True
                   Exit For
               End If
           Next
       End With
    
       ' Journal schliessen, wenn geöffnet
       If Not bExists Then
           On Error Resume Next
           Workbooks("Journal.xls").save
           Workbooks("Journal.xls").Close
           On Error GoTo 0
       End If
    End Sub
  4. Code anpassen:

    • Passe den Code an, um die spezifische Datei zu schließen, die auf einem entfernten Rechner geöffnet ist.
  5. Makro ausführen:

    • Führe das Makro aus, um die Excel-Datei, die möglicherweise auf einem anderen Rechner geöffnet ist, zu schließen.

Häufige Fehler und Lösungen

  • Fehler: „Datei kann nicht gefunden werden“

    • Lösung: Stelle sicher, dass der Dateiname korrekt ist und dass die Datei nicht bereits geschlossen ist.
  • Fehler: „Zugriff verweigert“

    • Lösung: Um eine Excel-Datei auf einem anderen Rechner zu schließen, benötigst du Administratorrechte im Netzwerk.

Alternative Methoden

  • COM+-Server:

    • Eine weitere Methode, die von einem Benutzer vorgeschlagen wurde, ist die Verwendung eines COM+-Servers. Dies ermöglicht die Steuerung von Excel-Anwendungen auf Remote-Computern. Der Code sieht in etwa so aus:
    Dim xlr As XLRemoting.CXLRemoting
    Dim xl As Excel.Application
    Dim wb As Excel.Workbook
    
    ' Initialisiere den COM+-Server
    Set xlr = CreateObject("XLRemoting.CXLRemoting", "workstation")
  • Remote Desktop:

    • Du kannst auch die Remote-Desktop-Verbindung verwenden, um direkt auf den Rechner zuzugreifen und die Datei manuell zu schließen.

Praktische Beispiele

  • Schließen einer .xlr-Datei:
    • Wenn du eine .xlr-Datei hast, kannst du diese in Excel öffnen und den oben genannten Code verwenden, um sicherzustellen, dass die Datei nicht mehr verwendet wird.
Sub SchliessenXLRDatei()
    Dim wb As Workbook
    On Error Resume Next
    Set wb = Workbooks("deine_datei.xlr")
    If Not wb Is Nothing Then
        wb.Close SaveChanges:=True
    End If
    On Error GoTo 0
End Sub

Tipps für Profis

  • Sicherheitsrichtlinien beachten: Achte darauf, dass du die notwendigen Berechtigungen und Sicherheitsrichtlinien deines Unternehmens berücksichtigst, bevor du versuchst, eine Excel-Datei zu schließen.

  • Verwendung von Fehlerbehandlungsroutinen: Implementiere Fehlerbehandlungsroutinen in deinem VBA-Code, um unerwartete Fehler zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich eine XLR-Datei öffnen? Um eine XLR-Datei zu öffnen, kannst du Excel verwenden, indem du „Datei“ > „Öffnen“ wählst und die XLR-Datei auswählst.

2. Kann ich eine Excel-Datei auf einem anderen Rechner schließen ohne Admin-Rechte? Nein, in der Regel benötigst du Administratorrechte, um eine Datei auf einem anderen Rechner zu schließen, insbesondere wenn sie von einem anderen Benutzer geöffnet ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige