Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1216to1220
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

Spalte errechnen

Spalte errechnen
Klaus
Hi, ich hab ein kleines Problemchen.
Ich arbeite sehr viel mit Quicken. Leider gibt es darin ein paar Features, die ich sehr oft benötige, nicht. Aber man kann daraus Daten nach Excel exportieren. Dazu hatte ich mir einen Makro geschrieben, der auch funktionierte. Nun gibt es eine neue Version von Quicken und man glaubt es kaum, es gibt Änderungen beim Export oder aber ich habe nun ein paar Datensätze erwischt, die zusätzliche Infos enthalten, die bisher eben leer waren und daher im Export fehlten. Dabei handelt es sich beispielsweise um eine Splittbuchung. Bei normalen Buchungen gibt es nur ein Feld, dass den Betrag enthält. Bei Splittbuchungen können nun aber zum zuvor genannten "Gesamtbetragsfeld" bis zu 30 Einzelbeträge belegt werden, ebenso dazu jeweils eine Kategorie und ein Verwendungszweck. Das Exportfile (qif-format - kann man aber mit einem Texteditor einfach ansehen) ist relativ einfach aufgebaut. Je Datensatz wird einfach untereinander der Feldinhalt aufgelistet. Jedem Feldinhalt geht ein Buchstabe voraus, der das Feld deklariert. Am Datensatzende steht dann einfach ein ^. Mein Makro soll diese Daten in ein bestimmtes Format umwandeln, so dass jeweils in einer Zeile ein Datensatz steht.
Wie bereits erwähnt, hat das bisher auch geklappt. Aber mit Splittbuchungen geht es nicht. Der Grund ist mir schon klar, aber ich habe zu wenig VB Kenntnisse um eine Lösung zu finden.
Solange jeder Datensatz gleich viele Zeilen enthielt war es einfach. Ich habe mit einer Range Anweisung (Beispiel: Range("L" & Zielzeile).Select) das Ziel anvisiert und dann dort hinein die entsprechenden Daten hineinkopiert - ggf. nach vorheriger Umwandlung ins gewünschte Format. Danach die nächste Zeile des Datensatzes in die nächste Spalte usw. Am Schluß standen dann alle Daten immer in den Spalte L bis R.
Bei Splittbuchungen kommen nun aber je Splittzeile ggf. jeweils 3 Zeilen dazu, also hier konkret immer
S******
E******
$******
S******
E******
$******
usw. je nachdem wie viele Splittzeilen genutzt wurden.
Was ich suche ist eine Formel oder Möglichkeit, wie ich die nächste freie Spalte "errechnen" kann, denn ich brauche ja für meine Range - Anweisung einen festen Buchstaben. Vielleicht ist aber bereits das mein Denkfehler und man kann die Zielzelle auch anderweitig anspringen?
Ich müsste also beispielsweise in eine Variable immer die zuletzt belegte Spalte setzen. Für den Fall, dass es Splittzeilen gibt, werden diese entsprechend in die nächsten Spalten plaziert, gibt es keine, dann nicht.
Im Ergebnis enden dann beispielweise normale Datensätze im Spalte R während Datensätze mit 30 Splittzeilen (je 3 Felder) dann 90 Spalten weiter rechts enden würden (also 4 oder 5 Splittzeilen sind sicherlich bisher das Maximum, aber mit der richtigen Formel/Anweisung ist das ja egal).
Ich suche also eine entsprechende VB Anweisung, mit der ich die Zielzelle jeweils errechnen oder hochzählen kann.
Hat jemand einen Tipp für mich, wäre super. Danke im Voraus!

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Spalte errechnen
16.06.2011 13:42:00
oberschlumpf
Hi Klaus
Hi, ich hab ein kleines Problemchen
Und dazu hast du im Arm ne Menge Power, damit du sooo viiieeel Text schreiben kannst.
Und wie denkst du, können wir dir helfen?
Sollen wir nach deinen "Angaben" eine Datei erstellen (damit wir testen können), die bei dir doch schon lange vorhanden ist, oder stellst du uns "freiwillig" ne Bsp-Datei mit deinem Code + Bsp-Daten zur Verfügung?
Ciao
Thorsten
AW: Spalte errechnen
16.06.2011 14:43:35
Klaus
Hallo Thorsten,
OK OK, ich dachte halt ich schreib mal auf, wozu ich den Makro verwende.
Letztendlich fehlt mir ja aber nur eine Funktion, mit der ich die Zielzelle nicht fix nennen muss, sondern auf Basis der zuletzt benutzten (Spalte) ermitteln kann.
Also anstelle von Range("A1").select etwas in der Art: Zuletzt verwendete Spalte war A, Spalte A + 1 Spalte dazu gibt Spalte B also ist die nächste Zelle Range("B1"). Wobei ich die Zeilennummer ja bereits mit einer Variablen "Zielzeile" ersetzt habe.
Natürlich kann ich ein File senden, wenn das notwendig ist.
Gruß
Klaus
Anzeige
AW: Spalte errechnen
16.06.2011 15:23:03
oberschlumpf
Hi Klaus
Hey, es ist voll ok, dass du so viel geschrieben hattest - besser so, als nur 1 oder 2 Sätze.
Mich störte halt nur, dass keine Bsp-Datei mit dabei war.
Aber die benötige ich glaube ich nicht mehr.
Wenns nur um die letzte benutzte Spalte geht, dann versuch mal das hier:
Cells(1, Columns.Count).End(xlToLeft).Column

Dieser Befehl sucht in der ERSTEN ZEILE nach der letzten, genutzten Spalte
Wenn du eine andere Zeile überwachen musst, dann ersetz die 1 durch DeineZeilenNummer.
Hilfts?
Ciao
Thorsten
AW: Spalte errechnen
17.06.2011 11:09:28
Klaus
Hallo Thorsten,
genau das ist es. Super, vielen Dank!
Gruß
Klaus
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige