über VB eine Datei auslesen und das nicht in einem MS Programm

esilein

Grünschnabel
Hallo zusammen,

könnt ihr mir vielleicht helfen?

Ich stehe vor dem Problem das ich eine Excel-Liste habe in der viele Kostenstellen stehen. Zudem setzt zu jeder Kostenstelle eine oder mehrere Abteilungen und deren Adressen.
Nun muss ich dies irgendwie auslesen. Das Ziel ist es wenn eine Kostenstelle und eine Abteilung ausgewählt wurde die Adresse auszulesen.

Mir persönlich ist egal wie die Datei angespeichert ist, ob als Comma-, Semikolon oder Tabsepariert oder gar als Excel.

Ich habe es auch geschafft die Datei als Excel einzulesen:

Code:
function TabelleAuslesen()

'EXCEL-Objekt erzeugen:
    Set ExcelApp = CreateObject("excel.application")
    ExcelApp.Visible = True
    'dann das Spreadsheet laden
    Set NewMap = ExcelApp.Workbooks.Open("C:\Verzeichnis_Abteilungen.xls") 
TabelleAuslesen = ExcelApp.Range("C6") 

END function

nur ist hier das Problem das mit jedem Aufruf Excel auch geöffnet wird und es zudem ewig braucht bis der Wert übergeben ist.
Das zum Schluss alles als online Aktion laufen soll wäre es gut wenn das ganze in einer angemessenen Zeit reagiert.

Hat jemand eine Idee? Zur not steht mir als Programmiersprache auch noch c# und JavaScript zur Verfügung.

Ich hab echt keine Ahnung wie ich das am besten anstell.

Schon mal vielen Dank für eure Antworten

Gruß
esilein
 
Hallo,

wenn Du diese Funktion für jede Zelle einzeln aufrufst, wird jedesmal Excel im Hintergrund geladen, das dauert naturgemäß ewig.

Stattdessen solltest Du in einer Schleife alle benötigten Zellen auslesen, und dafür Excel nur einmal öffnen. Es gibt hier im Forum jede Menge Beispiele des Zugriffs auf Excel-Sheets, da solltest Du einfach erstmal suchen und Du wirst bestimmt finden.

ronaldh
 
Oder man benutzt folgenden Ansatz:

1) Als Excel-Datei: Auf Daten in einer Excel-Datei kann man auch per DB-Zugriff (ADO/DAO) zugreifen
2) Als Text-File (Semikolon, TAB-Sep): Siehe hierzu auch die Open-Anweisung.
 
Hallo,

wenn Du diese Funktion für jede Zelle einzeln aufrufst, wird jedesmal Excel im Hintergrund geladen, das dauert naturgemäß ewig.

Stattdessen solltest Du in einer Schleife alle benötigten Zellen auslesen, und dafür Excel nur einmal öffnen.

Nunja das war nur der Versuch überhautpt eine Ausgabe hin zu bekommen. Weiter hab ich nicht probiert da ich beim versuch war eine Angabe eine relativen Pfades. Aber daran bin ich auch restlos gescheidert. Nun muss ich einen Absoluten Pfad nehmen.

Dann such ich mal was weiter.
 
Zurück