Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1004to1008
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
Inhaltsverzeichnis

Antwort @ Dirk N.

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

Betreff
Datum
Anwender
Anzeige
AW: Antwort @ Dirk N.
30.08.2008 01:33:17
Dirk
Hallo Jürgen,
das ist echt die finale Lösung !
Ich denke, diese Kontrolle mittels bedingter Formatierung sollte ausreichen - es sei denn, du hast eine bessere Idee...
"...was einen korrekten vom inkorrekten Import unterscheidet..."
Dafür scheint es aus meiner Sicht nur noch eine Möglichkeit zu geben:
Die vorletzte csv endet mit Saldo vom 01.07.08, die letzte csv beginnt mit Saldo vom 15.07.08 - es gibt also eine Lücke zwischen den Salden.
Dies wiederum kann nur passieren, wenn man bei der Bankabfrage einen Zeitraum für den csv-EXPORT festlegt, der nicht nahtlos an die vorherige Bankabfrage anschliesst.
Ist zwar unwahrscheinlich, aber dann soll dieser Fehler wenigstens irgendwie sichtbar werden...
Und da schien mir der Vergleich der beiden Salden mittels bed. Format die einfachste u. effektivste Variante zu sein...
Abschliessend möchte ich mich ausdrücklich für deine sehr nette Unterstützung bedanken !
Es hat richtig Spaß gemacht u. das Resultat ist wesentlich besser als ich es mir bei meiner Ausgangsfrage vorstellen konnte (ich hatte mich echt verrannt... ;-) ) !

Ich wünsche dir ein wunderschönes WE u. würde mich freuen, dir auch mal helfen zu können !
Natürlich außerhalb von EXCEL od. VBA, denn da macht dir sicherlich keiner so schnell etwas vor... ;-)
MfG Dirk
Anzeige
Kontrollfunktion
31.08.2008 01:38:54
Jürgen
Hallo Dirk,
gerne, war mir ein Vergnügen. Daher habe ich nochmal in die Tasten gegriffen, um eine einfache Protokollfunktion auf einem separaten Blatt einzubauen, in der der Zeitpunkt des Imports und aus der .csv-Datei jeweils Datum und Saldo der aktuellen und der vorangegangenen Abrechnung festgehalten wird. Durch eine bedingte Formatierung werden auch hier Abweichungen optisch hervorgehoben:
https://www.herber.de/bbs/user/55055.xls
Viel Spaß mit der Lösung, und ebenfalls ein schönes Wochenende bzw. guten Start in die Woche!
Gruß, Jürgen
Anzeige
AW: Kontrollfunktion
31.08.2008 22:53:25
Dirk
Hallo Jürgen,
deine neue Idee mit dem zusätzlichen Protokoll-Blatt ist sehr interessant - werde ich auch so übernehmen !
Allerdings sind dir 2 kl. "Flüchtigkeitsfehler unterlaufen:
1. Spaltenüberschriften passten nicht zum Code (ich habe aber lieber den Code angepasst; siehe unten)
2. Logikfehler in dem bed. Format (altes Datum ist immer neues Datum; gleiches gilt i.d.R. auch für die Salden) - aber ich verstehe die Grundidee u. werde darauf aufbauen...
Doch leider ist der Mensch nie mit dem zufrieden, was er hat... ;-)
In Spalte G des Protokolls, wollte ich nun auch den Namen (ohne Pfad) der csv-Datei haben, aus der importiert wurde.
Mit der untenstehenden Variante klappt das zwar, aber ginge dies auch ohne die zusätliche Variable Dateiname2 ?
Dim Dateiname2 As String
...
'holt die Saldo-Daten zu "Protokoll"
Set ProtokollStartZelle = Sheets("Protokoll").Range("a1").Offset(Sheets("Protokoll").Range("a1").CurrentRegion.Rows.Count, 0)
ProtokollStartZelle.Value = Format(Now, "dd.mm.yyyy, hh:MM:ss")
ProtokollStartZelle.Offset(0, 3).FormulaLocal = Inhalt(1)
ProtokollStartZelle.Offset(0, 4).FormulaLocal = Inhalt(2)
Zeile = Replace(Quelldatei.ReadLine, """", "")
Inhalt = Split(Zeile, ";")
ProtokollStartZelle.Offset(0, 1).FormulaLocal = Inhalt(1)
ProtokollStartZelle.Offset(0, 2).FormulaLocal = Inhalt(2)
'holt den csv-Dateinamen zu "Protokoll" (Spalte G)
Dateiname2 = Right(Dateiname, Len(Dateiname) - 18) '*** zu umständlich ? ***
ProtokollStartZelle.Offset(0, 6) = Dateiname2 '*** zu umständlich ? ***
...
Ich wünsche dir ebenfalls einen guten Wochenstart u. eine erfolgreiche Woche mit weniger "nervenden" Fragestellern... ;-)
MfG Dirk
Anzeige
AW: Kontrollfunktion
01.09.2008 09:04:00
Jürgen
Hallo Dirk,
an einer weitere Variable ist grundsätzlich nichts auszusetzen, der Lesbarkeit halber (insbes. wenn die Code zur Ermittlung lang ist) möglicherweise sogar angeraten. Da der Code aber kurz ist und die Variable im weiteren Verlauf nicht weiter benötigt wird, könnte man die beiden Codezeilen auch zusammenfassen:
ProtokollStartZelle.Offset(0, 6) = Right(Dateiname, Len(Dateiname) - 18)
Was mich aber an diesem Code stört, ist die Festlegung auf 18-stellige Dateinamen, schöner wäre es, den Dateinamen felxibel zu ermitteln. Klassisch könnte man das lösen, indem man nach der Position des letzten "\" sucht. Da im vorangehenden (hier nicht sichtbaren) Code aber bereits eine ObjektVariable "FSO" auf das FileSystemObject gesetzt wird, läßt sich die Aufgabe auch so recht bequem und vor allem flexibel lösen:
ProtokollStartZelle.Offset(0, 6) = FSO.GetFileName(Dateiname)
Übrigens: obwohl das FileSystemObject-Objekt kein Bestandteil von VBA ist, ist es auch in der VBA-Hilfe dokumentiert (Nach "FileSystemObject" suchen). Da es sehr nützliche Funktionen rund um den Umgang mit Dateien und Dateinamen bereitstellt, kan ich nur empfehlen, mal ein wenig in der Hilfe zu stöbern. Oder für einen umfangreichenren Überblick im VBA-Editor (sofern das aktuelle Projekt bereits einen Verweis auf die "Microsoft Scripting Runtime" enthält) auf F2 drücken und in der Liste der Bebliotheken "Scripting" auswählen (mit F7 gelangt man zur Codeansicht zurück)
Gruß, Jürgen
Anzeige
AW: Kontrollfunktion
01.09.2008 15:18:14
Dirk
Hallo Jürgen,
ProtokollStartZelle.Offset(0, 6) = FSO.GetFileName(Dateiname)
Genau das hatte ich gesucht, allerdings ohne deine Hilfe zur Hilfe (-Funktion im VBA-Explorerfenster) hätte ich das wohl nie gefunden...
Tja, ohne zu wissen wo man suchen muß, konnte eben nur meine umständliche Variante dabei herauskommen... :-(
Auch mich störte: "...die Festlegung auf 18-stellige Dateinamen..." - aber beim Stöbern hier im Archiv hatte ich nichts anderes gefunden - zumindest nicht mit meiner Suchanfrage: String & abschneiden ...
Was hätte ich direkt bei Google wohl mit dieser Anfrage gefunden ?
Wäre bestimmt lustig aber weniger produktiv geworden... ;-))

Doch glücklicherweise konntest du dich mal wieder ausgezeichnet in mein Vorhaben hineindenken, mein eigentliches Ziel erkennen u. hast sogar an evtl. auftretende Probleme gedacht (s. Flexibilität).
Besonders nett finde ich auch, daß du mir verschiedene Lösungswege aufgezeigt hast - einmal aufbauend auf meine Herangehensweise u. zum anderen deine Variante.
Einmal mehr also besten Dank für deine Lösungen, Erläuterungen u. weiterführenden Tipps !
Diese "Privataudienz" in diesem u. auch "unserem" vorangegangenen Thread hat mir sehr geholfen u. das Resultat ist nun wohl PERFEKT !

MfG Dirk
Anzeige
AW: Kontrollfunktion
31.08.2008 23:15:53
Dirk
Hallo nochmal,
vermutlich basierte deine Logik bezüglich des bed. Formates aus den dir vorliegendeb csv-Beispielen.
Sorry, ich hatte nur die Buchungs-Datensätze angepasst, aber nicht die "letzten beiden Zeilen" - deren Korrektheit war bis dato ja auch nicht wichtig...
Hier mal ein "Kompendium" mit korrekten csv-Mappen.
MfG Dirk
AW: Kontrollfunktion
31.08.2008 23:51:00
Dirk
Hallo nochmal,
mit dem geänderten Code (s. mein vorletztes Posting / Spaltenanpassung an die Spaltenüberschrift) macht auch deine bedingte Formatierung wieder Sinn - sorry, hatte ich erst jetzt getestet...
MfG Dirk
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige