HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Entdecke rund 2 Millionen Excel-Lösungen im
Forumsarchiv

Beiträge zum Thread: Daten aktualisieren anhand Quelldatei

Forumbeitrag
Excel-Version des Fragestellers:
2019
Erfahrungslevel des Fragestellers:
Excel gut - VBA bescheiden
koko34
09.06.2026 09:32:47
Daten aktualisieren anhand Quelldatei
Liebes Forum,

gibt es für folgende Aufgabenstellung eine Lösung mit Power Query oder ähnlichem:

Ich habe bspw. 50 Sportler und für jeden Sportler möchte ich eine eigene Exceldatei mit Profildaten, Testprotokollen etc. anlegen. Das Grundgerüst der Dateien mit Tabellenblättern, Formeln, Format, Makros, etc. soll für alle gleich sein und über eine Quelldatei gesteuert werden, sodass Änderungen hier auch für alle Sportlerdateien übernommen werden.

Ist das möglich oder nichts mehr für Excel?

Vielen Dank im Voraus.
Forumbeitrag
Excel-Version des Fragestellers:
2019
Erfahrungslevel des Fragestellers:
Excel gut - VBA bescheiden
daniel
09.06.2026 10:07:19
AW: Daten aktualisieren anhand Quelldatei
ja, prinzipell kann man so was machen.
reine Datendateien für die Sportler anlegen und eine Datei zum Auswerten und Bearbeiten dieser Datendateien.
Mit PowerQuery allein wirst du hier nicht weiterkommen, da PowerQuery im Prinzip nur Daten lesen und auswerten kann, aber zum Rückschreiben von Änderungen in die Datendateien wirst du weiterhin Makros benötigen.

Gruß Daniel
Forumbeitrag
Excel-Version des Fragestellers:
2019
Erfahrungslevel des Fragestellers:
Excel gut - VBA bescheiden
koko34
09.06.2026 13:35:28
AW: Daten aktualisieren anhand Quelldatei
Hallo Daniel,

vielen Dank für die schnelle Rückmeldung.

Wie würde das ca aussehen? Hat man in einem Ordner alle Dateien, also Quell- und Sportlerdateien, damit also Pfade gleich bleiben?

Und würde man dann in der Quelldatei die Zellen, die individuell verändert werden (dürfen) per Makro zur Bearbeitung freigeben. Ich hab mal eine Beispieldatei hier angehängt.

https://www.herber.de/bbs/user/180793.xlsm

Wenn die gelben Bereiche diejenigen sind die sich individuell ändern dürfen, je Arbeitsmappe wie würde da ein Makro ca aussehen? Wenn du mir da für ein Tabellenblatt mal einen Beispielcode geben könntest wäre super. Natürlich nur, wenn das jetzt nicht gleich ein Riesenaufwand ist.

Und muss der Code in die Quelldatei oder in die Sportlerdatei?

Sorry, hab mir zwar schon ein paar Sachen per VBA zusammengebastelt, aber am Ende bin ich da immer noch Laie.

Vielen Dank und LG koko
Forumbeitrag
Excel-Version des Fragestellers:
2019
Erfahrungslevel des Fragestellers:
Excel gut - VBA bescheiden
daniel
09.06.2026 19:23:55
AW: Daten aktualisieren anhand Quelldatei
Hi
ja, sinnvollerweise würde man alle Dateien in einen Ordner packen, das macht es einfacher, aber es ginge auch anders.

hier mal drei Makros die das Beispielhaft ausführen

Datei_leeren leert alle Zellen, die gelb sind

Kunde_einlesen fordert dich auf, eine Kundendatei zu wählen. Dann wird diese geöffnet und die Inhalte werden in deine Arbeitsdatei übernommen

Kunde_Speichern erstellt jetzt die eigentliche Kundendatei. Hierbei werden alle gelben Zellen in eine Exceldatei geschrieben, in Spalte A kommt Blatt und Zelle, in Spalte B kommt der Inhalt. Gespeichert wird dann im selben Verzeichnis wie die Arbeitsdatei unter dem Namen aus Übersicht M1

die Kundendatei enthält dann wirklich nur die Daten in einer ganz einfachen Form, zum Einlesen in die Arbeitsdatei über das Makro
die Arbeitsdatei kann schreibgeschützt sein (und sollte das auch).
Änderungen kannst du in der Arbeitsdatei an den Makros beliebig hinzufügen.
das einzige, was du nicht ändern darfst, ist die Position der gelben Zellen, denn sonst funktioniert das Einlesen eventuell nicht mehr.
auch die Blätter darfst du nicht löschen oder umbenennen.
Was du machen kannst, ist neue Blätter hinzufügen und auch neue Zellen gelb färben.
Option Explicit

Const FarbeDatenZelle As Long = 65535


Sub Kunde_Einlesen()
Dim datei As String
Dim arr
Dim i As Long

datei = Application.GetOpenFilename(, , "Kunde auswählen")
If Not datei Like "*.xlsx" Then Exit Sub

Call Datei_Leeren

Zeit_Einlesen = Now
With Workbooks.Open(datei, ReadOnly:=True)
arr = Sheets(1).Cells(2, 1).CurrentRegion.Value
.Close False
End With

For i = 1 To UBound(arr, 2)
If arr(i, 1) <> "" Then
Range(arr(i, 1)).Value = arr(i, 2)
End If
Next
End Sub




Sub Kunde_Speichern()
Dim sh As Worksheet
Dim zelle As Range
Dim wb As Workbook

Set wb = Workbooks.Add(xlWBATWorksheet)
ThisWorkbook.Activate
For Each sh In ThisWorkbook.Worksheets
For Each zelle In sh.UsedRange.Cells
If zelle.Interior.Color = FarbeDatenZelle Then
If zelle.Value <> "" Then
With wb.Sheets(1).Cells(Rows.Count, 1).End(xlUp)
.Offset(1, 0).Value = sh.Name & "!" & zelle.Address(0, 0)
.Offset(1, 1).Value = zelle.Value
End With
End If
End If
Next
Next

Application.DisplayAlerts = False
wb.SaveAs ThisWorkbook.Path & "\" & ThisWorkbook.Sheets("Übersicht").Range("M1").Value, xlOpenXMLWorkbook
Application.DisplayAlerts = True
wb.Close False
End Sub




Sub Datei_Leeren()
Dim sh As Worksheet
Dim zelle As Range
Dim Bereich As Range

For Each sh In ThisWorkbook.Worksheets
Set Bereich = Nothing
For Each zelle In sh.UsedRange.Cells
If zelle.Interior.Color = FarbeDatenZelle Then
If Bereich Is Nothing Then
Set Bereich = zelle
Else
Set Bereich = Union(Bereich, zelle)
End If
End If
Next
If Not Bereich Is Nothing Then Bereich.ClearContents
Next
End Sub


Gruß Daniel
Forumbeitrag
Excel-Version des Fragestellers:
2019
Erfahrungslevel des Fragestellers:
Excel gut - VBA bescheiden
koko34
10.06.2026 15:28:19
AW: Daten aktualisieren anhand Quelldatei
Hi Daniel,

erstmal vielen lieben Dank schonmal für deine Hilfe!

Zu deinem Vorschlag: Kunde speichern und Zellen leeren funktioniert, Kunde einlesen kommt bei mir ein Fehler Variable nicht definiert bei "Zeit_einlesen"

Das was auf jeden Fall noch ein Problem darstellt ist, dass die Kundendatei auch eine Vielzahl von Makros aus der Quelldatei braucht z.B. (Navigieren durch die Arbeitsmappe, Speichern und Senden bestimmter Tabellenblätter per PDF & Mail, etc.). Diese Makros habe ich schon, aber die Daten in einfacher Form reichen am Ende nicht in den Kundenversionen. Auch sollten Blätter und Formatierung immer identisch zur Arbeitsdatei sein und nur die gelben Zellen verändert werden.

Vielleicht habe ich mich auch etwas missverständlich ausgedrückt:
Ziel wäre eigentlich, dass die Kundendateien und Quell-bzw. Arbeitsdatei grundsätzlich identisch sind vom Aufbau und Funktionen. Da ich aber immer wieder kleine Änderungen/Anpassungen/Updates in der Quelldatei vornehmen muss, möchte ich nicht alle Kundendateien extra öffnen müssen und die Anpassungen dort alle manuell auch vornehmen.

Ist das viel komplexer und aufwändiger?

(Bitte nicht böse sein, wenn ich aus beruflichen Gründen erst am Montag wieder antworte)

LG koko
Forumbeitrag
Excel-Version des Fragestellers:
2019
Erfahrungslevel des Fragestellers:
Excel gut - VBA bescheiden
koko34
10.06.2026 15:29:27
AW: Daten aktualisieren anhand Quelldatei
Hi Daniel,

erstmal vielen lieben Dank schonmal für deine Hilfe!

Kunde speichern und Zellen leeren funktioniert
Kunde einlesen kommt ein Fehler Variable nicht definiert bei "Zeit_einlesen"

Wenn du den Fehler noch korrigieren könntest, könnte ich mal schauen wie weit ich damit dann komme bzw. was ich daraus dann machen kann.

Das was auf jeden Fall noch ein Problem darstellt ist, dass die Kundendatei auch eine Vielzahl von Makros aus der Quelldatei braucht z.B. (Navigieren durch die Arbeitsmappe, Speichern und Senden bestimmter Tabellenblätter per PDF & Mail, etc.). Diese Makros habe ich schon, aber die Daten in einfacher Form reichen am Ende nicht in den Kundenversionen. Auch sollten Blätter und Formatierung immer identisch zur Arbeitsdatei sein und nur die gelben Zellen verändert werden.

Vielleicht habe ich mich auch etwas missverständlich ausgedrückt.
Ziel wäre eigentlich, dass die Kundendateien und Quell-bzw. Arbeitsdatei grundsätzlich identisch sind vom Aufbau und Funktionen. Da ich aber immer wieder kleine Änderungen/Anpassungen/Updates in der Quelldatei vornehmen muss, möchte ich nicht alle Kundendateien extra öffnen müssen und die Anpassungen dort alle manuell auch vornehmen.

Ist das viel komplexer und aufwändiger?

(Bitte nicht böse sein, wenn ich aus beruflichen Gründen erst am Montag wieder antworte)

LG koko
Forumbeitrag
Excel-Version des Fragestellers:
2019
Erfahrungslevel des Fragestellers:
Excel gut - VBA bescheiden
daniel
10.06.2026 16:51:03
AW: Daten aktualisieren anhand Quelldatei
Hi
das mit dem "Zeit_einlesen" kannst du löschen (die ganze Zeile)
da hatte ich noch eine Idee, die ich dann aber verworfen habe und hab vergessen, die Zeile zu löschen.

Nochmal zum Konzept:

du willst Makros haben, an denen du ständig arbeitest und du willst, dass immer alle neuste Version der Makros haben, ohne dass du jede Kundendatei aktualisieren musst.

das funktioniert leider mit Excel nicht (bzw wird sehr aufwendig)

daher meine Idee, dass die Kundendateien nur die reinen Daten enthalten und die Makros in der Arbeitsdatei sind.
diese Arbeitsdatei liest sich immer die Daten des Kunden, der bearbeitet werden soll, ein und speichert dann diese nach Bearbeitung, aber eben nur die Daten.
die Arbeitsdatei selbst wird dabei nicht gespeichert und kann schreibgeschützt sein.
Das erlaubt es, dass alle Trainer über den Server die selbe Arbeitsdatei gleichzeitig verwenden können (weil diese ja nur lesend geöffnet werden muss) und damit hast du nur eine einzige Datei, in welcher du die Makros ändern musst.

die Makros die ich dir geschrieben habe, erledigen das Einlesen und Speichern dieser einfachen, nur aus Daten bestehenden Kundendateien.
die Kundendatei enthält dann nur noch die Informationen, in welcher Zelle welcher Wert steht.

alles andere wird in Excel meiner Erfahrung nach kompliziert und dann wäre ein echtes Datenbanksystem die besser Wahl (aber das kostet und man braucht einen Profi, um es wunschgemäß zu programmieren.


Gruß Daniel
Forumbeitrag
Excel-Version des Fragestellers:
2019
Erfahrungslevel des Fragestellers:
Excel gut - VBA bescheiden
koko34
15.06.2026 08:03:04
AW: Daten aktualisieren anhand Quelldatei
Hi Daniel,

Danke dir. Ja das Konzept wäre ursprünglich so gewesen, aber ich probiere es gerne Mal mit deinem Vorschlag und geb dir dann nochmal Rückmeldung, wie sich das in der praktischen Anwendung gestaltet.

Leider funktioniert das Kunden einlesen aber noch nicht wie gewünscht.
Also ich habe deinen Code in "Diese Arbeitsmappe" eingefügt, das sollte ja richtig sein, weil es alle Tabellenblätter betrifft, oder? Hier kommt dann beim Einlesen aber der Fehlercode "Typen unverträglich".
Wenn ich den Code nur in "Übersicht" einfüge, kommt beim Einlesen kein Fehler, aber es werden dann hald auch nur die Werte von diesem Tabellenblatt eingefügt.

LG koko
Forumbeitrag
Excel-Version des Fragestellers:
2019
Erfahrungslevel des Fragestellers:
Excel gut - VBA bescheiden
Daniel
15.06.2026 08:16:57
AW: Daten aktualisieren anhand Quelldatei
Diese Arbeitsmappe sollte für die automatische Event-Makros reserviert sein.

Deine Makros kommen in ein allgemeines Modul (Modul1)

Gruß Daniel
Forumbeitrag
Excel-Version des Fragestellers:
2019
Erfahrungslevel des Fragestellers:
Excel gut - VBA bescheiden
koko34
15.06.2026 08:32:26
AW: Daten aktualisieren anhand Quelldatei
Hi Daniel,

Danke dir. Hab das jetzt gemacht, aber es werden beim Einlesen trotzdem nur die Werte vom Übersichtsblatt eingefügt und von den anderen Tabellenblättern nicht.

LG koko
Forumbeitrag
Excel-Version des Fragestellers:
2019
Erfahrungslevel des Fragestellers:
Excel gut - VBA bescheiden
Daniel
15.06.2026 09:14:46
AW: Daten aktualisieren anhand Quelldatei
Tja, schwer zu sagen.
Hast du den Code verändert?
Hast du vielleicht auf den anderen Blättern eine andere Farbe zum Kennzeichnen der Eingabezellen verwendet?
Lade bitte deine Datei hoch.
Forumbeitrag
Excel-Version des Fragestellers:
2019
Erfahrungslevel des Fragestellers:
Excel gut - VBA bescheiden
koko34
15.06.2026 12:47:40
AW: Daten aktualisieren anhand Quelldatei
Nein, den Code hab ich, bis auf die Zeile die du gesagt hast kann ich löschen mit Zeit einlesen, nicht verändert. Farbe müsste auch überall die gleiche sein, hab das gerade nochmal gecheckt. Hab nochmal die aktuelle Datei hochgeladen:

https://www.herber.de/bbs/user/180810.xlsm
Forumbeitrag
Excel-Version des Fragestellers:
2019
Erfahrungslevel des Fragestellers:
Excel gut - VBA bescheiden
daniel
15.06.2026 13:24:09
AW: Daten aktualisieren anhand Quelldatei
Hi

mach mal im Makro "Kunden_Einlesen" in dieser Zeile: For i = 1 To UBound(arr, 2) aus der 2 eine 1.
Das Makro muss natürlich über die Anzahl der Zeilen des Arrays laufen und nicht über die Anzahl der Spalten, denn das Array sollte immer nur 2 Spalten haben.

Noch mal als Code:
Falsch:
For i = 1 To UBound(arr, 2)

Richtig:
For i = 1 To UBound(arr, 1)


Gruß Daniel
Forumbeitrag
Excel-Version des Fragestellers:
2019
Erfahrungslevel des Fragestellers:
Excel gut - VBA bescheiden
koko34
15.06.2026 15:41:12
AW: Daten aktualisieren anhand Quelldatei
Tausend Dank dir :)
das klappt jetzt alles soweit. Ich werde das jetzt wie gesagt mal in meine Hauptdatei einpflegen und das ganze ausgiebig testen. Melde mich dann im Verlauf der Woche oder nächsten Montag nochmal.

LG koko
Forumbeitrag
Excel-Version des Fragestellers:
2019
Erfahrungslevel des Fragestellers:
Excel gut - VBA bescheiden
koko34
17.06.2026 17:43:24
AW: Daten aktualisieren anhand Quelldatei
Hi Daniel,

also ich hab das jetzt getestet. Grundsätzlich glaube ich, kann deine Idee hier auch in der Praxis funktionieren.
Das Problem was aber jetzt schon entsteht ist, dass "Kunde einlesen" sehr lange dauert und das obwohl ich noch gar nicht so viele bzw. alle gelben Felder gefüllt habe.
Kann man den Code noch optimieren, dass das irgendwie noch schneller geht oder muss ich einfach die gelben Felder auf ein Minimum reduzieren?

LG koko
Forumbeitrag
Excel-Version des Fragestellers:
2019
Erfahrungslevel des Fragestellers:
Excel gut - VBA bescheiden
daniel
17.06.2026 18:14:48
AW: Daten aktualisieren anhand Quelldatei
HI
wie lange "Kunde einlesen" dauert, hängt nur davon ab, wie viele Zeilen in der jeweiligen Kundendatei befüllt sind.
die kannst du ja mal öffnen und anschauen, wie groß die geworden ist.

was das einlesen Verlangsamen kann, wären eventuelle Eventmakros (Change, Calculate) oder aufwendige Formeln, die bei jedem Einfügen neu berechnet werden.
wenn das das Problem ist, könnte man das so beschleunigen:

with Application

.enableevents = false
.calculation = xlcalculationmanual
.screenupdating = false
end with

For i = 1 To UBound(arr, 2)
If arr(i, 1) <> "" Then
Range(arr(i, 1)).Value = arr(i, 2)
End If
Next

with Application
.enableevents = true
.calculation = xlcalculationautomatic
.screenupdating = true
end with
Forumbeitrag
Excel-Version des Fragestellers:
2019
Erfahrungslevel des Fragestellers:
Excel gut - VBA bescheiden
koko34
22.06.2026 06:40:41
AW: Daten aktualisieren anhand Quelldatei
Hi Daniel,

Vielen Dank für deine Antwort.
Leider hat das nicht viel geändert. Es liegt wirklich an den vielen Zeilen in den Kundendateien. V.a. die Trainingspläne sorgen hier für viele Daten, da es alle 6 Wochen einen neuen Trainingsplan gibt. Muss wohl doch versuchen die gelben Felder irgendwie auf ein absolutes Minimum zu reduzieren.

LG koko
Forumbeitrag
Excel-Version des Fragestellers:
2019
Erfahrungslevel des Fragestellers:
Excel gut - VBA bescheiden
Piet
09.06.2026 11:04:14
AW: Daten aktualisieren anhand Quelldatei
Hallo

höfliche Frage, warum nicht alle 50 Sportler in einer Tabelle oder 2-3 Tabellen erfassen die man ständig erweitern kann.
Denkbar wäre eine Tabelle mit Stammdaten die sich nicht mehr ändern wie Name, Adresse, Telefon etc.
Weitere Tabellen um aktuelle Sportliche Ereignisse zu erfaßen. Alle 50 Sportler auf einem Blatt erfaßen.

Per Makro kann man dann eine Auswerte Tabelle erstellen wo man alle Daten des Sportlers auf einmal sieht.
Das wäre eine einzige Datei mit wenigen Blättern. - Oder Alternativ 50 Tabellen für jeden einzelnen Sportler.
Inklusive eine Eingabe Tabelle von wo aus die neuen Daten per Makro in andere Tabellen kopiert werden.

mfg Piet
Forumbeitrag
Excel-Version des Fragestellers:
2019
Erfahrungslevel des Fragestellers:
Excel gut - VBA bescheiden
daniel
09.06.2026 11:43:37
AW: Daten aktualisieren anhand Quelldatei
Hi
so als Idee für deine Frage:
wenn man für jeden Sportler eine eigene Datei anlegt, lässt es sich einfacher realisieren, dass mehrere Menschen gleichzeitig mit den Daten arbeiten können, auch schreibend, und sich nur dann in die Quere kommen, wenn sie den selben Sportler zum selben Zeitpunkt abspeichern wollen.
also als Beispiel, wenn du den Sportler 2 bearbeiten willst und ich möchte gleichzeitig die Sportler 51 und 52 neu anlegen, dann funktioniert das problemlos, wenn jeder Sportler seine eigene Datei hat. Wenn alle in einer Datei stehen, müssen wir nacheinander arbeiten.
Gruß Daniel
Forumbeitrag
Excel-Version des Fragestellers:
2019
Erfahrungslevel des Fragestellers:
Excel gut - VBA bescheiden
koko34
09.06.2026 14:32:37
AW: Daten aktualisieren anhand Quelldatei
Hallo Piet,

Daniel hat hier schon genau die richtige Antwort gegeben.
Es schaffen verschiedene Trainer immer mit verschiedenen Sportlern zur selben Zeit, d.h. eine Datei für alles geht hier leider nicht

LG koko