Das Archiv des Excel-Forums

Spalte in andere Dateien kopieren + zurückkopieren


Betrifft: Spalte in andere Dateien kopieren + zurückkopieren
von: Ingo

Geschrieben am: 10.09.2019 16:04:27
Hallo,
ich habe ein Anliegen, welches leider meine nicht-vorhandenen VBA-Kenntnisse bei weitem übersteigt. Ich habe mehrere Forenbeiträge gelesen, aber kann die Hinweise nicht recht umsetzen.

Problemstellung:
Ich habe 150 Datensätze in csv-Format (Komma-Trennung), alle sind identisch aufgebaut, mit einem Datenblatt (welches aber unterschiedlich heißt). Ich würde nun gerne aus jeder Datei zwei Spalten miteinander vergleichen (jeweils ca. 250 Zeilen) und für jede Zeile daraus einen Wert berechnen -steht ein Wert nur eine der beiden Zellen oder in beiden oder in keiner? Dadurch ergeben sich 4 Möglichkeiten (1 bis 4). Dazu habe ich eine Excel-Formel erstellt (s.u.)

Ziel:
Das ideale Ergebnis wäre, dass es eine Master-Datei gibt, die in dem gleichen Ordner, wie die 150 csv-Dateien liegt. Von dieser Masterdatei aus wird ein Makro ausgeführt, welches dazu führt, dass in der Masterdatei nun 150 Spalten nebeneinander erscheinen, jeweils mit einem Wert zwischen 1 und 4, entsprechend des Vergleichs.

Vorgehen:
Da habe ich nur eine schwammige Vorstellung, da ich auch gar nicht weiß, was Excel und VBA alles kann (wahrscheinlich mehr, als ich denke). Grundsätzlich hätte ich es in zwei Schritten gedacht:
1. In der Masterdatei gibt es eine Spalte, in der für alle benötigten Zeilen die Excel-Formeln stehen. Diese Spalte wird nun automatisch in jeden der 150 Datensätze in die erste freie Spalte nach den Daten kopiert – dadurch kann die Formel rechnen.
2. Dann wird diese Spalte in den 150 Datensätze wieder jeweils in die Masterdatei kopiert, diesmal aber als Wert. Jeweils eine Spalte pro Datensatz-Datei nebeneinander, so dass nun 150 Spalten nebeneinander sind. Vielleicht könnte man als erste Zeile noch den Dateinamen hinzufügen, damit die Zuordnung sichergestellt ist.

So könnte ich es mir vorstellen, aber vielleicht ist es für Excel-Experten offensichtlich, dass es ein viel besseres Vorgehen gibt. Da wäre ich komplett offen für neue Ideen, solange das gewünschte Ergebnis herauskommt.
Für eine Umwandlung von csv zu xlsx habe ich ein rudimentäres Makro gefunden, aber vielleicht kann man das ja direkt in die Prozedur integrieren.

Ich bin für jede Hilfe dankbar und hoffe, dass eine solche Frage nicht schon im Forum gestellt wurde – ich konnte leider nichts Passendes finden.

Vielen Dank!

Viele Grüße
Ingo

Excel-Formel: =WENN(UND(BS6="['space']";C6="['space']");1;WENN(UND(BS6="None";C6="['space']");2;WENN(UND(BS6="['space']";C6="None");3;4)))

Betrifft: AW: Spalte in andere Dateien kopieren + zurückkopieren
von: 1712774.html
Geschrieben am: 12.09.2019 20:22:23
Hallo Ingo

mein Vorschlag ist, lade bitte die Masterdatei als Beispiel Datei hoch mit 2-3 Spalten mit einigen Verknüpfungen zu den CSV Dateien, dann können wir dir besser Rat und Hilfe geben. Kein Kollege wird die Datei für dich aufbauen, zumal wir auch nicht deinen Ordner Pfad kennen.

mfg Piet

Betrifft: AW: Spalte in andere Dateien kopieren + zurückkopieren
von: 1712941.html

Geschrieben am: 13.09.2019 15:04:51
Hallo Piet,
vielen Dank für Deine Antwort.

Ich habe nun folgendes hochgeladen:
Beispieldatei.xlsx = so sehen alle Datensätze aus, nur mit unterschiedlichen Werten. In Spalte DO soll dann die Spalte mit den Excel-Formeln kopiert werden.
https://www.herber.de/bbs/user/132029.xlsx
Master.xlsx = Masterdatei. In Blatt „Tabelle2“ ist in Spalte DO die Excel-Formeln für jede Zeile hinterlegt. In Blatt "Tabelle1" werden die wieder zurückkopierten Spalten aus den einzelnen Datensätzen kopiert.
https://www.herber.de/bbs/user/132030.xlsx

Ich habe inzwischen weiter gesucht und bin etwas vorangekommen. Den Code habe ich relativ blind aus dem Netz kopiert, es kann also sein, dass er alles andere als elegant ist.

Für mich sind das drei Schritte (gerne auch als drei Makros):
1. csv in xlsx umwandeln
2. Die Spalte DO wird aus der Masterdatei in mehrere Datensätze kopiert (liegen im gleichen Verzeichnis).
3. Die Spalte DO aus den einzelnen Datensätzen wieder in die Masterdatei kopieren.

Was ich bisher getan habe:
Ein Makro für 1. > für die Umwandlung von csv zu xlsx:
Ein Makro für 3. > Spalte DO aus Datensätze in Master (ist transponiert, was für mich tatsächlich günstiger ist, aber das war nur Zufall, da der Code aus dem Netz ist)

Makro 1:
Sub umwandeln()
Dim wb As Workbook
Dim strFile As String, strDir As String
strDir = "C:\Users\ingo.aberle\Desktop\Test\Daten\"
strFile = Dir(strDir & "*.csv")
Do While strFile <> ""
Set wb = Workbooks.Open(Filename:=strDir & strFile, Local:=False)
wb.SaveAs Replace(wb.FullName, ".csv", ".xlsx"), 51
wb.Close True
Set wb = Nothing
strFile = Dir
Loop
End Sub
Makro 3:
Sub InMasterkopieren()
Dim WB As Workbook
Dim FName As String
Dim Data, i As Long
'Suche erste Datei
FName = Dir(ThisWorkbook.Path & "\*.xls")
'Datei gefunden?
Do While FName <> ""
'Ist es diese Datei?
If FName = ThisWorkbook.Name Then GoTo NextFile
'Datei öffnen
Set WB = Workbooks.Open(ThisWorkbook.Path & "\" & FName)
'Daten lesen
Data = WB.ActiveSheet.Range("DO1:DO255")
'Datei zu
WB.Close False
'Daten von Zeilen in Spalten umwandeln
Data = WorksheetFunction.Transpose(Data)
'Daten in Tabelle schreiben
i = i + 1
Cells(i, 1).Resize(1, UBound(Data)) = Data
NextFile:
'Suche nächste Datei
FName = Dir
Loop
End Sub
Was ich nicht hinbekomme:
Makro 2: Spalte DO wird aus der Masterdatei in mehrere Datensätze kopiert (liegen im gleichen Verzeichnis). In verschiedenen Foren finde ich nur Threads, die aus mehrere Dateien Daten in eine Datei zusammen kopieren wollen (wie Makro 3).
Makro 3: Dateiname in die erste Zelle (damit die Zuordnung möglich ist)

Ich hoffe, mein Anliegen ist durch die Dateien und die Beschreibung etwas klarer.

Für jeden Hinweis und Hilfe bin ich dankbar – und möchte natürlich auch meinen Teil zur Lösung beitragen.Vielen dank schon mal.

Viele Grüße
Ingo

Betrifft: AW: Spalte in andere Dateien kopieren + zurückkopieren
von: 1713377.html
Geschrieben am: 16.09.2019 22:40:53
Hallo Ingo

freut mich das dir mein Makro gefaellt, ich habe es jetzt auf Transpose=True umgeschrieben. Teste es bitte mal.

Beachte bitte das ich im Makro zur Sicherheit die Zelle "IA1" mit CUT ausgeschnitten und nach "JA1" versetzt habe! - (255 Zeilen in Spalte DO!!)
Wenn du den Zeilenzaehler auf z=1 setzt wird die Formel sonst überschrieben! Zum testen steht z bei mir im Makro auf Start mit 2. Zeile!
Bei Transpose müssen wir ja auch über einen Zeilenzaehler nach unten statt Spaltenzaehler gehen.
PS - wenn ich mich zur Zeit lange nicht melde liegt es am Internet. War 2 Tage ausgefallen, wg. Strassenbauarbeiten!

mfg Piet

Option Explicit            '14..201   Piet    für Herber Forum
'MsgBox Text für Überlauf
Const ÜblTxt = "Spalten Überlauf in Masterliste! - Formel in 'IA1' wird überschrieben!"
'Makro zum Formel in Spalte DO kopieren und Werte laden
Sub Dateinamen_Auflisten()
Dim temp As String, z As Integer
Dim FormelDO As String, lzX As Long
z = 2  'Start mit 2. Zeile Masterliste
'On Error GoTo Fehler
'Ordner Verzeichnis und Dateityp angeben
temp = Dir(ThisWorkbook.Path & "\*.CSV*")
Application.ScreenUpdating = False
With ThisWorkbook.Worksheets("Masterliste")
'alte Tabelle immer komplett löschen
.UsedRange.Offset(3, 0).EntireRow.Delete
'fertige Formel aus Zelle "IA" laden
FormelDO = .Range("JA1").Formula
Do While temp <> ""
Workbooks.Open ThisWorkbook.Path & "\" & temp
'LastZell in CSV Datei ermitteln (oder auf 255 setzen!)
lzX = Workbooks(temp).Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
'Schutz vor Überschreiben der Formel in Zelle "IA1"
If lzX >= 260 Then MsgBox lzX & "  " & ÜblTxt: Exit Do
'Formel in Zelle DO2 kopieren und nach unten ziehen
Workbooks(temp).Sheets(1).Range("DO2").Formula = FormelDO
Workbooks(temp).Sheets(1).Range("DO2").Copy _
Workbooks(temp).Sheets(1).Range("DO2:DO" & lzX)
'CSV Spalte DO in Masterliste kopieren
Workbooks(temp).Sheets(1).Range("DO2:DO" & lzX).Copy
.Cells(z, 2).PasteSpecial xlPasteValues, Transpose:=True
'CSV Dastei Namn in Zeile 1 schreiben
.Cells(z, 1).Value = Workbooks(temp).Name
Application.CutCopyMode = False
'CSV Datei schliessen
Workbooks(temp).Close False
z = z + 1  'next Zeile setzen
temp = Dir()
Loop
ThisWorkbook.Save  'Masterliste automatisch speichern
End With
Exit Sub
Fehler: MsgBox "unerwarteter Laufzeit Fehler:  " & Err
End Sub

Betrifft: AW: Spalte in andere Dateien kopieren + zurückkopieren
von: 1713469.html

Geschrieben am: 17.09.2019 14:13:25
Hallo Piet,
ganz herzlichen Dank für Deine schnelle Unterstützung! Ich kann Dir gar nicht sagen, wie hilfreich das ist.
Leider komme ich berufsbedingt voraussichtlich erst am Freitag, vielleicht auch erst nächste Woche dazu, Dein Makro zu testen. Ich gebe Dir aber auf jeden Fall Feedback, sobald ich Zeit habe (vielleicht klappt es auch irgendwie vorher).
Viele Grüße
Ingo

Betrifft: AW: Spalte in andere Dateien kopieren + zurückkopieren
von: 1713120.html
Geschrieben am: 14.09.2019 19:49:40
Hallo Ingo

anbei meine Masterdatei zum testen. Mit dem Beispiel 132030 konnte ich nichts anfangen, alles leere Tabellen.

Nach meiner Ansicht brauchst du die CSV Dateien NICHT in xls umwandeln, dieser Code liest auch CSV Dateien ein, sofern die Daten auf alle Spalten verteilt wurden. Nicht als zusammenhaengender Text in Spalte A stehen. Wenn du doch umwandeln musst bitte in meinem Makro den Dateityp von "CSV" auf "xls" umaendern.

Die Formel zum kopieren steht im Master Blatt in der Zelle "IA1". Da kannst du sie auch aendern. Solange es weniger als 230 Dateien sind wird sie nie überschrieben! Bei mehr erfolgt Abbruch. Würde mich freuen wenn der Code dir weiterhilft dein Problem zu lösen. Meine Variablen kannst du ja beliebig aendern.

https://www.herber.de/bbs/user/132039.xlsm - 132030 Masterdatei DO

mfg Piet - PS wenn alles klappt bitte den Thread schliessen, kein Haeckchen mehr setzen

Betrifft: AW: Spalte in andere Dateien kopieren + zurückkopieren
von: 1713349.html

Geschrieben am: 16.09.2019 17:26:22
Hallo Piet,
ich bin mehr als begeistert, das Makro funktioniert wunderbar! Meine ewige Dankbarkeit ist Dir sicher!
Ich hätte noch eine letzte Bitte, falls das noch möglich wäre:
könnten die in die Masterdatei zurückkopierten Daten auch transponiert erscheinen, also nicht eine Spalte pro cvs-Datei, sondern eine Zeile?
Ich habe es mit

Transpose:=True
probiert, aber das hat nicht geklappt, es erscheint nur eine Zeile.
Bitte enschuldige, dass ich das jetzt noch so nachschiebe.
Viele Grüße
Ingo

Excel-Beispiele zum Thema "Spalte in andere Dateien kopieren + zurückkopieren"

Vorkommen von Zahlenreihen in Spalten download Funktion ANZAHL2 ohne ausgeblendete Spalten download
Spaltenbreite anpassen download Spalten einer Mehrbereichsauswahl ausblenden. download
Spaltennamen bestimmen download Spalten/Zeilen aus- und einblenden download
Zeilen und Spalten über ein Drehfeld ein- und ausblenden download In einem Dialog ausgewählte Spalten drucken download
Spalten bedingt summieren und Zellen formatieren download Abfrage der markierten Spalten download
Wert aus Spalte C, wenn Spalten A und B Bedingungen erfüllen download Beim Kopieren auch die Zeilenhöhe und Spaltenbreite übernehmen download
Zeilen löschen, wenn in bestimmten Spalten keine Werte stehen download Schmale Spalten nebeneinander drucken download
Werte in mehreren Spalten sortieren download Textreihe auf mehrere Spalten mit fester Seitenlänge verteilen download
Spalten A und B vergleichen und Doppel in C listen download Nach Verlassen von Spalte B Spalte C markieren download
Alle leeren Spalten ausblenden download Leere Zeilen und Spalten in ausgewähltem Bereich löschen download
Formel bis zur letzten Zeile der Nebenspalte kopieren download Alle leeren Zeilen und Spalten entfernen download
Wert aus 2. UserForm-ComboBox-Spalte berechnen download Jede zweite Spalte drucken download
Inhalt einer Zelle in Minutenabstand in einer Spalte auflisten download Über InputBoxes Zeile und Spalte auswählen und Ergebnis nennen download
Daten in jeweils einer Spalte zweier Tabellen vergleichen download Letzte Zelle einer Spalte mit Inhalt aus geschlossener Arbeitsmappe download
Spalte A mehrer Mappen in UserForm und aktives Blatt download Durch DoppelKlick Spalte in zweites Arbeitsblatt kopieren download
Bis zur 12. Zeile Cursor nach unten, dann nächste Spalte ansetzen download Werte in Spalte A in Abhängigkeit des Werte in Spalte B eintragen download
Tabellenblattinhalt unter Weglassung einer Spalte als Textdatei download Begriffe in ausgeblendeter Spalte suchen und Fundzeile markieren download
Bei Eingaben in Spalte B in Spalte A den Maximalwert anzeigen download Überschriften aus Spalte C in Spalte D in den relevanten Bereich download
Bei Eintrag in Spalte A aktuelle Zeile kopieren download Wertereihe nach dem Zufallsprinzip auf 4 Spalten verteilen download
Maximalwert aus einem Bereich ermitteln und in Spalte A eintragen download Alle Zellen in Spalte A ohne Eintrag gelb hinterlegen download
Zeilen in Abhängigkeit des Wertes in Spalte A kopieren download Abfrage zum Kopierbereich von Startzelle, Zeilen- und Spaltenanzahl download
Werte aus Spalte A mit Werten aus Spalte B multiplizieren download Einlesen von Spaltenköpfen in UserForm-ListBox download
Spalten ein-/ausblenden nach UserForm-ListBox-Vorgabe download Aus mehrspaltiger UserForm-ListBox Werte der 1. Spalte auslesen download
Aktuellen Bereich in den Spalten A:F als Druckbereich download Alle Werte mit Punkt aus Spalte A in Spalte B download
Zellauswahl in Abhängigkeit des Spaltenkopfes download UserForm-ListBox in Abhängigkeit zur aufrufenden Spalte füllen download
Blätter in andere Arbeitsmappen kopieren download Variablenübergabe in andere Arbeitsmappen download
Bezüge auf Namen in anderen Mappen aufheben download Blattinhalt von einer zur anderen Arbeitsmappe kopieren download
Sicherungskopie in einem anderen Verzeichnis erstellen download Teilergebnisse einer Serie von Tabellen in anderes Blatt kopieren download
Bei Eingabe andere Werte löschen download Eintragungen im 1. Blatt in andere Blätter übernehmen download
Währung in der Systemsteuerung/Ländereinstellungen umstellen download Zeile mit aktiver Zelle in anderes Blatt kopieren download
Bereich aus anderer Tabelle für 2 Sekunden anzeigen download Suchbegriff-Fundstelle mit anderer Zelle multiplizieren download
Bei geteiltem Fenster Kontextmenü im jeweils anderen Fenster download Einer Zeichenfolge eine zweite in anderer Schriftart hinzufügen download
Mit F6 Werte von einer zur anderen Zelle transferieren download Nur sichtbare Zellen in anderes Arbeitsblatt kopieren download
Bei Eintrag von X Zeile in andere Tabelle kopieren download Bei Zelleingabe andere Zellen füllen download
Listen von Eingabedaten in einer anderen Tabelle download Bildergruppe in anderes Blatt kopieren download
Die letzte Zeile des aktiven Blattes in andere Arbeitsmappe download CheckBox-Aktivierung in Abhängigkeit von anderen CheckBoxes download
CheckBox-Werte eines Blattes in ein anderes Blatt eintragen download Wert von einer Zelle zur anderen in mehreren Tabellen übernehmen download
Aus Adressangabe den Ort in eine andere Spalte separieren download Auswahl in andere Arbeitsmappe kopieren, speichern, schließen download
Begriff suchen und Fundzeilen in anderes Blatt kopieren download Bei Zellauswahl Wert aus anderer Zelle eintragen download
Werterhöhung einer Zelle bei Eingabe in einer anderen download Außer Kommata und Semikoli keine anderen Zeichen doppelt eingeben download
Mails eines Outlook-Ordners in einen anderen verschieben download Werte bei Zellbewegungen in andere Tabellen übernehmen download
Arbeitsblatt aus einer anderen Arbeitsmappe importieren download Bei jedem Aufruf eine andere Prozedur aufrufen. download
Werte, die auch in anderen Spalten vorkommen, markieren download Werte in andere Tabelle umorganisieren und kopieren download
Bei Eingaben prüfen, ober der Wert schon in anderer Tabelle download Werte in zweiter Tabelle in anderer Reihenfolge darstellen download
Werte aus anderen Arbeitsmappen importieren download Alle Dateien im Verzeichnis öffnen download
Dateien listen download 400 leere Textdateien anlegen download
XL-Dateien in UserForm listen download XL5/7-Dateien nach XL8 konvertieren download
Dateien aus Listbox auslesen und öffnen download Excel-Dateien eines Ordners listen download
Alle Dateien ab einem bestimmten Datum listen download Alle Dateien eines Verzeichnisses drucken download
Textdateien verbinden download Serie von Dateien in das XL5/7-Format konvertieren download
Verzeichnisbaum aufrufen und Dateien in ListBox auflisten download Dateien einer Ordnerliste in einer Tabelle zusammenstellen download
Daten aus allen Dateien eines Verzeichnisses zusammenführen download Hyperlinks zu allen Excel-Dateien eines Verzeichnisses erstellen download
Dateien in einem Verzeichnis und Unterverzeichnissen suchen download XL-Dateien aus Haupt- und Unterverzeichnissen einlesen download
Die Eigenschaft "Stichwort" in allen Dateien eines Ordners ändern download Textdateien vergleichen und Unterschiede dokumentieren download
Löschen von Dateien beim Schließen einer Arbeitsmappe download Grafikdateien suchen download
Erste Blätter aus allen Dateien eines Verzeichnisses sammeln download Von allen Arbeitsblättern der Mappe HTML-Dateien anlegen download
Textdateien auslesen und in Werte in Zellen eintragen download Werte nach Gruppen aufteilen und in gesonderten Dateien speichern download
Fragen aus Textdateien in UserForm-Label einlesen download Text in Textdateien suchen und Fundzeilen in Tabelle ausgeben download
Alle Dateien löschen, die älter als 30 Tage sind download Dateien mit Angabe des Dateidatums mit Hyperlink listen download
Dateien listen und gekennzeichnete öffnen download UserForm-TextBoxes-Texte in Textdateien speichern download
Tabellenblattinhalte in getrennten Textdateien speichern download Dateien listen und Blätter in neue Arbeitsmappe kopieren download
Bei Doppelklick Textdateien in Editor öffnen download Dateiliste mit allen xl-Dateien und Hyperlinks erstellen download
Aufruf von Textdateien protokollieren download Textdateien mit einer Zeile in Tabelle einlesen download
Alle Textdateien eines Verzeichnisses importieren download Dateien öffnen, Verknüpfungen aktualisieren, speichern, schießen download
Dateien suchen download Dateien mit bestimmtem Inhalt suchen download
Module von Mappe zu Mappe kopieren download Arbeitsblatt 40 mal kopieren download
Schriftgröße beim Kopieren verdoppeln download Tabellencode nach Kopieren des Blattes löschen download
Arbeitsmappe blitzschnell kopieren download VBE-Namen der Blattmodule beim Kopieren festlegen download
Datei kopieren, wenn noch nicht vorhanden download Zeilenweise von Blatt zu Blatt kopieren download
Erste Druckseite in eine neue Arbeitsmappe kopieren download Filtern und Kopieren download
Einen von einer Schlüsselziffer abhängigen Bereich kopieren download Vorgegebene Anzahl von Einträgen in 2. Blatt kopieren download
Über InputBox festzulegenden Bereich kopieren download Passwortgeschützte Mappe öffnen, Daten kopieren, schliessen download
Tabellenblatt kopieren und dreistellig fortlaufend numerieren download Jede zweite Zelle kopieren download
Werte aus UserForm-ComboBox suchen und Fundstelle kopieren download Gruppe von Optionsfeldern kopieren und Makro zuweisen download
Nicht zusammenhängenden Bereich in nächste Zeile kopieren download Wert aus UserForm-TextBox suchen und Fundstelle kopieren download
Zeile in Abhängigkeit zur Eingabe in Blätter kopieren download Werte prüfen und kopieren download
Daten kopieren wenn kein Datum oder Datum > Heute download Blattinhalte dreier Blätter in neues Blatt kopieren download
Kopieren und Umbenennen eines Blattes download Nur Zeilen mit bestimmtem Inhalt kopieren download
Artikelnummern nach Kriterien suchen und Datensätze kopieren download Bild in zweites Blatt an gleiche Position kopieren download
Alle Zeilen ohne Wert in vorgegebener Spalte kopieren download Bei Eintrag Zeile in 2. Blatt kopieren und Tabellen sortieren download
Bei Eingabe Formel in der Nebenspalte nach unten kopieren download Aktive Zeile kopieren und löschen download
Datensätze, die öfter als 3 mal vorkommen, kopieren download Den jeweils darüberliegenden Wert in Leerzellen kopieren download
Alle Zeilen mit einem Suchbegriff in nächstes Blatt kopieren download