Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Listen auf andere Tabellenblätter übernehmen





Frage

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 1 von fedjo

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

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

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

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

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

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

Danke, hat super geklappt!

André.