Listen auf andere Tabellenblätter übernehmen
Hallo,
habe folgendes Szenario:
Tabellenblatt 1
enthält Stammdaten von Mitarbeitern
* Spalte A := Pers.-Nr.
* Spalte B := Name
* Spalte C:= Organisationseinheit
Tabellenblatt 2
enthält Umsatzzahlen der Region Nord
* Spalte A := Pers-Nr.
* Spalte B := Name
* Spalte C := summe(D:F)
* Spalte D := 1. Quartal
* Spalte E := 2. Quartal
* Spalte F := 3. Quartal
* Spalte F := 4. Quartal
Die Aufgabenstellung ist es nun, im Tabellenblatt 2 immer die gleiche Mitarbeiterliste zu haben wie im Tabellenblatt 1.
Die einfachste Lösung ist sicherlich mit einem einfachen Verweis (=Tabellenblatt1!A2) zu arbeiten. Allerdings ist dann nicht sicher gestellt, dass beim Hinzufügen eines neuen Mitarbeiters dieser auch im Tabellenblatt 2 erscheint. Außer ich baue die Formel vorsorglich in jeder Zelle in Tabellenblatt 2 ein. Was allerdings eine Menge "Nullen" am Ende der Liste prodziert.
Das Verwenden eines Array (Strg+Shift+Enter) scheidet auch aus, weil die Daten im Tabellenblatt 2 nach verschiedenen Kriterien sortiert werden sollen. Aber genau das funktioniert mit einem Array nicht.
Hat jemand eine Idee, wie ich mein Problem elegant lösen kann.
Grüße - André.
Antwort schreiben
Antwort 1 von fedjo vom 04.02.2019, 13:32 Options
Hallo,
füge den Code in Tabelle1 ein, er überträgt die Werte aus Tabelle1 (A,B) in Tabelle2
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Worksheets("Tabelle2").Range("A:B").Value = Worksheets("Tabelle1").Range("A:B").Value
End Sub
Gruß
fedjo
Antwort 2 von Tango1000 vom 07.02.2019, 12:07 Options
Hallo fedjo,
danke für den Tipp!
Wie kann ich den VBA-Code so abändern, dass er nur bei einem Klick auf eine Befehlsschaltfläche ausgeführt wird?
Und wo genau muss ich den Quellcode hinkopieren?
Grüße - André.
Antwort 3 von fedjo vom 07.02.2019, 17:34 Options
Hallo André,
Tastenkompination: ALT u. F11
Tabelle1 Doppelklick
Code einfügen und speichern
Der Code i überträgt
Zitat:
automatisch
die Werte aus Tabelle1 (A,B) in Tabelle2
Oder:
Option Explicit
Public Sub Makro1()
Worksheets("Tabelle2").Range("A:B").Value = Worksheets("Tabelle1").Range("A:B").Value
End Sub
Tastenkompination: ALT u. F11
Einfügen, Modul
Code einfügen und speichern
Es gibt dann verschiedene Möglichkeite das Makro zu starten:
Tastenkombination
Schaltfläche in der Symbolleiste
Steuerelement
Gruß
fedjo
Antwort 4 von Tango1000 vom 08.02.2019, 15:11 Options
Hallo fedjo,
vielen Dank für deine schnelle Unterstützung. Das ist genau die Lösung, nach der ich gesucht hatte.
Viele Grüße - André.
Antwort 5 von Tango1000 vom 08.02.2019, 22:26 Options
Hallo fedjo,
habe noch eine Zusatzfrage:
Welchen VBA-Code füge ich ein, wenn vor dem Kopieren der beiden Spalten zunächst die Spalte B sortiert aufsteigend wird?
Viele Grüße - André.
Antwort 6 von fedjo vom 09.02.2019, 14:03 Options
Hallo André,
der Code sortiert Spalte B aufsteigend.
Option Explicit
Public Sub Makro1()
Columns("B:B").Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Worksheets("Tabelle2").Range("A:B").Value = Worksheets("Tabelle1").Range("A:B").Value
End Sub
Gruß
fedjo
Antwort 7 von Tango1000 vom 12.02.2019, 06:25 Options
Danke, hat super geklappt!
André.