Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
980to984
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
980to984
980to984
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

automatischer Import

automatischer Import
25.05.2008 09:38:00
Maris
Hallo zusammen,
ich hab mal wieder ein defiziles problemchen und bin mir nicht sicher ob man das ohne weiteres lösen kann. In einem Order habe bsp. 3 Dateien mit Wechselkursen (Wechselkurs 14.05.08 usw.) der Aufbau ist immer gleich. Ich hab ein excel sheet in das diese Kurse automatisch beim öffnen importiert werden sollen.
Aufbau Excelsheet:
Datum USD GBP
14.05.08 1,3 0,75
usw.
Aufbau Textdatei:
14.05.2008
AUD Australian Dollar 0.60610
BGN Bulgarian Lev 0.51120
CAD Canadian Dollar 0.64520
CZK Czech Koruna 0.04007
DKK Danish Krone 0.13400
HUF Hungarian Forint 0.00401
JPY Japanese Yen 0.00616
NZD New Zealand Dollar 0.49340
NOK Norwegian Kroner 0.12750
PLN Polish Zloty 0.29540
RON Romanian New Leu 0.27420
RUB Russian Rouble 0.02710
SEK Swedish Krona 0.10750
CHF Swiss Franc 0.61340
GBP United Kingdom 125.790
USD US Dollar 0.64700
Excel soll nun jedes Texfile in dem Verzeichnis prüfen:
wurde die Wert für 14.05.08 befüllt, dann geh zur nächsten Textdatei und prüfe (15.05.08).
Ist das zu aufwendig. Bitte sagt bescheid wenn ich dazu eine komerzielle Lösung brauch!
DANKE!
Gruß
Maris

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: automatischer Import - Fragen
25.05.2008 10:39:00
fcs
Hallo Maris,
komerzielle Lösung wohl eher nicht. Mit etwas Kenntnix´s in VBA-Programmieung kann man das mit Bordmitteln lösen.
Ein paar Fragen noch:
Kann das Datum der Wechselkurse immer aus dem Datum im Datei-Namen der Textdatei ermittelt werden?
Sind Währungs-Kurzeichen, Beschreibung und Kurs in der Textdatei "nur" durch Leerzeichen geterennt oder durch ein Sonderzeichen (z.B. Tab)?
Ist das Blatt in der Exceldatei in das die zwei Währungskurse eingetragen werden sollen immer das 1.Blatt in der Arbeitsmappe oder hat es einen bestimmten Namen?
Würdest du bitte eine Beispiel-Textdatei zum Testen hier hochladen.
Gruß
Franz

Anzeige
AW: automatischer Import - Fragen
25.05.2008 11:48:39
Maris
Hallo Franz,

Kann das Datum der Wechselkurse immer aus dem Datum im Datei-Namen der Textdatei ermittelt  _
werden?


Ja das Datum steht in der Textdatei und im Namen! ich denke aber im Namen ist besser!


Ist das Blatt in der Exceldatei in das die zwei Währungskurse eingetragen werden sollen immer  _
das 1.Blatt in der Arbeitsmappe oder hat es einen bestimmten Namen?


Ja es ist immer das erste Blatt!
Ich lade mal die Datei hoch für die anderen Fragen
Gruß
Maris
https://www.herber.de/bbs/user/52603.txt

Anzeige
AW: automatischer Import - Fragen
25.05.2008 13:28:00
fcs
Hallo Boris,
hier das Ergebnis.
Im Modul modKursImport muss du den Namen des Verzeichnisses mit den Wechselkurs-Dateien anpassen.
der Name der Wechselkursdteien muss immer mit "Wechselkurse " beginnen, danach dann das Datum im Fomat TT.MM.JJ . den Anfang des Dateinamens kannst du auch anders festlegen, er muss halt nur bei allen Dateien gleich sein.
Unter DieseArbeitsmappe wird per Workbook_Open - Ereignisprozedur das Makro zum Kursimport gestartet.
https://www.herber.de/bbs/user/52604.xls
Gruß
Franz

Anzeige
AW: automatischer Import - Fragen
25.05.2008 14:43:42
Maris
Hi Franz,
also ich bin schwer beeindruckt! Dein Makro funktioniert sogar mit einer Datei die ein kleines wenig anders aufgebaut ist (Siehe Anhang). Ein Kleinigkeit wäre noch, da ich den Cod leider nicht versteht. Ist es möglich alle Währungskurse aus der Datei zu importieren? Wenn du mir kurz erklären könntest was ich ändern muß würd ich selbst basteln wenn zu kompliziert ist! Tausend Dank!
Gruß
Maris
https://www.herber.de/bbs/user/52607.txt

AW: automatischer Import - Fragen
25.05.2008 15:51:00
fcs
Hallo Maris,
trage die anderen Währungen in den Spalten der Zeile 1 ein.
Ich hab die Hauptprozedur wie folgt angepasst, so dass die Spalten mit den Wärungskürzeln in For-Next -Schleifen abgearbeitet werden. Die letzte Spaltennummer muss du im Code noch anpassen.
Gruß
Franz

Sub KursImport()
'Kurse einlesen aus Text-Dateien im Verzeichnis bis zum aktuellen Datum
Dim objWks As Worksheet
Dim lngZeile As Long, lngSpalte As Long
Dim datDatumWks As Date, datDatumTxt As Date, strDatum As String
Dim strDateiKurse As String
Dim bolNeu As Boolean
Set objWks = ThisWorkbook.Worksheets(1)
With objWks
'Letze Zeile und Datum in Tabelle ermitteln
lngZeile = .Cells(.Rows.Count, 1).End(xlUp).Row
If lngZeile = 1 Then
'Es sind noch keine Kurse eingetragen
'Kurse aus allen vorhandenen Text-Dateien einlesen
'Suchstring für Dir-Funktion
strDateiKurse = strVerzKursTxt + Application.PathSeparator _
& strDateiKurseAnfang & "*.txt"
'Dateien suchen
strDateiKurse = Dir(pathname:=strDateiKurse, Attributes:=vbNormal)
If strDateiKurse = "" Then
strMsg = "im Verzeichnis """ & strVerzKursTxt _
& """ sind keine Wechselkursdateien vorhanden!"
lngBoxButton = vbOKOnly + vbInformation
MsgBox Prompt:=strMsg, Buttons:=lngBoxButton, Title:=strBoxTitel
GoTo Beenden
Else
bolNeu = True
Do Until strDateiKurse = ""
'Datum aus dem Dateinamen ermitteln
strDatum = Mid(strDateiKurse, 14, 8)
'Datum eintragen
lngZeile = lngZeile + 1
If IsDate(strDatum) Then
.Cells(lngZeile, 1).Value = CDate(strDatum)
Else
.Cells(lngZeile, 1).Value = strDatum
End If
'Verzeichnis zum Dateinamen hinzufügen
strDateiKurse = strVerzKursTxt + Application.PathSeparator & strDateiKurse
For lngSpalte = 2 To 17     '17 entspechend letzte Spalte mit Währung anpassen###
'Kurs für Währung in Zeile 1 der Spalte einlesen
.Cells(lngZeile, lngSpalte).Value = fncKurs_Import(strWaehrung:= _
.Cells(1, lngSpalte).Value, strTxtDatei:=strDateiKurse)
Next
strDateiKurse = Dir
Loop
'Einträge nach Datum sortieren
.Range(.Cells(2, 1), .Cells(lngZeile, 3)).Sort _
Key1:=.Cells(2, 2), Order1:=xlAscending, Header:=xlNo
End If
Else
'letztes eingetragenes Datum
datDatumWks = .Cells(lngZeile, 1).Value
'Text-Dateien bis zum aktuellen Datum suchen
For datDatumWks = datDatumWks + 1 To Date
strDateiKurse = strVerzKursTxt + Application.PathSeparator _
& strDateiKurseAnfang & Format(datDatumWks, "DD.MM.YY") & ".txt"
If Dir(pathname:=strDateiKurse, Attributes:=vbNormal) = "" Then
'do nothing, keine Datei vorhanden
Else
bolNeu = True 'Neue Dateien gefunden
'Datum eintragen
lngZeile = lngZeile + 1
.Cells(lngZeile, 1).Value = datDatumWks
For lngSpalte = 2 To 17    '17 entspechend letzte Spalte mit Währung anpassen###
'Kurs für Währung in Zeile 1 der Spalte einlesen
.Cells(lngZeile, lngSpalte).Value = fncKurs_Import(strWaehrung:= _
.Cells(1, lngSpalte).Value, strTxtDatei:=strDateiKurse)
Next
End If
Next
End If
If bolNeu = True Then
strMsg = "Wechselkurs Daten wurden aktualisert." & vbLf & vbLf _
& "Letztes gefundenes Datum: " & Format(.Cells(lngZeile, 1).Value, "D. MMMM, YYYY")
Else
strMsg = "Es wurden keine aktuellen Wechselkurs Daten gefunden." & vbLf & vbLf _
& "Letztes Datum: " & Format(.Cells(lngZeile, 1).Value, "D. MMMM, YYYY")
End If
lngBoxButton = vbOKOnly + vbInformation
MsgBox Prompt:=strMsg, Buttons:=lngBoxButton, Title:=strBoxTitel
End With
Beenden:
'Datei speichern
If ThisWorkbook.Saved = False Then ThisWorkbook.Save
'Fehlerbehandlung
Fehler:
If Err.Number  0 Then
strMsg = "Fehler-Nummer: " & Err.Number & vbLf & Err.Description _
& vbLf & vbLf & "Prozedur: KursImport"
lngBoxButton = vbOKOnly + vbExclamation
MsgBox Prompt:=strMsg, Buttons:=lngBoxButton, Title:=strBoxTitel
End If
'Objekte und Application-Einstellungen zurücksetzen
End Sub


Anzeige
AW: automatischer Import - Fragen
25.05.2008 18:37:24
Maris
Hi nochmal!
der Code funktioniert leider nicht! Sub oder funktion nicht definiert!
fncKurs_Import
Ausserdem bin ich wahrscheinlich zu blond... ich versteh leider nicht was du mit der letzten Spalte im Code anpassen meinst...
Gruß
Maris

AW: automatischer Import - Fragen
26.05.2008 00:22:00
fcs
Hallo Maris,
du hast doch die Datei bekommen, die funktioniert.
Dort ersetzt du die vorhandene Prozedur KursImport durch die neue Version. Die anderen Prozeduren müssen natürlich bleiben.
Ich dachte das dein VBA-Status "bescheiden" bereits ausreicht, um das zu erkennen.
Mit Spalte anpassen ist folgendes gemeint:
Nachdem du deine Kurse alle in den Spalten der Zeile 1 eingetragen hast muss das Makro natürlich wissen, wieviele Spalten es abarbeiten soll.
Die 1. Spalte mit Währungskürzel ist die 2. Spalte (B) und bis zur letzten Spalte muss du halt durchzählen und dann ggf. die 17 durch den Wert ersetzen. Unter VBA-Programmierung ist es einfacher Zeilen und Spalten mit nummerischen Werten anzusprechen, also mit der Z1S1- statt mit A1-Schreibweise zu arbeiten. Bei Excel-Status "gut" würde ich erwarten, dass dein Verständnis für Prozedur-Code bereits soweit reicht.
Gruß
Franz

Anzeige
AW: automatischer Import - Fragen
26.05.2008 17:08:00
Mazilu
Hi Franz,
das habe ich auch alles gemacht, so wie beschrieben hast, habs ausgeführt nachd er Beschreibung im Code. War gestern wahrscheinlioch vor lauter Excel zu verwirrt um des zu raffen was du dann auch noch geschrieben hast SoRRY!
Jedoch ist da ein anderes Problem undzwar bekomme ich die Fehlermeldung: Sub oder funktion nicht definiert!
die variable fncKurs_Import wurde nicht definiert!
Des ist mein eigentliches Problem.
Gruß
Maris

AW: automatischer Import - Fragen
26.05.2008 17:49:05
Mazilu
OK hab jetzt meinen Fehler gefunden! Funktioniert wunderbar! Dickes Lob... Es spitze!
Gruß
Maris

Anzeige
AW: automatischer Import - Fragen
27.05.2008 12:01:00
Mazilu
Hallo Franz,
ich hab doch noch ein kleines Problemchen!
Ich habe jetzt in der Wechselkursdatei per hand alle Wechselkurse 01.01.2008 - heute eingetragen und ab heute will ich eigentlich den import nutzen. Leider funktioniert der aber nicht wenn ich davor was eingetragen habe!
Maris

AW: automatischer Import - Fragen
27.05.2008 16:27:00
fcs
Hallo Maris,
damit der Import funktioniert müssen die Währungskurse in Zeile 1 der Tabelle stehen (Spalte B bis ...)
In Spalte A muss ein Datum stehen. Hier muss ein echtes Exceldatum (als Zahl) stehen und kein Datum als Text!! Die Spalte A darf nicht als Text formatiert sein!!!
Ansonsten wüßte ich nicht, warum das Makro nicht funktionieren sollte wenn es ohne die eingefügten Zeilen funktioniert hat.
gruß
Franz

Anzeige
AW: automatischer Import - Fragen
28.05.2008 00:48:22
fcs
Hallo Maris,
jetzt bin ich beim Testen selber fast narrisch geworden.
Ich hab deine Datei geöffnet, den Pfad an meine Tests angepasst. Zack die Datei-Daten wurden geladen.
Aber danach wurden keine weiteren Dateien mehr gefunden, zum Verrück werden.
Nach langem Probieren hab ich es dann endlich gefunden.
Die Dir-Funktion mag es nicht wenn im Datei-Suchstring mehrere Punkte vorkommen. Deshalb wurde der komplete Dateiname mit Datum (inkl. 2 weiteren Punkten) nicht gefunden. Da ich auch nach Einführung der langen Dateinamen unter Windows nie weitere Punkte im Dateinamen verwende war mir dieses "Problemchen" nicht gegenwärtig.
Du muss das Datum im Datum der Wechselkurs-Dateien anders eingeben. Ich hab das Makro so umgestrickt, dass das Datum im Format JJJJMMTT eingebaut werden muss.
Beispiel: Wechselkurse 20080527.txt
Außerdem ist mir aufgefallen, dass du scheinbar den Kurs in Units/EURO einlesen haben möchtest.
Dazu musste ich die Auswertefunktion für den Text-String anpassen.
Du kannst jetzt über eine Konstante einstellen, welche Umrechnung du in die Datei einlesen möchtest.
https://www.herber.de/bbs/user/52657.xls
Gruß
Franz

Anzeige
AW: automatischer Import - Fragen
28.05.2008 08:52:45
Mazilu
Hi Franz,
sorry das ich nochmal nerven muß aber auch mit diesem import funktioniert das makro nicht. Er findet bei mir immer noch nichts. Das makro funktioniert nur wenn ich alles lösche und den import mache liest er die Datei ein....
gruß
Maris

AW: automatischer Import - Fragen
28.05.2008 16:37:09
fcs
Hallo maris,
ich hab es jetzt nochmals getestet auch auf einem anderen Rechner mit Verzeichnis im Netzlaufwerk.
Es funktioniert. Leere Liste Füllen ebeneso wie für einzelne Tage nachtragen.
Ich hab jetzt nochmals eine Anfangs-Prüfung eingebaut, ob ein Verzeichnis respektive Daten vorhanden sind.
Mehr geht jetzt nicht mehr.
https://www.herber.de/bbs/user/52677.xls
Gruß
Franz
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige