373 Aufrufe
Gefragt in Tabellenkalkulation von robbi58 Mitglied (966 Punkte)
Bearbeitet von robbi58

Ich kopfe seit 2 Tagen herum und bin bis jetzt nicht mal auf einen Lösungsansatz gekommen. Mein Chef meinte kürzlich zu mir, die gehst eh bald in Rente und arbeitest oft mit excel, da müsste es doch möglich sein...

Möglich schon, aber bisher habe ich mehrere Ansätze probiert, aber alle wieder verworfen.

Das Problem:

Jede Lehrperson trägt bei uns die Schulnoten ihres Faches in eine Excel-Tabelle ein. Pro Fach wurde eigens eine Mappe mit einem Tabellenblatt angelegt (siehe Bild oben). Das bedeutet: Pro Schulklasse sind es bis zu 20 Mappen (alle im selben Ordner gespeichert) mit unterschiedlichem Layout.

Diese Eintragungen sollten zum Schluss in ein WORD-Dokument eingefügt (Katalog), der ca 100 Seiten aufweist.

Problem 1: Ich muss die Daten aus allen Mappen für jeden Schüler extra auslesen. Z. B. stehen die Daten von Schüler Albert in der Mappe M1a in den Felder C5-C6 (leider verbunden) und von f5:I6. In der Mappe D1a stehen die Daten wiederum in c5-c6 und in den Zellen f5:j6. So müssen die Daten von Schüler Albert aus allen Mappen (ca. 20 Stück mit persönlichen Daten, noten, Eintragungen, etc. ausgelesen werden. Das könnte ich manuell hinkriegen. Aber bei ca. 24 SchülerInnen pro Klasse müsste ich das Prozedere fast unendlich oft wiederholen. Gibt es eine Möglichkeit, die Daten zu peronalisieren (z.B. über den Namen), dass dann alle Daten aus den Mappen entsprechend dem Namen ausgelesen werden können. Ich gehe davon aus, dass es sinnvoller ist, die Daten zunächst in Excel zusammenzuführen, bevor ich diese mit Word verknüpfe.

Wichtig ist auch, dass jede Änderung bei den Eintragungen automatisch in den Katalog übernommen wird.

Problem 2: Die Zusammenführung mit WORD. Da mache ich mir erst Gedanken, wenn ich Problem 1 gelöst habe. Falls nicht, bin ich dann eh schon in Rente und hinter mir die Sintflut.

Ich hoffe, dass mir jemand einen Tipp geben kann, wie ich an die Sache herangehen soll. Manchmal hilft ein Tipp von außen, weil ich irgendwie einen Tunnelblick habe.

Danke und LG von Robert

6 Antworten

+1 Punkt
Beantwortet von m-o Profi (22.7k Punkte)

Hallo Robert,

per Makro kann man sämtliche Dateien eines Verzeichnisses öffnen und dann auch bestimmte Daten auslesen. Über den Namen könnte man die einzelnen Daten auslesen (bei verbundenen Zellen, immer die erste Zelle beim Auslesen ansprechen) und sammeln.

Hier mal ein kleines Beispiel:

Sub Dateien_in_Pfad()

Dim strPfad As String

'Pfad auswählen
With Application.FileDialog(msoFileDialogFolderPicker)
     
        .AllowMultiSelect = False
        .Title = "Bitte Ordner wählen"
        .InitialFileName = ""
        .InitialView = msoFileDialogViewThumbnail
        .ButtonName = "OK"
            
        If .Show = -1 Then strPfad = .SelectedItems(1) & "\"
 
End With

'alle Excel-Dateien in dem ausgewählten Pfad per Messagebox ausgeben
Set FS = CreateObject("Scripting.FileSystemObject")
Set Folder = FS.GetFolder(strPfad)
For Each File In Folder.Files
  If File.Name Like "*.xls*" Then
    MsgBox File.Name
  End If
Next

End Sub

Die Verknüpfung zu WORD würde ich versuchen über den Seriendruck umzusetzen.

Gruß

M.O.

0 Punkte
Beantwortet von robbi58 Mitglied (966 Punkte)
Guten Abend, M.O.

Zunächst möchte ich mich noch einmal herzlich bedanken für deine Hilfe auf meine zahlreichen Anfragen. Ich habe viele Anregungen und Codes von dir übernommen und meine Schützlinge mit EXCEL-Aufgaben "versorgt" (ich glaube mittlerweile sind es über 200 unterschiedliche Aufgabenstellungen, was auch meine KollegInnen zu schätzen wissen).

Deine Formel zur Abfrage muss ich erst noch ausprobieren und anpassen, bevor ich ein Urteil abgeben kann.Ich habe mittlerweile eine "Mastertabelle" angefertigt, kopiert und die großen Datensätze auf ca. 20 Tabellenblätter mittels Power Query verteilt. Damit ist eigentlich der größte Brocken erledigt.

Allerdings stehe ich momentan vor dem Problem, wie ich die Daten auf mehreren Tabellenblättern in die Empfängerliste für den Serienbrief einarbeiten soll. Muss ich diese auf einem Tabellenblatt zuerst zusammenführen (je nach Klasse sind es zwischen 120 und 180 Spalten zu je  25 Zeilen), oder kann ich die unterschiedlichen Datenquellen in Word direkt einbinden? (habe im Internet recherchiert, bin aber noch nicht fündig geworden).

Ich möchte nämlich zu viele Verknüpfungen vermeiden, da es ja letztlich ein amtliches Dokument darstellt und Fehler naturgemäß sehr problematisch sein können.

Um einen weiteren Tipp wäre ich sehr dankbar.

LG Robert
+1 Punkt
Beantwortet von m-o Profi (22.7k Punkte)

Hallo Robert,

so viel ich weiß, geht der Serienbrief nur mit einer Datenquelle. Aber eventuell kannst du die Tabellen per Query zusammen fassen (wie hier vorgeschlagen). Vielleicht hilft dir ja das hier weiter: Klick.

Gruß

M.O.

0 Punkte
Beantwortet von robbi58 Mitglied (966 Punkte)
Hallo M.O.

Leider bin ich erst jetzt dazu gekommen, deinen Code auszuprobieren und deine Linktipps durchgesehen. Beides hat mir geholfen und mittlerweile ist das Projekt fast abgeschlossen. Das Zusammenführen der Dateien habe ich mittels PowerQuery geschafft, der Datentransfer in Word erfolgte mittels Serienbrief.

Danke für deine Unterstützung.

Robert
0 Punkte
Beantwortet von robbi58 Mitglied (966 Punkte)

Wer weiß Rat?

Ich habe in meiner Tabelle zahlreiche Verknüpfungen (hier eingefärbt) auf andere Mappen und den entsprechenden Arbeitsblättern auf meiner Festplatte erstellt.

='C:\Users\roma\Documents\pax2\[2A_R_GK.xlsx]Tabelle1'!E5

Die Daten stammen, wie schon erwähnt, aus zahlreichen Tabellenblättern aus unterschiedlichen Ordnern, allerdings alle aus den Zeilen 5 und 6 (hier oben D5; e5;f5; g5; h5; i5; ...). Ich möchte nun weitere Blätter mit demselben Inhalt und denselben Datenquellen erstellen. Blatt 2 holt die Daten aus Zellen der 7. und 8. Zeile, Blatt 3 aus Zellen der 9. und 10. Zeile (die Spalten bleiben immer dieselben). Ich habe in einem Blatt alle Verknüpfungen eingegeben und möchte nun eine Kopie erstellen. In dieser müssten alle Zellbezüge von z. B. d5 auf d7, von d6 auf d8 usw. unbenannt werden. In der nächsten Kopie dann entsprechend d5 auf d9, d6 auf d10 usw.

Gibt es eine Möglichkeit, die Werte in allen Zellbezügen automatisch die 5 durch eine 7, die 6 durch eine 8 zu ersetzen. Ich habe nämlich für die Eingabe der Zellbezüge (Verknüpfungen) mehr als zwei Stunden für die Eingabe der geschätzen 300 Verknüpfungen benötigt. Und ich muss/darf noch ca. 250 Kopien mit geänderten Zellbezügen anfertigen. Da wäre jeder gute Ratschlag Goldes wert!

Ich bedanke mich im Voraus für wohlgemeinte Ratschläge.

Robert

0 Punkte
Beantwortet von ryanroy837 Einsteiger_in (5 Punkte)
Danke für diese Information. Es ist sehr nützlich
...