Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1524to1528
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
Inhaltsverzeichnis

Arbeitsbätter vernüpfen

Arbeitsbätter vernüpfen
19.11.2016 22:50:42
Lothar
Hallo, ich bin neu in der Runde.
Ich verwalter die Mitgliederdaten eines Vereins mit einer Excelliste, betshend aus den Spalten: Mitgl-Nr., Name, Vorname, Name, Geburts-tag, -monat, -jahr, Eintrittsjahr,usw.
Diese Datei kopiere ich auf auf verschiedene Arbeitsblätter und sortiere sie nach verschiedenen Kriterien.
Wenn sich jetzt an den mitgliedsdaten etwas ändert, muss ich diese Prozedur jedesmal wiederholen.
Ich suche eine Funktion, welche die Areitsblätter miteinander verknüpft, so dass die Änderungen in allen Arbeitsblättern mit ausgeführt werden.
Danke für Eure Hilfe

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Arbeitsbätter vernüpfen
19.11.2016 23:17:51
Piet
Hallo Lothar,
ich sehe keine Beispieldatei und damit nicht den Umfang der ganzen Datei. Sind die Daten nur in einer Mappe od. in verschiedenen Dateien? Am einfachsten geht es über Formeln, indem du eine Tabelle als Stammdaten deklarierst, und die Daten zu den anderen Tabellen über eine Formel rüberholst, z.B.so: einfach ein Gleichzeichen in die Ziel-Zelle setzen und die Quell Zelle anklicken.
=Tabelle1!B2

mfg piet
AW: Arbeitsbätter vernüpfen
20.11.2016 09:01:28
Hajo_Zi
arbeite mit Verkknüpfungen.

Tabelle2
 MN
1Besucher ø238,58
2Seiten ø852,78

verwendete Formeln
Zelle Formel Bereich N/A
M1:N2='W:\Eigene Dateien\Hajo\[Besuche.xlsx]Tabelle1'!A1  
Excel-Inn.de
Hajo-Excel.de
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 23.07 einschl. 64 Bit


Wie man eine Datei in ein Arbeitsblatt kopiert ist mir nicht klar.

Anzeige
AW: die klassische Verknüpfung hilft da nicht ...
20.11.2016 10:46:04
...
Hallo Hajo, hallo Piet,
... jedenfalls nicht, wenn man in der "Quelle" Daten löscht und oder zusätzliche neue einfügen will. Und auch nicht, wenn man die Daten anders sortieren will, wie es Lothar zumindest geschrieben hat.
@Hajo,
vorgenanntes weißt Du doch sicherlich. Wieso wiederholst Du dazu die prinzipielle getroffene Aussage von Piet auch noch viele Stunden später?
@Lothar,
wenn Du in Deinen zusätzlichen Zielarbeitsblätter die zu übernehmenden Daten aus der "Quellarbeitstabelle" jedoch nicht nur neu filtern, sondern auch anders sortieren willst, gibt es - ohne VBA - nur die Möglichkeit, die Daten mittels INDEX() aus der "Quellarbeitstabelle" zunächst in Hilfszellen der neuen Tabelle zu "holen" und diese formeltechnisch neu zu sortieren. Einfacher wäre da möglicherweise eine VBA-Lösung, doch aus VBA-Lösungen halte ich mich heraus.
Meine Frage an Dich ist deshalb, willst Du die Daten in den neuen Datenblättern wirklich anders sortieren als in der "Quellarbeitstabelle"? Denn eine korrekte INDEX()-Verknüpfung übernimmt jegliche Änderung (egal ob Ergänzungen oder Neusortierung) aus der "Quellarbeitstabelle" 1:1.
Gruß Werner
.. , - ...
Anzeige
AW: die klassische Verknüpfung hilft da nicht ...
20.11.2016 10:49:15
Hajo_Zi
Hallo Werner,
das war nur um den Beitrag aus offen zu entfernen.
Der Fragesteller soll entscheiden ob offen.
Gruß Hajo
AW: die klassische Verknüpfung hilft da nicht ...
20.11.2016 18:23:45
Lothar
@Werner,
ich glaube, du hast mein Problem verstanden:
Ich möchte eine "Quellarbeittabelle" in "Folgetabellen" nach verschiedenen Kriterien "anders" sortieren und auswerten. Z.B. nach Mitgliedsnummer, nach Namen, nach Geburtsjahr usw.
Änderungen, Löschungen, Ergänzungen in der Quelle sollen in den Folgen übernommen werden.
INDEX()-Verknüpfung habe ich noch nicht gemacht. Kannst du mir ein kl. Beispiel schreiben?
VBA kenne ich mich nicht aus. Wenn es aber eine gute einfache Lösung gibt, bin ich auch dankbar.
Liebe Grüße
Lothar
Anzeige
AW: die klassische Verknüpfung hilft da nicht ...
20.11.2016 19:09:14
Piet
Hallo Lothar,
hallo Werner,
eine "Quellarbeittabelle" in "Folgetabellen" nach ... "anders" sortieren
bei meiner 1. Antwort habe ich diesen Teil wohl übersehen. Jetzt gibt es zwei Möglichkeiten:
Eine Index Lösung von Werner, eine Vba Lösung, oder beides anbieten und dir überlassen was du nimmst.
Im Falle einer Vba Lösung müsste ich Dateils wissen. Da ist eine kleine Beispieldatei vorteihaft wo man sehen
kann wo die Quelldaten stehen, in welche Tabelle kopiert werden soll, und wie sortiert werden soll.
Ich warte mal ab was Lothar dazu sagt.
mfg Piet
Anzeige
AW: die klassische Verknüpfung hilft da nicht ...
20.11.2016 19:45:39
fcs
Hallo Lothar,
mit Verknüpfungen via INDEX kann es mit dem Sortieren schwierig werden.
Warum sortierst du deine Ausgangstabelle nicht "einfach" nach Bedarf?
Wenn du hier den Autofilter benutzt, dann ist das immer nur eine Sache von ein paar Klicks.
Wenn du unbedingt die Daten auf verschiedenen Tabellenblättern wiederholen möchtest, dann ist ein Import via Menü Daten --%gt Externe Daten abrufen --&gt aus anderen Quellen --&gt von Microsoft Query
zielführend.
Im Dialog dann "Excel-Files" wählen und die Option für den Abfrage-Assistenten aktivieren.
Nach OK die Mitglieder-Datei auswählen und OK
Im Dialog "Spalten auswählen" das Blatt mit den Mitgliederdaten auswählen und alle oder nur einige Spalten hinzufügen. Dann ok
Im folgenden Dialog kannst du bis zu 3 Filter setzen - dann OK
Im folgenden Dialog kannst du nach bis zu 3 Spalten sortieren - dann OK
Unter "Verbindungseigenschaften" gibst du einen sinnvollen Namen ein und aktivierst die Option "Aktualisieren beim Öffnen der Datei". Die anderen Optionen deaktivieren.
Voraussetzungen für die Nutzung der Import-Funktion:
1. Die Spaltentitel in der Mitgliederliste stehn in Zeile 1
2. Die Datei ist immer im gleichen Verzeichnis gespeichert.
Die Makro_Lösung ist im Prinzip auch "einfach". Die kannst du für jede Sortierung mit dem Makro-Rekorder aufzeichnen.
1. Spalten im Blatt "Mitglieder" markieren und kopieren.
2. zum Einfüge-Blatt wechsel und Zelle A1 selektieren, Einfügen
3. Daten im Einfügeblatt sortieren.
Danach muss man dann das Makro noch ein wenig aufräumen und verallgemeinern bezüglich der Zeilen-Nummern.
LG
Franz
Beispiel für Makro:
Sub prcGeburtstag()
' Mitglieder nach Geburtsmonat und Tag sortieren
Dim Zeile As Long
Dim wksZiel As Worksheet
Set wksZiel = Sheets("Geburtstag")
Worksheets("Mitglieder").Columns("A:H").Copy wksZiel.Range("A1")
wksZiel.Select
With wksZiel.UsedRange
Zeile = .Row + .Rows.Count - 1
End With
Application.CutCopyMode = False
wksZiel.Sort.SortFields.Clear
wksZiel.Sort.SortFields.Add Key:=wksZiel.Range("F2:F" & Zeile), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
wksZiel.Sort.SortFields.Add Key:=wksZiel.Range("E2:E" & Zeile), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
wksZiel.Sort.SortFields.Add Key:=wksZiel.Range("G2:G" & Zeile), _
SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With wksZiel.Sort
.SetRange wksZiel.Range("A1:H" & Zeile)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A2").Select
ActiveWindow.FreezePanes = True
End Sub

Anzeige
AW: zur INDEX()- Zellverknüpfung ...
20.11.2016 19:50:24
...
Hallo Lothar,
... angenommen Deine Quelldaten stehen in der gleichen Arbeitsmappe (bei einer anderen kommt lediglich der Dateiname noch hinzu) in Tabellenblatt Tabelle1 und da z.B. in B11:N19.
Wenn Du nun im Zielarbeitsblatt in B11 folgende Formel einschreibst: =INDEX(Tabelle1!$A:$Z;;) und diese nach rechts und unten ziehend kopierst, wird der jeweilige Wert (ohne Format) der gleichen Zelladresse aus dem Quellarbeitsblatt geholt. Für leere Zellwerte im Quellarbeitsblatt steht im Zielarbeitsblatt als Ergebnis natürlich eine 0 (dies kannst Du aber auf verschiedene Art und Weisen abfangen, so dass dann dort z.B. "" steht).
Egal ob Du im "Quellarbeitsblatt" Zeilen einfügst oder löschst, die INDEX()- Zellverknüpfung holt die werte immer aus der zugeordneten Zelladresse. Das solltest Du einfach mal selbst testen.
Aber da die Daten im Zielarbeitsblatt somit einen Bezug besitzen, kannst Du diese Daten nicht mehr anders sortieren als sie im Quellarbeitsblatt sortiert sind, es sei denn Du hebst den Bezug wieder auf. Damit würde aber nicht mehr auf Änderungen im Quellarbeitsblatt reagiert werden können.
Für mich stellt sich jetzt wirklich die Frage, ob Dein eigentliches Anliegen nicht ganz ohne Datenübernahme in Zielarbeitsblatt gelöst werden kann sondern da einfach nur Deine gewünschten Auswertungen mit Bezug auf das Quellarbeitsblatt vorgenommen werden können.
Doch dazu wäre eine kleine Beispieldatei (mit Dummiedaten) sinnvoll in der Du auch dafür Deine Zielstellungen aufzeigst.
Gruß Werner
.. , - ...
Anzeige
allg. Vorschlag mit VBA
20.11.2016 21:40:48
Michael
Hi,
ich habe mich mal an einer allgemeine VBA-Lösung versucht: https://www.herber.de/bbs/user/109587.xlsm
Das Makro ist relativ "dumm und brachial", aber bis zu einigen 100 Datensätzen sollte es brav (ohne große Zeitverzögerung) laufen.
Dieser Version https://www.herber.de/bbs/user/109588.xlsm habe ich noch ein Gimmick verpaßt: wenn man in einer der kopierten Tabellen eine Zelle doppelt anklickt, wird die Mitglieds-Nr. ausgelesen und ein weiteres Makro springt ins Blatt "Daten" in die betreffende Zeile: damit kommt man schnell zum betreffenden Datensatz, falls einem eine Änderung ins Auge springt.
Pro gewünschtem Tabellenblatt gibt es bis zu drei mögliche Angaben:
a) den Namen des Blattes (z.B. Telefon)
b) die zu übernehmenden Spalten als mit Komma getrennte Nummern und
c) die zu sortierenden Spalten, ebenfalls als mit Komme getrennte Nummern.
Ich habe einige Test-Namen angelegt: einfach Button klicken und gucken...
Weil die Angaben so abstrakt sind (nur Nummern statt Buchstaben bzw. gar Überschriften), läuft es mit beiliebigen Daten im Blatt "Daten", vorausgesetzt, die beginnen in A1 mit Überschriften und Daten ab A2, und zwar OHNE leere Zeilen.
D.h., Lothar muß nur seine Daten reinkopieren...
Happy exceling,
Michael
Anzeige
AW: allg. Vorschlag mit VBA
21.11.2016 22:17:20
Lothar
Hallo Michael,
deine Lösung sieht sehr gut aus.
Ich würde es aber auch gern verstehen. Kannst du es mir (einfach) erklären ?
Vielen Dank
Lothar
AW: allg. Vorschlag mit VBA
22.11.2016 12:50:11
Michael
Hallo Lothar,
hast Du Deine Daten samt Überschrift mal reinkopiert? Ging das dann alles anstandslos?
Was möchtest Du erklärt haben: die Anpassung an Deine vorhandenen "Kopien" (also die Bedienung) oder das Makro selbst?
Nebenbei: die ganze Logik stammt aus meiner allerersten Datenbank, die ich programmiert hatte: es war auch eine schlichte Liste von Daten, und der Kunde hatte in kürzester Zeit rund 6000 Datensätze reingeklopft. Damals gab es auch unterschiedliche Sortierreihenfolgen, die (natürlich) mit DB-mäßigen Indexdatein realisiert waren. Auf dem "AT" (286-CPU, so 10 oder 12 MHz) dauerte eine Volltextsuche rund 2 Minuten, das war für die damaligen Verhältnisse rasend schnell.
Nun, beim Umstieg auf Win7 lief das DOS-Programm nicht mehr, so daß ich die Geschichte verexceln mußte. Das Kopieren und Sortieren von mittlerweile rund 12000 Datensätzen geht mit der auch bei Dir verwendeten Logik gut fix - allerdings könnte das Löschen der Spalten etwas dauern.
Schöne Grüße,
Michael
Anzeige
AW: allg. Vorschlag mit VBA
24.11.2016 14:39:20
Lothar
Hallo Michael,
ich fange einfach mal an, meine Daten einzugeben. Wird ein paar Tage dauern, habe am Wochenende wenig Zeit.
Ich melde mich wieder.
Bis bald
Lothar
AW: allg. Vorschlag mit VBA
24.11.2016 16:52:54
Michael
Hi Lothar,
ich dachte, die hattest Du alle schon in einer Tabelle? Die mußt Du doch nur über die Zwischenablage in meine Datei kopieren - samt Überschriften in der 1. Zeile.
Na gut: die Frage ist in Kürze nicht mehr sichtbar. Sollte noch was sein, mußt Du halt eine neue aufmachen.
Viel Spaß,
Michael
AW: allg. Vorschlag mit VBA
24.11.2016 17:13:19
Lothar
Hallo Michael,
ich habe meine daten reinkopiert. Es funktioniert.
Bei dieser Lösung sind nicht die Arbeitsblätter miteinander "verbunden", wie ich es dachte, sondern nach einer Änderung der "Daten" muß ich über "Machen" die gesamte Routine durchlaufen lassen. Die Datei wird überschrieben, dann unter neuem Namen Speichern.
Meine eigentliche tabelle hat noch ein paar Spalten mehr. Wie kann ich die Kopier- und Sortierläufe selbst festlegen. Kannst du mir diese Bedienung erklären, wie und wo ich die entsprechenden Werte eingeben kann.
Danke für deine Geduld
Lothar
Anzeige
Bedienung
24.11.2016 17:45:43
Michael
Hallo Lothar,
genau: *nicht verbunden*.
Aber weil das sooo schnell geht, ist es kein Umstand, das Makro anzuwerfen.
Die Blätter, die Du haben willst, gibst Du im Blatt "Master" ein, ab Zeile 5:
Userbild
In Spalte B den Namen des zu erzeugenden Blattes.
In Spalte C gibst Du entweder gar nix an, dann werden alle Spalten kopiert, oder die Nummern der Spalten, die Du haben willst: alle anderen werden gelöscht.
In Spalte D bis zu 3 (weitere werden "unterschlagen") Sortierkriterien, und zwar die Spaltennummern mit Komma getrennt - wenn es mehr als eines ist - bitte keine Leerzeichen zwischen Zahlen und Kommas!
Die Spalte E wird vom Makro ausgefüllt, damit man sieht, was passiert ist (da stehen ja in der Originaldatei die Hinweise).
"K" steht für "Kopie" (wenn denn in B was steht, nicht wie in der leeren B7), "S" für "Sortiert" und "L" für "Spalten geLöscht".
K,-,- heißt also (Zeile 5) z.B.: Blatt wurde auf den Namen "Sicherung" kopiert, sortiert und gelöscht wurde nix.
Das mit den Spaltennummern ist etwas abstrakt und kann bei sehr breiten Tabellen lästig sein; Du kannst in einer beliebigen Zelle mal eingeben:
=Spalte()
dann wird die Nr. angezeigt, die Du in C bzw. D übernehmen kannst.
Schöne Grüße,
Michael
AW: Bedienung
24.11.2016 18:40:18
Lothar
Danke
muß ich mich mal in Ruhe mit beschäftigen.
Bis Bald
Lothar
AW: Mein Vorschlag: Daten-Import
24.11.2016 23:54:03
fcs
Hallo Lothar,
hast du dich eigentlich mal mit meinem Vorschlag beschäfftigt?
https://www.herber.de/forum/messages/1525980.html
Das sollte für deine Zwecke eigentlich die ideale Lösung sein. Keine Makros, keine extra Formeln.
Auswahl bestimmter Spalten ist möglich, Sortieren nach bis zu 3 Spalten und falls gewünscht kannst du sogar Filter festlegen für bis zu 3 Spalten.
LG
Franz
AW: Mein Vorschlag: Daten-Import
25.11.2016 15:55:19
Lothar
Hallo Franz,
danke für Deinen Vorschlag und die Erinnerung.
Mit der ersten Variane bin ich nicht so richtig weitergekommen.
Aber die Makro-Lösung ist sehr interesant. Zuerst dachte ich, ich muß das Makro selbst schreiben. Aber jetzt sehe ich dass ich damit die mit gewohnten Funktionen aufzeichnen und als Routine wieder abspielen kann. damit bleibe ich flexibel.
bei der VBA bin ich blind und auf fremde Hilfe angewiesen.
Ich denke, ich werde auf dem Weg weitermachen. .ich werde dir meine Erfolge !! mitteilen .
bis bald
Lothar

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige