Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
796to800
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
796to800
796to800
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Tabellen verknüpfen

Tabellen verknüpfen
02.09.2006 21:50:06
Eddi
ich habe folgendes Problem:
Ich habe in einer Arbeitsmappe 3 Tabellen mit den gleichen Inhalten, die jedoch jeweils nach verschiedenen Kriterien sortiert sind.
Tabelle 1 ist nach Namen sortiert
Tabelle 2 ist nach Artikelnummer sortiert
Tabelle 3 ist nach Regalnummer sortiert
Sobald ich in Tabelle 1 eine Änderung oder eine Ergänzung vornehme, soll diese auch automatisch in Tabelle 2 un 3 vorgenommen werden.
Kann mir hier jemamd weiterhelfen?

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellen verknüpfen
02.09.2006 22:02:29
Emilia
Arbeite doch mit Sverweis oder Wverweis damit kannst du viel machen
man hilft gern wen man kann!!
Gruß Emi
AW: Tabellen verknüpfen
02.09.2006 22:07:21
Trostlooser
Ich hätte folgende Idee: Gib dem Bereich auf Tabelle 1, 2 und 3 jeweils einen Namen. Über das SheetChange-Ereignis kopierst Du den entsprechenden Bereich in die übrigen und führtst dort noch mal die jeweilige Sortierung aus (was man ja auch als Makro aufzeichnen kann). Auf Diese Weise kann man sogar Änderungen in den Tabellen 2 und 3 machen, sofern jede ihre (geänderte) Tabelle über die SheetChange-Prozedur auf die anderen Blätter verteilt. Meld Dich wenn Du Unterstützung beim Quellcode brauchst.
Gruß
Trost Looser
Anzeige
AW: Tabellen verknüpfen
02.09.2006 22:20:06
Eddi
Hallo TrostLooser,
vielen Dank für Deine Nachricht. Leider bin ich ein absoluter Laie uns weiß nicht, was ein SheetChange-Ereignis ist und wie es funktioniert. Vielleicht kannst Du mir noch einige Infos dazu geben.
Vielen Dank.
Gruß
Eddi M.
AW: Tabellen verknüpfen
02.09.2006 22:30:58
TrostLooser
Hallo Eddi
Markiere zunächst auf Tabelle1 den gesamten Datenbereich und gehe dann im Menü zu "Einfügen-Namen-Definieren..." Gib dem Bereich nun einen Namen, z.B. "Daten1". Das gleiche machst Du für Tabelle2 und 3 (also "Daten2" und "Daten3"). Die Bereiche sollten alle die gleiche Dimension (Anzahl Zeilen & Spalten) haben - richtig? Erledige das schon mal während ich am Programmier-Code arbeite. Bis gleich...
Anzeige
AW: Tabellen verknüpfen
02.09.2006 23:36:19
Trostlooser
Sorry, musste zwischendurch noch kurz was erledigen...
Nach der Benennung der Bereiche gehst Du nun in den VBA-Editor mit Alt+F11. Im linken Bereich solltest Du eine Liste mit Objekten sehen, die an den Windows-Explorer erinnert. Doppel-Klicke die auf Tabelle1. Ein Fenster sollte sich nun öffnen. Im oberen Bereich des Fensters findest Du zwei ausklappbare Listen. In der linken wählst Du nun "Worksheet" aus, währen Du dann in der rechten "Change" auswählst. Es sollte Dir gleich ein Prozedur-Rumpf erstellt werden, also

Private Sub Worksheet_Change(ByVal Target As Range)
End Sub

Diese Prozedur wird immer dann ausgeführt, wenn du den inhalt einer Zelle auf Tabelle1 änderst. Gib folgenden Text ein:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich_von As Range, Bereich_nach As Range
Dim i As Integer
Set Bereich_von = ThisWorkbook.Names("Daten1").RefersToRange
Set Bereich_nach = ThisWorkbook.Names("Daten2").RefersToRange
If (Bereich_von.Columns.Count <> Bereich_nach.Columns.Count) Or (Bereich_von.Rows.Count <> Bereich_nach.Rows.Count) Then
MsgBox "Leider sind die Dimensionen nicht gleich, evtl. Zeilen und/oder Reihen eingefügt/entfernt?"
'Kann umgangen werden, wenn von vorneherein der Datenbereich etwas größer mit weiteren leeren Zeilen gewählt wird!!!
Exit Sub
End If
Bereich_von.Copy Bereich_nach
Bereich_nach.Sort Key1:=Bereich_nach.Columns(2), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
'Das gleiche nun für Tabelle3
Set Bereich_nach = ThisWorkbook.Names("Daten3").RefersToRange
If (Bereich_von.Columns.Count <> Bereich_nach.Columns.Count) Or (Bereich_von.Rows.Count <> Bereich_nach.Rows.Count) Then
MsgBox "Leider sind die Dimensionen nicht gleich, evtl. Zeilen und/oder Reihen eingefügt entfernt?"
Exit Sub
End If
Bereich_von.Copy Bereich_nach
Bereich_nach.Sort Key1:=Bereich_nach.Columns(3), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
'Am Schluss noch Tabelle1 sortieren
Bereich_von.Sort Key1:=Bereich_von.Columns(1), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub

Hinweise:
Wenn Du deine Bereiche anders genannt hast, dann musst Du statt "Daten1" Deinen Namen verwenden.
Weiterhin musst Du die Sortierung anpassen: Key1:=Bereich_nach.Columns(X) wobei X die Spalte innerhalb der Tabelle ist nach der Du soriteren willst, z.B. dritte Spalte der Tabelle, also: ...Columns(3).
Eventuell musst Du noch Header:= verändern, wenn die Sortierung nicht richtig funktioniert. Kommt darauf an, ob Dein Bereich die Spaltenkopfbezeichnung mit einschließt oder nicht.
Wie bereits im Quellcode erwähnt müssen die Bereiche alle die gleiche Dimension haben. Ansonsten muss man per VBA die Bereiche durch Einfügen oder Löschen von Zeilen und Spalten angleichen was recht aufwendig ist. Besser ist es wenn man die Bereiche gleich etwas größer wählt, also bei der Namensvergebung den ausgewählten Bereich nach unten hin etwas ausdehnt und einige leere Zeilen mit erfasst, wo man dann neue Daten einträgt (die ja danach ohnehin an die richitge Stelle sortiert werden). Schließlich kannst Du den gesamten Quelltext, wenn alles gut funktioniert, dann kopieren und einfach in die Fenster der anderen Tabellen hinein kopieren (wieder Doppel-Klick). Dann must Du allerdings bei den Set Bereich_von und Set Bereich_nach die Namen entsprechend ändern: Für Tabelle2 also "Daten2" als von und "Daten1" und "Daten3" als nach. Somit werden alle Blätter immer synchronisiert und immer gleich passend sortiert, allerdings immer wenn eine Zelle auf dem Arbeitsblatt geändert wird! Stattdessen kannst Du den Code auch mit einem Knopf "Aktualisieren" verbinden wenn Du willst...
Hoffe es hat Dir weiergeholfen. Übrigens den VBA-Editor verlässt Du über das kleine X-Symbol in der linken Ecke. ;-)
Gruß Trost Looser
Anzeige
AW: Tabellen verknüpfen
03.09.2006 21:24:54
Eddi
Hallo TrostLooser,
du hast Dir ja mächtig Mühe gemacht. Vielen Dank dafür und viele Grüsse
Eddi M.
AW: Tabellen verknüpfen
02.09.2006 22:57:32
Matthias
Hallo Eddi,
du könntest es auch bei einer Tabelle lassen, und diese z.B. mit Klick auf einen Button oder Doppelklick auf die Spaltenüberschrift nach dem gewünschten Kriterium sortieren lassen.
Gruß Matthias

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige