Aus einer ausgewählten Zeile nur bestimmte Werte in eine neue Datei rauskopieren
Hallo liebe Excel-Profis,
momentan verzweifle ich gerade an einer Aufgabe die folgendermaßen lautet:
Eine Teile-Tabelle mit vielen Spalten und noch mehr Zeilen…..
Durch anklicken einer Zeile sollen die Werte aus Spalte 3 und Spalte 5 in eine bereits existierende Excel-Datei kopiert werden. Wert aus Spalte 3 soll in die neue Datei in Zelle A1 kopiert werden und der Wert aus Spalte 5 in Zelle B2 der neuen Datei.
Diese „neue“ Datei ist ja bereits beschrieben, und es soll sich immer wieder diese gleiche Datei öffnen, nach dem man eine Zeile der ersten Excel-Datei ausgesucht hat.
Über jegliche Hilfe bin ich Euch sehr dankbar.
Viele Grüße
Alex
momentan verzweifle ich gerade an einer Aufgabe die folgendermaßen lautet:
Eine Teile-Tabelle mit vielen Spalten und noch mehr Zeilen…..
Durch anklicken einer Zeile sollen die Werte aus Spalte 3 und Spalte 5 in eine bereits existierende Excel-Datei kopiert werden. Wert aus Spalte 3 soll in die neue Datei in Zelle A1 kopiert werden und der Wert aus Spalte 5 in Zelle B2 der neuen Datei.
Diese „neue“ Datei ist ja bereits beschrieben, und es soll sich immer wieder diese gleiche Datei öffnen, nach dem man eine Zeile der ersten Excel-Datei ausgesucht hat.
Über jegliche Hilfe bin ich Euch sehr dankbar.
Viele Grüße
Alex
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 123849
Url: https://administrator.de/forum/aus-einer-ausgewaehlten-zeile-nur-bestimmte-werte-in-eine-neue-datei-rauskopieren-123849.html
Ausgedruckt am: 15.02.2025 um 16:02 Uhr
18 Kommentare
Neuester Kommentar
Hallo Zorbas81!
Das Auslesen der Zellen ließe sich (ohne zu berücksichtigen, ob sich in der gewählten Zeile überhaupt Daten befinden) grundsätzlich so umsetzen :
Dieser Code ist dabei dem Tabellenblatt zuzuordnen und nicht in ein Modul zu legen - dazu einfach nach Rechtsklick auf das Registerblatt der Tabelle per "Code anzeigen" in den VBA-Editor wechseln.
Wie es dann allerdings weitergehen soll, ist mir nicht ganz klar - zum Einen erwähnst Du eine "bereits existierende Excel-Datei", dann wieder soll "in die neue Datei" kopiert werden - was genau hast Du also vor?
Grüße
bastla
Das Auslesen der Zellen ließe sich (ohne zu berücksichtigen, ob sich in der gewählten Zeile überhaupt Daten befinden) grundsätzlich so umsetzen :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Zeile = Target.Row
MsgBox Cells(Zeile, 3).Value & vbCrLF & Cells(Zeile, 5).Value
End Sub
Wie es dann allerdings weitergehen soll, ist mir nicht ganz klar - zum Einen erwähnst Du eine "bereits existierende Excel-Datei", dann wieder soll "in die neue Datei" kopiert werden - was genau hast Du also vor?
Grüße
bastla
Hallo Alex!
![face-wink face-wink](/images/icons/fa/light/face-laugh-wink.svg)
Welches Format haben Versionsnummer und Benennung - lassen sich daraus unmittelbar Dateinamen erzeugen, oder müssen zB Sonderzeichen ausgefiltert oder Namensbestandteile gekürzt werden?
Dürfen/sollen übrigens bereits bestehende Dateien (beim nächsten Scriptlauf) überschrieben werden, bzw kann es zu Namenskollisionen kommen und wie soll dann verfahren werden?
Grüße
bastla
Kann man automatisch die Versionsnummer und Benennung als Dateinamen abspeichern lassen?
Man wird können ... Welches Format haben Versionsnummer und Benennung - lassen sich daraus unmittelbar Dateinamen erzeugen, oder müssen zB Sonderzeichen ausgefiltert oder Namensbestandteile gekürzt werden?
Dürfen/sollen übrigens bereits bestehende Dateien (beim nächsten Scriptlauf) überschrieben werden, bzw kann es zu Namenskollisionen kommen und wie soll dann verfahren werden?
Grüße
bastla
Moin Alex und bastla,
Eine Datenkonsistenz in einem Datenwust von einer Excel-Mutter-Tabelle (mit in der Praxis mehreren "aufzuhebenden" Versionen pro Jahr) und 400+x Unter-Exceltabellen durch ein Mini-IF-THEN-ELSE-Regelwerk zu gewährleisten.... hey! Soll ich mich dazu ausführlicher äußern?
Diese Datensammlung und -verwaltung schreit nach einer relationalen/normaliesierten DatenBANKlösung.
Mit 1:1 oder (mit Versionspflege) 1:n-beziehungen, Referentieller Integrität etc.
Oder gibt es irgendwelche Details, die das ausschließen?
@alex:
Ich mische mich nur ein, weil Du zwar momentan konstruktive Lösungsansätze bezogen genau auf Deine Fragen bekommst, aber nicht jede beantwortete Frage auch wirklich eine "Lösung" sein muss.
Grüße
Biber
Zitat von @bastla:
> Kann man automatisch die Versionsnummer und Benennung als Dateinamen abspeichern lassen?
Man wird können ...![face-wink face-wink](/images/icons/fa/light/face-laugh-wink.svg)
Aber nicht um jeden Preis müssen...> Kann man automatisch die Versionsnummer und Benennung als Dateinamen abspeichern lassen?
Man wird können ...
Welches Format haben Versionsnummer und Benennung - lassen sich
daraus unmittelbar Dateinamen erzeugen, oder müssen zB
Sonderzeichen ausgefiltert oder Namensbestandteile gekürzt werden?
Dürfen/sollen übrigens bereits bestehende Dateien (beim
nächsten Scriptlauf) überschrieben werden, bzw kann es zu
Namenskollisionen kommen und wie soll dann verfahren werden?
Diese beiden angedeuteten Problemfelder sind ja nur die Spitze des Eisbären.daraus unmittelbar Dateinamen erzeugen, oder müssen zB
Sonderzeichen ausgefiltert oder Namensbestandteile gekürzt werden?
Dürfen/sollen übrigens bereits bestehende Dateien (beim
nächsten Scriptlauf) überschrieben werden, bzw kann es zu
Namenskollisionen kommen und wie soll dann verfahren werden?
Eine Datenkonsistenz in einem Datenwust von einer Excel-Mutter-Tabelle (mit in der Praxis mehreren "aufzuhebenden" Versionen pro Jahr) und 400+x Unter-Exceltabellen durch ein Mini-IF-THEN-ELSE-Regelwerk zu gewährleisten.... hey! Soll ich mich dazu ausführlicher äußern?
Diese Datensammlung und -verwaltung schreit nach einer relationalen/normaliesierten DatenBANKlösung.
Mit 1:1 oder (mit Versionspflege) 1:n-beziehungen, Referentieller Integrität etc.
Oder gibt es irgendwelche Details, die das ausschließen?
@alex:
- Was für Details außer Benennung und Versionsnr sollen den noch in diese Detail-Sheets reingeklimpert werden?
- Wie sieht denn das Gesamtbild bzw. der ganze abzubildende Prozess aus?
- Ist denn der Datenfluss so wie beschrieben wirklich eine Einbahnstrasse (von Stammdatentabelle zu Detail-Daten) oder fließen auch Daten zurück?
Ich mische mich nur ein, weil Du zwar momentan konstruktive Lösungsansätze bezogen genau auf Deine Fragen bekommst, aber nicht jede beantwortete Frage auch wirklich eine "Lösung" sein muss.
Grüße
Biber
Hallo Alex!
Sorry - aber Letzteres schon gar nicht
- ich hoffe, am Wochenende etwas mehr Zeit zu haben.
Nur, um den Ablauf nochmals klar zu stellen:
Du hast eine Vorlage, in deren Zellen A1 und B2 der Wert aus Spalte 3 bzw Spalte 5 der jeweiligen Zeile eingefügt werden soll.
Gespeichert werden soll dann unter einem zusammengesetzten Dateinamen, dessen Teile aus welchen Spalten zu entnehmen sind?
Grüße
bastla
Sorry - aber Letzteres schon gar nicht
Nur, um den Ablauf nochmals klar zu stellen:
Du hast eine Vorlage, in deren Zellen A1 und B2 der Wert aus Spalte 3 bzw Spalte 5 der jeweiligen Zeile eingefügt werden soll.
Gespeichert werden soll dann unter einem zusammengesetzten Dateinamen, dessen Teile aus welchen Spalten zu entnehmen sind?
Grüße
bastla
Hallo Alex!
Grüße
bastla
Ausser dem Zielordner, wo die Dateien hineingespeichert werden, muss man doch auch die Zieldatei auswählen, oder?
Denn diese enthält ja noch andere Daten, die ja nicht angefasst werden! Oder kann man das nur mit einer Pfadangabe machen?
Eigentlich war ich bisher davon ausgegangen, dass es eine Vorlage (wäre das die "Zieldatei"?) gibt, die mit den entsprechenden Werten befüllt und dann unter dem (aus einigen dieser Werte) zusammengesetzten Dateinamen in einem vorgegeben Ordner gespeichert werden soll ...Denn diese enthält ja noch andere Daten, die ja nicht angefasst werden! Oder kann man das nur mit einer Pfadangabe machen?
Grüße
bastla
Hallo Alex!
Etwas zum Testen: Speichere das folgende Script in einem Modul der "Stammliste.xls" und starte es von dieser Datei aus:
Um noch Optimierungspotenzial zu lassen
wird der Zielordner im Script als Konstante angegeben und es wird auch nicht geprüft, ob er bereits existiert (was allerdings Voraussetzung für das Speichern darin ist
).
Weitere Annahmen: Die Stammdaten stehen in der "Tabelle1" der Stammliste und die "Vorlage.xls" ist so gespeichert, dass beim Öffnen bereits die gewünschte Tabelle aktiv ist.
Grüße
bastla
Etwas zum Testen: Speichere das folgende Script in einem Modul der "Stammliste.xls" und starte es von dieser Datei aus:
Sub ErzeugeEinzeldateien()
Vorlage = "D:\Vorlage.xls"
Zielordner = "D:\Einzeldateien"
Set Quelle = ThisWorkbook.Worksheets("Tabelle1")
AbZeile = 2
Zieldatei = Array("B3", "B5", "B6")
Zuordnungen = Array( _
"14>B5", _
"13>B3", _
"64>B6", _
"16>B4", _
"41>D3", _
"42>D4", _
"21>D5", _
"20>F4" _
)
ZieldateiMax = UBound(Zieldatei)
Workbooks.Open Filename:=Vorlage
Zeile = AbZeile
Check = CInt(Split(Zuordnungen(0), ">")(0))
Do While Quelle.Cells(Zeile, Check) <> ""
For Each Zuordnung In Zuordnungen
Z = Split(Zuordnung, ">")
Range(Z(1)).Value = Quelle.Cells(Zeile, CInt(Z(0))).Value
Next
Zieldateiname = Range(Zieldatei(0))
For i = 1 To ZieldateiMax
Zieldateiname = Zieldateiname & "_" & Range(Zieldatei(i))
Next
ActiveWorkbook.SaveAs Filename:=Zielordner & "\" & Zieldateiname & ".xls"
Zeile = Zeile + 1
Loop
ActiveWorkbook.Close
MsgBox "Fertig."
End Sub
Weitere Annahmen: Die Stammdaten stehen in der "Tabelle1" der Stammliste und die "Vorlage.xls" ist so gespeichert, dass beim Öffnen bereits die gewünschte Tabelle aktiv ist.
Grüße
bastla
Hallo Alex!
Ich freu' mich ja auch, wenn Du Dich freust
, aber trotzdem noch eine Erinnerung an Bibers Einwände:
Ohne im Detail zu wissen, was Du mit den einzelnen Tabellen so bewerkstelligst - eigentlich sieht das nach einer typischen Datenbankanwendung aus (wo Du dann anstelle von 400 vermutlich nur sehr kurze Zeit aktuellen Einzeldateien nur jeweils ein Formular / einen Bericht benötigen würdest und darin immer den aktuellen Datenstand vorfinden könntest) ...
Grüße
bastla
Ich freu' mich ja auch, wenn Du Dich freust
Ohne im Detail zu wissen, was Du mit den einzelnen Tabellen so bewerkstelligst - eigentlich sieht das nach einer typischen Datenbankanwendung aus (wo Du dann anstelle von 400 vermutlich nur sehr kurze Zeit aktuellen Einzeldateien nur jeweils ein Formular / einen Bericht benötigen würdest und darin immer den aktuellen Datenstand vorfinden könntest) ...
Grüße
bastla