1.4k Aufrufe
Gefragt in Tabellenkalkulation von quintessenz Einsteiger_in (7 Punkte)
Hallo zusammen,

ich bräuchte dringend eure Hilfe bei einer VBA-Programmierung.
Leider bin ich ein Greenhorn was das angeht, so dass ich hoffe,
dass mir einer von euch, in welcher Form auch immer, behilflich
sein kann.

Die Aufgabe besteht aus 2 Teilbereichen:

1: Sie finden angehängt eine Beispielsdatei mit Datensätzen.
Gehen Sie davon aus, dass Sie mehrere dieser Dateien gleichzeitig
geöffnet haben. Diese unterscheiden sich hinsichtlich Dateinamen
und Datensätze (die Struktur ist jedoch immer gleich; die Länger der
Datensätze soll variabel sein)
Schreiben Sie ein VBA Programm in den Auswertungensfile, das
alle Datensätze aus den geöffneten Dateien auf das entsprechende
Arbeitsblatt Ihres Auswertungsfiles übernimmt (die Länge der
Datensätze endet bei der Markierung EndHisSheet)
Nach Auslesen der Datensätze sollten die Dateien geschlossen
werden, ohne dass sie gespeichert werden.
Die VBA Routine soll mit einem Button gesteuert werden.

Da habe ich schon einen Quellcode, allerdings funktioniert der nur,
wenn ich beigefügte Datensatztabellen 1 und 2 geöffnet habe. Ist
Datensatz 3 auch geöffnet, zeigt er mir einen Laufzeitfehler an.
Leider komme ich nicht auf die Lösung.

2: Anschließend sollen in der zusammengefügten Liste aus der
Quelldatei die Noten zugeordnet werden. (in der Quelldatei steht
100 für eine 1,0, 130 für eine 1,3 usw... NE steht für nicht
erschienen.
Ist der Datensatz eines Studierenden vorhanden, wurde aber keine
Note ermittelt, so soll dem Studenten als Note "NE" zugeordnet
werden.
Alle mit den entsprechenden Noten ergänzte Datensätze sollen in
eine Datei per VBA übernommen werden, die der Struktur der
Beispielsdatei entspricht.
Verknüpfen Sie die Routine mit einem Button.
ACHTUNG: Beachten Sie beim Einlesen und Schreiben der
Datensätze die Markierungen der Beispielsdatei für den Start und
das Ende der Datensätze!


Ich hoffe, das ich das Problem verständlich erläutert habe und hoffe
auf eure Hilfe jeglicher Art :)

Grüße

Hier sind die Dateien hochgeladen:
http://www.file-upload.net/download-8119523/VBA.rar.html

3 Antworten

0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
benutze diese Lösung
Lösung

Gruß Hajo
0 Punkte
Beantwortet von quintessenz Einsteiger_in (7 Punkte)
Habe die Lösung eingefügt, es funktioniert jedoch weiterhin nur bei den
Datensätzen 1 + 2, bei Datensatz 3 zeigt er mir weiterhin den
Laufzeitfehler '6' Überlauf an. Gehe ich in nun auf Debuggen wird
folgende Zeile markiert:

X = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count,
1).End(xlUp).Row, .Rows.Count)

Zur Erinnerung: Datensatz 3 hat mehr Datensätze als die anderen
beiden, evtl. liegt es daran? Nur wie stelle ich das im Code um?
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
das ist der Vorteil von Crossposting, man darf die Lösung selber anpassen.

Gruß Hajo
...