Thema Datum  Von Nutzer Rating
Antwort
Rot Excel-Tabelle Bereinigen
20.07.2016 10:41:14 Waldemar
NotSolved
20.07.2016 10:43:39 Waldemar
NotSolved

Ansicht des Beitrags:
Von:
Waldemar
Datum:
20.07.2016 10:41:14
Views:
1178
Rating: Antwort:
  Ja
Thema:
Excel-Tabelle Bereinigen
Hallo zusammen, bin neu hier, weil ich Hilfe bei der Programmierung eines Makros benötige. Hier die Beschreibung meines Problems: Eine Excel-Tabelle wird als Export-Datei aus einem anderen Programm erzeugt. Die Tabelle hat 14 Spalten und in jeder Zeile ist ein Datensatz zu einem bestimmten Vorfall mit Datum, Name des Bearbeiters, Kommentartext (Spalte 9, wichtig für die weitere Beschreibung),sowie weitere Informationen. Das eigentliche Problem ist, dass beim Export teilweise diese Zeilenstruktur durcheinanderkommt. Dadurch werden Teile einer Zeile in die darunterliegenden Zeilen verschoben. Konkret heißt das, dass der Text des Kommentars (Spalte 9) auf mehrere, darunterliegende Zeilen verteilt wird und der Text dann in Spalte 1 der darunterliegenden Zeilen steht. Die übrigen, hinter der Spalte 9 stehenden Informationen werden dann in der untersten Zeile dieses zerrissenen Datensatzes abgelegt, sodass die Spalten 10-14 des ursprünglichen Datensatzes der Zeile fehlen. Die Anzahl der Zeilen, auf die der Kommentar aufgeteilt wird, ist variabel. Es kann also sein, dass zu jedem Datensatz zw. 2 und ca. 10 solcher Zeilen hinzukommen. (Ich hoffe das ist verständlich formuliert, zur besseren Übersicht und Verständnis unten noch "bildlich" dargestellt) aa bb cc dd ee ff gg hh ii jj kk ll mm nn aa bb cc dd ee ff gg hh ii jj kk ll mm nn aa bb cc dd ee ff gg hh ii ii ii ii . . . jj kk ll mm nn aa bb cc dd ee ff gg hh ii jj kk ll mm nn aa bb cc dd ee ff gg hh ii jj kk ll mm nn Warum das Ganze passiert, ist mir rätselhaft. Es sind auch nicht alle Datensätze betroffen, sondern ca. 30 von ca. 1000 Einträgen. Bis jetzt wird das Ganze händisch in die richtige Form gebracht. Ich möchte nun ein Makro erstellen, welches die ursprüngliche Struktur automatisch wiederherstellt. Dazu muss es folgendes machen: -den Kommentartext (ii) zusammenführen -den Rest der fehlenden Zeile (jj-nn)an die richtige Stelle übertragen -entstandene Leerzeilen bzw. nicht mehr benötigte Zeilen löschen. Bei der Umsetzung hapert es noch ein wenig. Ich habe eine Schleife geschrieben, die die Tabelle durchgeht und abfragt, ob in einer Zeile jj der Eintrag fehlt. Wenn ja, dann ist eine solche zerstückelte Zeile vorhanden. Dann wollte ich, dass das Programm den Kommentar aus der jeweils darunterliegenden Zeile (ii in Spalte 1) in die richtige Zelle kopiert (ii Spalte 9 darüber) und dann die nun leere Zeile gleich löscht. Allerdings scheint es so, dass das nicht funktioniert, denn nur die erste Zeile (ii in Spalte 1) wird korrekt kopiert, die nachfolgenden Zeilen werden nur eine Zeile nach oben kopiert und stehen dann in der richtigen Spalte, aber in der falschen Zeile. Ich vermute, dass das Löschen einer Zeile und das Hochzählen des Laufindex da irgendwie Probleme macht. Ich wollte als nächstes einen anderen Ansatz ausprobieren: Eine Schleife sucht wieder nach der ersten Zeile, in der jj leer ist (genauso wie bei meinem ersten Ansatz). Wird eine solche gefunden, dann zählt er die leeren Zeilen bis wieder etwas in jj steht. Damit hätte man dann die Anzahl der Zeilen, die in die unvollständige Zeile eingebunden werden müssen. Dann müsste man nur noch über entsprechende Indizes zuweisen, welche Zeilen wie behandelt werden müssen. Dieser letzte Teil bereitet mir jedoch Kopfzerbrechen, weil ich nicht weiß, wie man die leeren Zeilen zählen kann und dann die Indizes zuweisen kann. Deswegen, nach langer Einleitung, hier meine Fragen: -Ließe sich mein zweiter Ansatz so wie von mir gedacht umsetzen und wenn ja, wie genau (eine grobe Anleitung reicht)? -gebe es eine andere Strategie, um die Aufgabe zu lösen? Vielleicht irgendetwas, woran ich noch nicht gedacht habe. Vielleicht kann mir auch jemand einfach sagen, wie er oder sie an das Problem herangehen würde und grob das Ganze darstellen. Ich bin selber alles andere als ein VBA-Kenner, habe nur Kenntnisse aus dem Studium und noch einige Aufzeichnungen. Solche Probleme waren jedoch nie dabei, auch nichts Ähnliches, was ich übertragen könnte. Und, wie bereits gesagt, ich erwarte keinen Code, den ich einfach nur kopieren muss. Ein paar Denkanstöße und Ideen reichen mir bereits aus. Vielen Dank im Voraus an Alle, die sich den langen Text angetan haben (sorry für eventuelle Fehler, bin kein Muttersprachler). Ich freue mich auf eure Antworten Beste Grüße Waldemar Kriger

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Excel-Tabelle Bereinigen
20.07.2016 10:41:14 Waldemar
NotSolved
20.07.2016 10:43:39 Waldemar
NotSolved