Live-Forum - Die aktuellen Beiträge
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
Duplikate, Zeilen einfuegen...
22.08.2008 20:41:00
Dirk
Hallo euch allen,
bin mal wieder an einem Punkt angelangt, wo ich allein nicht weiterkomme u. Gefahr laufe, frühzeitig zu ergrauen... ;-)
Eine detaillierte Beschreibung befindet sich in dieser Beispielmappe (gezippt, 2 Dateien).
Folgende Themen werden berührt:
-- csv-Import in xl (eine kl. csv ist enthalten) - das funktioniert aber schon einwandfrei.
-- Duplikate finden u. löschen - Daten dabei in 2 versch. Blättern + Vergleich auf Übereinstimmung in den Spalten A bis G
-- Zeilen einfügen (Ort u. Anzahl entsprechend von Zellwerten aus einem anderen Sheet) - Formate, Formeln u. Gültigkeits-DropDowns aus den darüberliegenden Zellen "mitziehen"...
Die Anmerkungen befinden sich im 1. Sheet - im 2. Sheet sind die CommandButtons u. im 3. Sheet sollen die "bereinigten" Datensätze angefügt werden...
Für so manchen Profi hier im Forum bestimmt ein Klacks, aber ich bin mit meinem Latein am Ende.
MfG Dirk

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Duplikate, Zeilen einfuegen...
23.08.2008 17:27:00
Dirk
Hallo nochmal,
da hat sich in der Test.xls ein Fehler eingeschlichen - SORRY.
Im CommandButton4 fehlt gleich zu Anfang der Aufruf des Makros ZeilenNr_Kop
(dieses Makro steht gleich im 1. Modul namens allgemein_csv )
MfG Dirk
AW: Duplikate, Zeilen einfuegen...
24.08.2008 21:54:00
Jürgen
Hallo Dirk,
da Dein Beitrag nun schon seit 2 Tagen unbeantwortet blieb, versuche ich mich nun daran. Nach Betrachtung Deiner Datei bleiben einige inhaltliche Fragen offen (z.B. was macht Datensätze zu Duplikaten?), zum anderen der Eindruck, dass die bisherige Lösung unnötig kompliziert und aus Bruchstücken zusammengefügt wurde - mit nachteiligen Folgen. Beispiel: beim Einlesen der .csv-Datei wird jedesmal eine neue (=zusätzliche) Abfrage erzeugt, statt die vorhandene anzupassen.
Mein Eindruck ist zudem, dass die Möglichkeiten einer Abfragetabelle (per "Daten - Externe Daten importieren - Daten importieren") nicht ausgeschöpft werden. Über die Datenbereichseigenschaften (Rechtsklick in den Bereich der Abfrage) kannst Du z.B.
- dieser einen sprechenden Namen vergeben. Der Bereich der Abfrage erhält dann automatisch einen gleichnamigen Bereichnamen, der bei jeder Aktualisierung so angepasst wird, dass er die zuletzt importierten Daten umfasst - sehr praktisch also, um darauf Formeln zu beziehen oder in Makros darauf zuzugreifen
- den Anwender vor der Aktualisierung die zu importierende Datei auswählen lassen
- die Option "Formeln in angrenzenden Zellen ausfüllen" aktivieren, um zusätzliche Spalten (in denen z.B. per SVerweis aus anderen Tabellenbereichen Imformationen herangezogen werden) automatisch passend zum Importbereich erzeugen zu lassen.
Zudem erspart Dir die Nutzung der Abfrage auch das Löschen des Importbereichs- beim nächsten Import wird er ohnehin "geputzt".
Ich befürchte, bei der Lösung von Detailproblemen hast Du das Ganze ein wenig aus den Augen verloren. Der Import von Datensätzen und deren Übertrag in eine Sammeltabelle sollte sich einfacher gestalten lassen - Abfrage + eine VBA-Prozedur könnten ausreichen.
Gruß, Jürgen
Anzeige
AW: Duplikate, Zeilen einfuegen...
25.08.2008 06:40:02
Dirk
Hallo Jürgen,
vielen Dank für deine sehr guten Anregungen...
Deiner Einschätzung: "Ich befürchte, bei der Lösung von Detailproblemen hast Du das Ganze ein wenig aus den Augen verloren." muss ich leider vollkommen zustimmen.
Sie ist echt nur "aus Bruchstücken zusammengefügt" - aus Mangel an Kenntnissen in VBA konnte ich mir nur so behelfen.
Duplikate sind Datensätze dann, wenn die Werte in den Spalten A, C u. E exakt übereinstimmen.
Hierzu auch meine aktuellste Beispielmappe. Mein ursprügliches Vorhaben, die Datensätze in 2 Sheets zu vergleichen - eigentlich wollte ich in "Umsätze" nur einfügen u. nix mehr weiter bearbeiten - habe ich verwerfen müssen. Zum einen habe ich dazu nichts im Archiv gefunden u. zum anderen kriegte ich das allein nicht hin...
Obwohl eine Lösung immer noch sehr interessant wäre...
"beim Einlesen der .csv-Datei wird jedesmal eine neue (=zusätzliche) Abfrage erzeugt, statt die vorhandene anzupassen"
Wie kann ich das Erzeugen einer zusätzlichen Abfrage verhindern od. die vorhandene Abfrage anpassen - ohne allerdings mittels Rechtsklick auf den Datenbereich - es soll alles ausschließlich über die CommandButtons gesteuert werden... ?
Jede csv hat andere Dimensionen - Zeilen- u. Spaltenanzahl variieren. Wird dies auch bei einer "fixen" Namensvergabe berücksichtigt ?
Warum sollte der Anwender die csv manuell auswählen? Im gleichen Ordner befindet sich entweder nur eine csv u. wenn mal vergessen wurde, die bereits "verarbeitete csv" zu löschen, dann wird ja automatisch die "jüngste csv" herangezogen...
"Option "Formeln in angrenzenden Zellen ausfüllen" aktivieren" - wo finde ich diese Option ?
*****************************************************************************
Augenscheinlich bist du im Umgang mit xl u. VBS wesentlich versierter als ich.
Hast du vllt. auch eine Idee, wie ich das Einfügen von x-Zeilen (gemäß der "vordefinierten Anzahl") an der entsprechenden Stelle in "Umsätze" (ebenfalls "vordefiniert") bewerkstelligen kann ?
Um den Überblick nicht vollends zu verlieren, würde ich diesen Gedankengang gern zuende bringen.
Damit wäre mein "jetziges Projekt" dann abgeschlossen u. ich hätte schonmal eine lauffähige Version...
Außerdem könnte ich dieses Feature auch für andere Mappen gut gebrauchen...
*****************************************************************************
Danach kann ich mich dann "in aller Ruhe" ransetzen u. Verbesserungen etc. einarbeiten.
Wenn also du - od. natürlich auch jemand anderes - zunächst eine Lösung für das letztgenannte Problem hat, so könnte dies ein echt gelungener Wochenstart für mich werden... ;-)
MfG Dirk
Anzeige
AW: Duplikate, Zeilen einfuegen...
25.08.2008 11:32:00
Jürgen
Hallo Urs,
heute abend habe ich mehr Zeit, dann kann ich etwas tiefer einsteigen. Vorab aber einige Fragen:
Haben die .csv-Dateien tatsächlich unterschiedliche Anzahlen von Spalten? Gibt es eine maximale Anzahl Spalten bzw. eine fixe Anzahl relevanter Spalten bzw. woran erkennt man relevante Spalten? Oder meinst Du, dass nicht immer alle Spalten gefüllt sind? Damit wir nicht aneinander vorbeireden: eine Spalte beginnt in der .csv-Datei immer mit einem Trennzeichen (";" wenn ich mich recht entsinne). Vielleicht kannst Du noch eine zusätzliche .csv-Datei hochladen, die eine abweichende Spaltenzahl aufweist. Die variable Anzahl Zeilen ist übrigens kein Problem.
Zu den Duplikaten: überschneidet sich jeweils das Ende der einen mit dem Anfang der nächten .csv-Datei?
Gruß, Jürgen
Anzeige
AW: Duplikate, Zeilen einfuegen...
25.08.2008 15:34:26
Dirk
Hallo Jürgen,
zunächst einmal vielen Dank für dein Interesse - das stimmt mich gleich sehr viel zuversichtlicher !
Ich habe gerade kurz mit einem EDV-Berater meiner Hausbank telefoniert.
Es ist in der Tat so, daß die Spaltenanzahl variiert - sofern man bei csv überhaupt von Spalten reden kann, aber das macht die Verständigung einfacher...
Er erklärte mir das so: Je nach ausgewähltem Zeitraum auf der Bank-Homepage wird dann eine csv zusammengestellt - danach wird dann eine Art "Maske" darüber gelegt u. NUR das UsedRange (wie es in xl genannt wird) wird gesendet.
Auf meine Frage, warum "leere Spalten" nicht einfach mit ";" aufgefüllt werden u. somit immer eine konstante Spaltenanzahl gesendet wird, wurde ich auf die hauseigene Online-Banking-Software verwiesen - die Jahreslizenzgebühr will ja auch irgendwie gerechtfertigt sein...
Die max. Spaltenanzahl beträgt 17 (also Q), was in der Überschrift dem Verwendungszweck-8 entspricht...
Zu Überschneidungen kann es kommen, da auf der Bank-HP automatisch der aktuelle Saldo als Obergrenze u. als Untergrenze dieses Datum minus 1 Monat voreingestellt ist. Da ich diese csv-Daten an unterschiedlichen Wochentagen abrufe u. ich mir auch nicht das letzte Abrufdatum merke (die Bank merkt sich das auch nicht für mich u. ändert dementsprechend die Auswahlmaske... ;-) ), lasse ich es einfach bei diesen Voreinstellungen u. importiere alles.
Mit dem 3. CommandButton (CB) lösche ich ja dann wieder die "alten" Daten. Doch nun kann es auch noch vorkommen, daß die letzte Abfrage z.B. am 13.08.08 vormittags stattfand u. nachmittags noch etwas gebucht wurde (s. die mittlere csv-Beispieldatei). Somit kann es also auch zu mehreren Duplikaten (allerdings nur bei dem nun letzten Saldo-Datum) kommen. Also ist die nun noch verbleibende Anz. der Duplikate unbestimmt u. nicht vorhersehbar...
"überschneidet sich jeweils das Ende der einen mit dem Anfang der nächten .csv-Datei?" - JA, aber erst NACH dem 3. CB...
Behelfsmäßig habe ich dieses Problem bereits gelöst - s. vorherige Mappe - interessant wäre lediglich noch die Variante mit dem "Vergleich in 2 Sheets"...
Hier noch 3 csv-Dateien zum Experimentieren u. 1 xls mit der ich selber gerade bastele...
Würdest du dir bitte diesen Code mal anschauen u. mir sagen, wie ich den umbauen muss - Bezug zu den Zahlen in Spalte C des 1. Sheet ("csv-Info") u. könnte das dann auch in anderen Mappen gebrauchen...
Ich würde ihn gern für den 4. CB (CB5) benutzen... Wie gesagt: Ich würde gern zuerst das bestehende Projekt beenden u. danach dann die "Feinheiten" angehen...
MfG Dirk
(der nicht Urs heißt... Aber das ist mir auch schon passiert... Sollte also auch nicht peinlich sein... ;-) )
Anzeige
AW: Duplikate, Zeilen einfuegen...
26.08.2008 01:15:00
Jürgen
Hallo Dirk,
zuerst sorry für den falschen Namen - ist mir tatsächlich im Hitze des Gefechts durchgegangen...
Ich habe mir Deine zuletzt hochgeladene .xls-Datei angesehen, jedoch nicht nachvollziehen können, was Dein Ziel ist. Du schreibst etwas von Bezug zu den Zahlen in Spalte C des 1. Sheet ("csv-Info"), jedoch fehlt das Arbeitsblatt und / oder die Daten in Spalte C ?
Für Dein Import-Problem habe ich den "Gehe-zurück-auf-LOS"-Ansatz gewählt - nicht zuletzt weil die variable Anzahl der Spalten den Einsatz einer Abfrage für den Import ungeeignet macht. Daher findest Du anbei eine Lösung, die die Umsätze der jüngsten .csv-Datei im Verzeichnis der Excel-Datei importiert, d.h. sequentiell öffnet und die Inhalte (unter Berücksichtigung von Duplikaten) direkt an die richtige Stelle schreibt. Die in der .csv-Datei vorhandenen Saldeninformationen werden nicht berücksichtigt (mir war nicht klar, ob und wo sie benötigt werden).
https://www.herber.de/bbs/user/54911.xls
Noch ein paar Hinweise zum Code der Datei, die Du in Deinem vorletzten Beitrag hochgeladen hattest:
Eine Zeile wie
Dim aRow, nRow, iDazu As Range
erzeugt (anders als in anderen Programmiersprachen!) genau eine Variable vom Datentyp "Range" und zwei vom Datentyp "Variant", denn der Datentyp muss für jede Variable explizit angegeben werden, also z.B. so
Dim aRow As Range, nRow As Range, iDazu As Range
Dann kann man aber auch drei DIM-Statements schreiben (und z.B. daneben eine erläuternden Kommentar...)
Die Adressierung einer Zelle bzw. eines Bereichs über die Schreibweise "[a1]" ist zwar bequem (und für alte Lotus Script Veteranen ein Stück Heimat...), aber nichts für Performance-Fetischisten, da dahinter stets der Aufruf eines Evaluate-Statements steckt (siehe Hilfe zu Evaluate).
Gruß, Jürgen
Anzeige
AW: Duplikate, Zeilen einfuegen...
26.08.2008 14:44:00
Dirk
Hallo Jürgen,
"Ich habe mir Deine zuletzt hochgeladene .xls-Datei angesehen, jedoch nicht nachvollziehen können, was Dein Ziel ist. Du schreibst etwas von Bezug zu den Zahlen in Spalte C des 1. Sheet ("csv-Info"), jedoch fehlt das Arbeitsblatt und / oder die Daten in Spalte C ?"
Diese xls fand ich deshalb interessant, da über eine InputBox die Anzahl der einzufügenden Zeilen bestimmt werden konnte. Ich vermutete, daß diese Variante teilweise auch bei der Lösung meines Problems behilflich sein könnte.
Sorry, ich hätte besser schreiben sollen: Mit dem Makro aus dieser xls bastele ich gerade...
Doch nun zu deiner Beispielmappe:
Nach dem Makrostart passierte folgendes:
1. mehrere Systemwarnungen (konnte read-Befehl nicht ausführen... Anwendung wird beendet...) bezüglich MS-fremder Programme, die ich im Hintergrund laufen hatte
Diese wurden dann ganz od. teilweise geschlossen. Einige sogar derart zerschossen, daß sie neu installiert werden mußten - auch mein vorheriger Versuch der "Systemwiederherstellung zu einem früheren Zeitpunkt" konnte daran nichts ändern...
2. In xl erschien die Fehlermeldung: "Laufzeitfehler 62 - Einlesen hinter Dateiende" u. der Debugger sprang in die Zeile: Line Input #Quelldatei, Zeile
3. Natürlich wurde nun auch nichts importiert - dafür wurde aber meine Systemzeit auf den 01.01.1900 gestellt - was wohl auch die Ursache für die anderen Programmabstürze war...
War das ein übler Scherz od. lediglich ein Programmierfehler ?
MfG Dirk
Anzeige
AW: Duplikate, Zeilen einfuegen...
26.08.2008 23:37:00
Jürgen
Hallo Dirk,
erneut muss ich einen Beitrag mit "sorry" starten. Um Deine abschließende Frage zu beantworten: mit soetwas macht man keinen Scherze. Und ich sollte wohl so spät keinen Code mehr verfassen. Die Zeile
Date = DateSerial(1900, 1, 1)
muss natürlich lauten
Datum = DateSerial(1900, 1, 1)
Ein weiterer Flüchtigkeitsfehler fand ich in folgendem (nachstehend bereits korrigiertem) Codeabschnitt:
Do Until DateValue(Inhalt(0)) > LetzteZelle.Value Or LetzteZelle.Row = 4
If (DateValue(Inhalt(0)) = LetzteZelle.Value And CDbl(Inhalt(2)) = LetzteZelle.Offset(0, 2).Value And Inhalt(4) = LetzteZelle.Offset(0, 4).Value) Then
Set LetzteZelle = LetzteZelle.Offset(-1, 0)
Exit Do
Else
Set LetzteZelle = LetzteZelle.Offset(-1, 0)
End If
Loop
Es fehlte das "Set" nach dem "Else".
Die Fehlermeldung "Laufzeitfehler 62 - Einlesen hinter Dateiende" läßt sich eigentlich nur dadurch erklären, dass die jüngste gefundene .csv-Datei leer ist (wenn das erste Line Input #Quelldatei, Zeile
den Fehler auslöst) oder nicht dem vorgegebenen Aufbau entspricht. Da nichts importiert wurde, tippe ich auf ersteres. Das ist u.a. ein Grund, warum ich einen Dateiauswahl durch den User vorziehen würde (wenn es komfortabel sein soll, mit der wahrscheinlich gewünschten Datei als Vorauswahl).
Ich habe das nun korrigierte Makro mehrfach gestartet - jeweils ohne Fehlermeldung und mit erfolgreichem Import. Dabei wurde die Datei "Abc_123456789_000002_000003.csv" importiert.
Was ich übrigens noch zu erwähnen vergaß: die aktuelle Lösung erwartet in S5:Z5 bereits vorbereitete, mit Formeln versehene Zellen, damit das herunterkopieren funktioniert. Wenn das nicht gewährleistet ist, müssten die Formeln und Gültigkeitsprüfungen vom Code explizit eingefügt werden.
Nochmals sorry!
Gruß, Jürgen
Anzeige
AW: Duplikate, Zeilen einfuegen...
27.08.2008 17:00:12
Dirk
Hallo Jürgen,
wären meine VBA-Kenntnisse besser, dann hätte ich bestimmt den Irrtum bezüglich Date vs. Datum selber bemerkt - kleine Ursache. große Folgen... ;-) Glücklicherweise testete ich zuhause u. nach einer halben Stunde war alles wieder okay - also kein "Beinbruch"...
Schlimmer wiegt wohl ein Irrtum, dem ICH die ganze Zeit aufgesessen war - also vorab schon mal ein ein riesiges SORRY von mir !
Mit diesen "kleinen" Änderungen funktioniert dein Code nun bestens - zumindest mit den csv, die ich gepostet hatte... Ich hatte eine originale csv von der Bank genommen (per Doppelklick öffnete sie sich automatisch mit EXCEL). Darin nahm ich darin diverse Änderungen vor u. speicherte alles in xl als csv.
Und das war falsch, denn so wird tatsächlich der Aufbau verändert...
Nachdem bei mir der Debugger wiederum auf das 2. Line Input #Quelldatei sprang u. nichts importiert wurde, kam ich durch deinen Tipp darauf - "oder nicht dem vorgegebenen Aufbau entspricht ".
Geöffnet mit einem Texteditor wurde der Unterschied offensichtlich - hier mal 3 kl. Beispiele.
Die *Original.xls erzeugte ich mit einem Texteditor u. änderte danach die Endung manuell von txt zu csv.
Mit Texteditor geöffnet steht nun alles in einer Zeile - mit xl geöffnet, erscheint schon eine "simulierte Spaltenansicht"...- sorry, das bemerkte ich erst jetzt . Asche auf mein Haupt...
War jetzt deine ganze Arbeit umsonst - od. genügen kl. Anpassungen ?
Wie geschieht denn das sequentielle Öffnen der Quelldatei ?
Würde evtl. ein Öffnen mittels EXCEL Abhilfe schaffen (nur so mein laienhafter Gedankengang) ?
Wenn du jetzt das Handtuch werfen möchtest, dann könnte ich das total verstehen - angesichts meiner irrtümlöich falschen Angaben absolut akzeptabel !
Hast du jedoch Lust u. Zeit, dir das nochmal anzuschauen, so würde ich mich um so mehr freuen...
Egal wie du dich entscheidest, in jedem Fall schulde ich dir ein großes DANKESCHÖN für deinen Einsatz, den genialen Code, die guten Tipps u. erklärenden Worte u.u.u. !
MfG Dirk
Anzeige
AW: Duplikate, Zeilen einfuegen...
28.08.2008 00:29:00
Jürgen
Hallo Dirk,
da ist es wieder: Fluch und Segen der vielen kleinen Automatismen, mit denen uns Excel das Leben leichter macht, aber gleichzeitig im Dunkeln beläßt - auf dass wir darüber stolpern und auf die Nase fallen...
Nebenbei (auch auf die Gefahr hin, dass es Dir längst bekannt ist): wenn Du im Explorer eine Datei markierst und den Menüpunkt "Datei..." aufrufst, gibt es dort einen Menüpunkt "Öffnen mit" - falls nicht, erscheint er, wenn während des Klicks auf "Datei..." die SHIFT-Taste gedrückt wird. Über den Menüpunkt kann man auswählen, mit welcher Anwendung man die Datei öffnet. Damit ist das Umbennen von Dateien zum Zwecke des Öffnens mit der zugeordneten Anwendung nicht notwendig.
Das zeilenweise Einlesen der Datei ist das kleinere Problem (das passgenaue Einfügen war das schwierigere), so dass die notwendigen Anpasungen überschaubar waren. Ich bin nun davon ausgegangen, dass die von der Bank heruntergeladene Datei die Endung .csv trägt und die Datensätze nur mit einem LineFeed getrennt sind (die Datei also im Notepad in einer Zeile angezeigt wird). Hier ist eine Version, die dies berücksichtigt. Habe es zwar nicht getestet, aber sie sollte problemlos vertragen, wenn die Datei über Excel in dem Format vorliegt, wie Du es ursprünglich gepostet hattest.
https://www.herber.de/bbs/user/54981.xls
Das Öffnen und Auslesen der .csv-Datei erfolgt nun mit den Methoden, die das FileSystemObject bereitstellt - war für mich auch interessant und lehrreich, mal diesen Weg statt den über die alt-ehrwürdigen VBA-internen Funktionalitäten zu gehen.
Gruß, Jürgen
Anzeige
AW: Duplikate, Zeilen einfuegen...
28.08.2008 18:42:56
Dirk
Hallo Jürgen,
wären wir jetzt beim Bowling könntest du laut schreien STRIKE !
Dein letzter Vorschlag ist ein Meisterstück !

Die Sache mit dem "Öffnen mit..." ist mir zwar bekannt, aber ich nutze den Rechtsklick...
Mir ist aber klar, warum du die Tastaturvariante bevorzugst: So schnell, wie du hier die Codezeilen "reinhämmerst", wird dir wohl monatlich eine Tastatur verglühen, während der Wechsel zur Mouse dabei fast hinderlich ist u. sie somit ein trauriges Dasein am Schreibtischrand fristet... ;-)
Leider habe ich wieder etwas zu bemängeln:
Mit deiner Mappe funktionierte der Import reibungslos - sogar mit beiden csv-Varianten,, also sowohl mit dem Bank-Original, (einzeilig) wie auch mit einer in EXCEL erzeugten csv (spaltenähnlich).
Und da du alles kurz u. knackig in einem einzigen Modul untergebracht hast, war es dann nur eine Sache von Sekunden - Modul in meine Originaldatei kopiert, gestartet und... "Fehlermeldung..." + Debugger springt gleich auf die zweite Zeile zu Dim FSO As New FileSystemObject .
Du hast anscheinend meine VBA-Kenntnisse gewaltig überschätzt - denn ich wühlte mich mehr als 1 Std. durch die Hilfe, googelte u. grübelte - bis ich dann die Lösung fand:
---- Verweis zu Microsoft Scripting Runtime muß aktiviert werden ----
Das hättest du mir doch sagen müssen - ich stand schon kurz vor einem Herzinfarkt... ;-)
Doch die Freude über das Resultat wog das alles sofort wieder auf !
Beim "Durchspielen" sämtlicher Sonderfälle stiess ich auf ein kleines Manko:
Was du geschrieben hattest;
"...die aktuelle Lösung erwartet in S5:Z5 bereits vorbereitete, mit Formeln versehene Zellen, damit das herunterkopieren funktioniert. Wenn das nicht gewährleistet ist, müssten die Formeln und Gültigkeitsprüfungen vom Code explizit eingefügt werden."
ist so nicht ganz richtig.
Wenn der Bereich für die Datensätze - also ab Zeile 5 - leer ist, dann wird die Formatierung zerschossen. Ist ja auch eigentlich klar, denn es werden ja die Formate aus den darüberliegenden Zeilen gezogen. Außerdem steht ab T6 eine andere Formel in der Spalte als in T5 - es wird also ab T6 mit einer falschen Formel weitergerechnet...
Ich habe nun einfach in A5 bis A7 jeweils ein Datum eingetragen, welches auch kleiner als das erste Datum in der csv sein musste - dann die csv importiert u. danach die Zeilen 5 bis 7 mittels Gruppierung ausgeblendet (könnten auch gelöscht werden, aber dann müsste man auch die Formeln in T5 u. ab T6 händisch ändern).
Ist zwar etwas umständlich, aber angesichts dessen, daß sich dieses Procedere nur aller 5 Jahre wiederholt, absolut kein Problem - man muss es eben nur wissen...
Beim Testen mit wechselnden csv merkte ich dann auch, wie Recht du hattest:
"Das ist u.a. ein Grund, warum ich eine Dateiauswahl durch den User vorziehen würde (wenn es komfortabel sein soll, mit der wahrscheinlich gewünschten Datei als Vorauswahl)..."
Könntest du ein solches Feature noch in den Code einbauen ?
Die csv-Dateien befinden sich immer im gleichen Ordner wie die xls ; jüngste csv als Vorauswahl...
Wenn du noch immer Lust dazu hast, dann lass' dir auch ruhig Zeit - es ist nicht dringend.
Sollte dieser Thread dann schon im Archiv sein, kannst du mir auch direkt mailen (Addi im Quelltext).
MfG Dirk
AW: Duplikate, Zeilen einfuegen...
28.08.2008 23:22:16
Jürgen
Hallo Dirk,
leider überschätzt Du meine Tastaturkünste ;-) - aber per Copy & Paste läßt sich das etwas kompensieren...
Ich habe nun eine Version hochgeladen, die die Auswahl der zu importierenden Datei ermöglicht:
https://www.herber.de/bbs/user/55011.xls
Es erscheint ein Datei-Öffnen-Dialog, der im Verzeichnis der Excel-Datei startet. Leider ist es mir nicht geglückt, die jüngste Datei voreinzustellen UND die anderen verfügbaren anzuzeigen - dafür werden die Dateidetails angezeigt - ein Klick auf den Spaltenkopf des Dateidatums sortiert Dir die Dateiliste passend.
Den Code, der dadurch überflüssig geworden ist, habe ich entfernt.
Dass das Einfügen (direktes Eintragen) der Formeln per VBA nicht allein ausreichen würde, sondern zusätzlich die Formatierungen (inkl. der per Gültigkeitsprüfung erzeugten DropDown-Listen) erzeugt werden müssten, ging mir dann auch irgendwan durch den Kopf. Aber dieses Problem hast Du ja bereits gelöst.
Gruß, Jürgen
AW: Duplikate, Zeilen einfuegen...
29.08.2008 18:00:09
Dirk
Hallo Jürgen,
aber allein mit Copy & Paste ist es ja nicht getan - du hast bestimmt auch einiges danach ändern bzw. anpassen müssen... Aber vllt. hast du ja auch eine wassergekühlte Tastatur u. vermeidest somit eine Überhitzung ? ;-)
Die Sache mit dem Datei-Öffnen-Dialog ist dir prima gelungen !
Irritierend ist es zwar, daß nach dem einfachen Anklicken einer Datei diese dann nicht in dem unteren Feld "Dateiname:" erscheint, aber das stellt kein Problem dar.
Abschliessend hätte ich nur noch eine Bitte - dann wäre alles perfekt u. sogar besser, als ich es mir ursprünglich vorgestellt hatte:
Vorab erstmal die aktuellste Arbeitsmappe .
Wäre es dir möglich, aus der csv das Datum des gebuchten Saldos (nach B1) u. die Zahl dieses Saldos (nach C1) zu ziehen ? Gerade die Zahl des Saldos wäre mir wichtig...
Ich bin wohl doch irgendwie ein Kontrll-Freak u. würde daher gern den korrekten Import visualisieren.
Ist also beim Import etwas schiefgegangen od. es besteht sogar eine Lücke zwischen der letzten u. vorletzten csv (z.B. durch längere Abwesenheit bzw. falsche Bankabfrage), so würde dies dann durch die bedingte Formatierung sofort erkennbar werden...
Ich würde mich echt freuen, wenn du mir noch ein letztes Mal bei diesem "Projekt" helfen könntest !
MfG Dirk

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige