Daten aus einer Excel-Tabelle im Netz auslesen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
TextBox
Bild

Betrifft: Daten aus einer Excel-Tabelle im Netz auslesen
von: Rico
Geschrieben am: 08.03.2005 13:11:30
Hallo liebe Excel Gemeinde,
ich benötige mal wieder Eure Hilfe. :-)
Im Netzwerk unserer Firma liegt eine Excel-Datei, die alle halbe Stunde aktualisiert wird. Sie ist auf einem Server hinterlegt:
http://serveradresse.de/auswertung/daten.xls
In dieser Tabelle gibt es (als Beispiel) die Tabellenblätter "123" und "456" in denen jeweils in der Zelle F50 ein Prozentwert hinterlegt ist. Und dieser Wert wird automatisch alle 30 Minuten aktualisiert.
Das erst mal zur Vorgeschichte. :-)
Nun ist es mir zu umständlich, jedesmal die Tabelle aufzurufen. Daher habe ich die Idee, eine Art Monitor laufen zu lassen. Im Grunde genommen sind es zwei Textfelder. In dem einen Feld soll der Wert aus dem Tabellenblatt "123" / Zelle F50 angezeigt werden - und im zweiten Textfeld der Wert aus dem Tabellenblatt "456" / F50.
Und das wichtigste: Beide Textfelder sollen sich alle 15 Minuten aktualisieren.
Ich hoffe, das dies kein all zu schwieriges Vorhaben ist, was mir da eingefallen ist. Ich bedanke mich schon jetzt bei allen, die mir dabei helfen.
Gruß
Rico

Bild

Betrifft: AW: Daten aus einer Excel-Tabelle im Netz auslesen
von: Matthias G
Geschrieben am: 08.03.2005 14:38:44
Hallo Rico,
es gibt eine Routine, die Daten aus einer geschlossenen Datei auslesen kann. Diese ist nicht von mir, ich habe sie aber in den Lösungsvorschlag mit eingebaut.
Zuerst mal in Modul1 diesen Code:

 'VBA Function to Get a Value From a Closed File
'VBA does not include a method to retrieve a value from a closed file.
'You can, however, take advantage of Excel's ability to work with linked
'files.
'This tip contains a VBA function that retrieves a value from a closed workbook.
'It does by calling an XLM macro.
'The GetValue Function
'The GetValue function, listed below takes four arguments:
'path: The drive and path to the closed file (e.g., "d:\files")
'file: The workbook name (e.g., "99budget.xls")
'sheet: The worksheet name (e.g., "Sheet1")
'ref: The cell reference (e.g., "C4")
Function GetValue(path, file, sheet, ref)
' Retrieves a value from a closed workbook
Dim arg As String
' Make sure the file exists
If Right(path, 1) <> "\" Then path = path & "\"
If Dir(path & file) = "" Then
    GetValue = "File Not Found"
    Exit Function
End If
' Create the argument
arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
Range(ref).Range("A1").Address(, , xlR1C1)
' Execute an XLM macro
GetValue = ExecuteExcel4Macro(arg)
End Function

Dann in Modul2, dieses:
Option Explicit
Public NextTime As Date
Sub LeseWerte()
Dim Wert1, Wert2
Dim p$, f$, s$, a$
p = "\\server\directory"
f = "Dateiname.xls"
s = "123" 'Blatt
a = "F50" 'Zelle
Wert1 = GetValue(p, f, s, a)
s = "456" 'anderes Blatt
Wert2 = GetValue(p, f, s, a)
NextTime = Now + TimeValue("00:00:15") 'alle 15 Sekunden
Application.StatusBar = "Wert1:" & Format(Wert1, "0,0%") & _
    "  -  Wert2:" & Format(Wert2, "0,0%") & "    (Nächste Aktualisierung: " & NextTime & ")"
Application.OnTime NextTime, "LeseWerte"
End Sub
Sub LesenStop()
    On Error Resume Next
    Application.OnTime EarliestTime:=NextTime, Procedure:="LeseWerte", Schedule:=False
    On Error GoTo 0
    Application.StatusBar = False
End Sub

und, sehr wichtig, ins Modul "DieseArbeitsmappe":
Private Sub Workbook_Activate()
LeseWerte
End Sub
Private Sub Workbook_Deactivate()
LesenStop
End Sub

Beim Aktivieren der Mappe wird also eine Prozedur gestartet, die die Werte ausliest und in der Statusleiste anzeigt. (Wenn du es in Textboxen haben willst, kannst du es ja anpassen). Gleichzeitig wird die Zeit der nächsten ausführung festgelegt (im Beispiel 15 Sekunden zu Testzwecken).
Beim Deaktivieren der Mappe wird die OnTime-Prozedur gelöscht (und die Statuszeile in den Standardzustand versetzt).
Die Pfade in Modul2 müssen noch angepasst werden!
Ich hoffe, du kommst klar. Wenn nicht, nachfragen!
Grüße,
Matthias
Bild

Betrifft: AW: Daten aus einer Excel-Tabelle im Netz auslesen
von: Rico
Geschrieben am: 08.03.2005 14:55:57
Hallo Matthias,
erst mal vielen dank, das Du Dir die Mühe gemacht hast. :-)
Bei Fragen - fragen? Ok, 2 Stück hab ich noch:
1: in Modul 2 unter dem Punkt SERVER - wie wird da die genaue Adresse (anhand meiner Beispieladresse) eingetragen?
2: Das mit der Statuszeile ist keine schlechte Idee. Kannst du mir auf meine Mail-Adresse mal Deine Adresse schicken? Dann schick ich dir mal eine ausführliche Mail, wie ich mir das eigentliche Layout vorgestellt habe.
Gruß
Rico
Bild

Betrifft: AW: Daten aus einer Excel-Tabelle im Netz auslesen
von: Matthias G
Geschrieben am: 08.03.2005 15:05:06
Hallo Rico,
zu 1.
ich weiß nicht. Normalerweise geht der Pfad doch \\Computername\Verzeichnis\Unterverzeichnis\Datei.xls
Wie es halt im Explorer in der Adresszeile angezeigt wird.

zu 2.
Ich bevorzuge die Diskussion im Forum. Du kannst gerne zu dem Thema gerne einen neuen Thread eröffnen.
(Meine Kinder müssen jetzt mal essen!)
Grüße,
Matthias
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Daten aus einer Excel-Tabelle im Netz auslesen"