Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
848to852
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
848to852
848to852
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Externe Web Daten mit VB.net aktualisieren

Externe Web Daten mit VB.net aktualisieren
28.02.2007 18:22:24
Peter
Liebe Excel Cracks
Zur Zeit schreibe ich eine .net Anwendung, welche auf einem Web Server läuft.
Die zentrale Datei ist in komplexes Excel Workbook. Dieses Workbook weist eine Verbindung zu Yahoo auf.
Über den Befehl Daten/Externe Daten importieren/Neue Web Abfrage habe ich eine Verbindung zu Yahoo erstellt. Das funktioniert einwandfrei. Wenn ich die entsprechende Tabelle öffne, erhalte ich die Symbolleiste "Externe Daten". Dort drauf befindet sich die Schaltfläche "Daten aktualisieren". Sobald ich die Schaltfläche betätige, werden die Daten aktualisiert. Es funktioniert also alles einwandfrei. Allerdings muss die Aktualisierung manuell vorgenommen werden.
Ich will dieses Workbook nun durch eine externe Applikation steuern und die Aktualisierung der externen Daten programmgesteuert erzwingen.
Der Aufruf erfolgt aus VB.net oder C#, NICHT aus VBA!
Ich vermute, dass die entsprechende Anweisung in der Klasse Microsoft.Office.Interop.Excel zu finden ist.
Hat jemand von Euch einen Hinweis?
Gruss
Peter

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Externe Web Daten mit VB.net aktualisieren
28.02.2007 19:04:00
K.Rola
Hallo,
greifst du mit Early- oder Latebinding auf Excel zu?
Gruß K.Rola
AW: Externe Web Daten mit VB.net aktualisieren
28.02.2007 20:38:03
Peter
Hallo K.Rola
Latebinding
Um es nochmals etwas genauer zu erklären:
Die Applikation wird wie folgt auf dem Web-Server gestartet:
- Öffnen einer Excel Instanz
- Öffnen des Workbooks
- Start der Windows Applikation
Das Hauptworkbook befindet sich auf einem Webserver. Es weist keinerlei VBA Code auf.
Wie in der ersten Nachricht beschrieben, besteht eine Verbindung zu Yahoo (Aktienkurse).
(In der Zwischenzeit habe ich die Option "Aktualisierung alle..." gesetzt und die Sachlage auf mehreren Rechnern parallel getestet. Die Aktualisierung findet tatsächlich statt.)
Zugriff von VB.net auf Excel:
Die Windows-Applikation macht nichts anderes als auf das Excel Objekt, in welchem sich das o.g. Workbook befindet zuzugreifen und csv-Daten zu kopieren.
Diese Daten werden innerhalb des Workbooks auf eine mir nicht bekannte Art (Workbook wurde von einer anderen Person aufgebaut) verändert. Diese Veränderung hat allerdings KEINEN Einfluss auf die Datenaktualisierung.
Zu Testzwecken habe ich eine kleine Prozedur erstellt (VBA):

Sub UpdateLinks()
Dim oWB As Workbook
Set oWB = ThisWorkbook
oWB.UpdateLinks = xlUpdateLinksAlways
oWB.UpdateLink = Name:=ActiveWorkbook.LinkSources
End Sub

Scheint leider nicht zur Aktualisierung zu führen.
Kannst du damit was anfangen?
Gruss
Peter
Anzeige
AW: Externe Web Daten mit VB.net aktualisieren
28.02.2007 21:01:51
K.Rola
Hallo,
diese Zeile:
oWB.UpdateLink = Name:=ActiveWorkbook.LinkSources muss eigentlich einen Fehler auslösen,
richtig ist
oWB.UpdateLink Name:=ActiveWorkbook.LinkSources
Wenn du mit LateBinding hantierst, sind die Konstanten, wie xlUpdateLinksAlways
nicht bekannt, du musst die Zahlenwerte verwenden, in diesem Fall 3, dann kannst du
ebenfalls die benannten Argumente, in diesem Fall Name:= nicht verwenden. Da das
Argument optional ist, kannst du es auch weglassen.
Mir ist nicht ganz klar, wo der Code nun eigentlich platziert ist.
Gruß K.Rola
AW: Externe Web Daten mit VB.net aktualisieren
28.02.2007 21:33:25
Peter
Hallo K.Rola
Sorry, ich habe das "=" beim Abschreiben reingebracht. Der eigentliche Code ist genau so wie du es angibst.
Den Testcode habe ich direkt im VBA Teil des Workbooks platziert.
Er ist genau so (ohne das "=") wie angegeben.

Sub UpdateLinks()
Dim oWB As Workbook
Set oWB = ThisWorkbook
' dies ist lediglich eine Eigenschaft
oWB.UpdateLinks = xlUpdateLinksAlways
' dies sollte zu einer Aktualisierung führen
oWB.UpdateLink Name:=ActiveWorkbook.LinkSources
End Sub

Auf dem Rechner läuft lediglich 1 Excel Instanz. Darin befindet sich nur das ominöse Workbook. In diesem befindet sich der VBA Code.
Es geht also lediglich darum: welche Anweisung aktualisiert den Link!
Gruss
Peter
Anzeige
AW: Externe Web Daten mit VB.net aktualisieren
28.02.2007 21:51:58
K.Rola
Hallo,
kann es grad nicht testen, aber einen Versuch ist es wert.
With CommandBars("web")
If .Controls(4).Enabled Then
.Controls(4).Execute
End If
End With
Gruß K.Rola
AW: Externe Web Daten mit VB.net aktualisieren
28.02.2007 23:04:29
Peter
Hallo K.Rola
Werde das morgen mal ausprobieren.
Gruss
Peter

213 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige