Übertragen von Daten in neue Mappe und Sortieren in Excel
Hallöchen zusammen.
Habe da folgendes Problem, bei dem ihr mir hoffentlich weiterhelfen könnt.
Zunächst zum Aufbau des Programms in Excel. In der Mappe 1 stehen alle verfügbaren Daten (Basisliste) z.B. Namen in Spalte B, Nachnamen in Spalte C, Geburtsdaten in Spalte D, u.s.w.. Dort ist ebenfalls ein "Arbeitsfeld" (Spalte A) vorangestellt.
Nun möchte ich, dass die komplette Zeile (d.h. z.B. B1 bis G1, also Name, Nachname, Geburtsdatum, u.s.w.) in eine neue Mappe (Mappe 2) übertragen wird, wenn ein bestimmter Wert (z.B. ein X oder ein Y oder ein Z) in das o.g. Arbeitsfeld der Basisliste eingegeben wird.
Diese neue Mappe soll die zuvor übertragenen Werte (Name, Nachname, u.s.w.) auch sortieren.
Ich hoffe ihr könnt mir dort weiterhelfen, verzweifle nämlich langsam.
Vielen Dank schon mal.
Gruß
Kai
Antwort schreiben
Antwort 1 von fedjo vom 06.05.2019, 12:40 Options
Hallo Kai,
Zitat:
in eine neue Mappe (Mappe 2
muss es eine neue Mappe sein oder reicht auch eine neue Tabelle2?
Die neue Mappe müsste zum übertragen jedesmal geöffnet werden.
Gruß
fedjo
Antwort 2 von Flieger79 vom 06.05.2019, 13:33 Options
Ja, es müsste schon eine neue Mappe sein. Mir ist auch klar, dass diese dann separat geöffnet werden müsse.
Antwort 3 von fedjo vom 10.05.2019, 17:32 Options
Hallo Kai,
war ein paar Tage im Urlaub, kann mich daher erst jetzt wieder mit deinem Problem beschäftigen.
Werden eine Mustertabelle erstellen.
Gruß
fedjo
Antwort 4 von fedjo vom 11.05.2019, 09:46 Options
Hallo Kai,
in das Codefenster von Mappe1.xls einfügen:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zfrei As Long
If Target.Column = 1 And Cells(Target.Row, Target.Column) = "x" Then
Application.DisplayAlerts = False
Workbooks.Open Filename:= _
"C:\Eigene Dateien\Mappe2.xls" 'Pfad anpassen!
Zfrei = Sheets(1).Cells(65536, 1).End(xlUp).Row + 1
Workbooks("Mappe2.xls").Worksheets(1).Range("A" & Zfrei & ":F" & Zfrei) = _
Workbooks("Mappe1.xls").Worksheets(1).Range("A" & Target.Row & ":F" & Target.Row).Value2
End If
End Sub
Durch das einfügen vom einem (x) Mappe1.xls in SpalteA wird Mappe2.xls geöffnet und die ganze Zeile übertragen.
Pfad für Mappe2.xls im Code anpassen.
in das Codefenster von Mappe2.xls einfügen:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim RaZelle As Range
For Each RaZelle In Range(Target.Address)
If RaZelle.Column = 2 Then
ActiveSheet.UsedRange.Sort Key1:=Range("B1"), Order1:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom
Exit For
End If
Next RaZelle
ActiveWorkbook.Save
Windows("Mappe1.xls").Activate
End Sub
Mappe2.xls wird automatisch sorrtiert durch die Einträge in SpalteB und gespeichert.
Gruß
fedjo
Antwort 5 von Flieger79 vom 11.05.2019, 19:33 Options
Hallo fedjo,
vielen Dank schon mal für deine Unterstützung. Werde das die Tage mal ausprobieren.
Gruß
Kai