d4shoernchen
Goto Top

Tabellenverknüpfung innerhalb eines Netzwerkes, Pivot-Tabelle!?

Guten Morgen, liebe Community.

Ich bräuchte einmal Eure Hilfe, ich stehe vor folgendem Excel-Problem.

Ich möchte mir eine "Master"-Excel-Datei erstellen, die mit anderen Excel-Dateien verknüpft ist. Der Aufbau ist wie folgt:

Master-Excel-Datei
Liegt in einem User-Verzeichnis, z.B. Admin und soll die Inhalte von anderen Excel-Dateien auflisten, die in anderen User-Verzeichnissen liegen.
Übersicht User1 User2
1 1 4
2 2 5
3 3
4
5

User-Excel-Datei
Liegt im jeweiligen User-Verzeichnis, welches nur vom Benutzer und vom Administrator aufrufbar ist.

Feld1 Feld2
1 testtest
2 testtest
3 testtest

Jeder Benutzer hat seine eigene Excel-Datei, in der Master-Datei sollen nur bestimmte Werte wieder gegeben werden. In dem Fall jeweils nur die Spalte A:A.

Versucht habe ich es mit einer einfachen Verknüpfung, was soweit auch funktioniert. Hier ist das Problem, dass leere Zeilen in der User-Datei mit Nullen in der Master-Datei gefüllt werden! Schöner finde ich die Variante mit der Pivot-Tabelle und da stoße ich nun auf Schwierigkeiten.

Unter "Daten" wollte ich eine Verbindung zu den verschiedenen Excel-Tabellen herstellen. Wähle ich die jeweiligen Dateien in den User-Verzeichnissen aus, kommt ein Assistent wo ich Provider und Logindaten (wo ich die Administrator-Logindaten verwendet habe) eintragen kann. Allerdings bringt der Verbindungstest keinen Erfolg. Als Provider ist standardmäßig "MS Office 12 Access Database Engine OLE DB Provider" gewählt. Wechsel ich den Provider, klappt der Verbindungstest teilweise. Allerdings nach Bestätigung sagt er, dass keine Daten vorhanden sind.

Speicher ich die Excel-Dateien lokal, funktioniert es. Hier machen anscheinend die User-Verzeichnisse ein Problem.

Könnt Ihr mir bei meinem Problem helfen?

Vielen Dank und lieben Gruß

Content-Key: 183830

Url: https://administrator.de/contentid/183830

Printed on: April 26, 2024 at 15:04 o'clock

Member: mak-xxl
mak-xxl Apr 20, 2012 at 07:01:56 (UTC)
Goto Top
Moin d4shoerncheN,

Zitat von @d4shoerncheN:
Versucht habe ich es mit einer einfachen Verknüpfung, was soweit auch funktioniert. Hier ist das Problem, dass leere Zeilen
in der User-Datei mit Nullen in der Master-Datei gefüllt werden!

Das ist doch nicht verkehrt, weil 'keine Daten' -> '0' ist eine Aussage (die man mit 'Nullwerte nicht anzeigen') abstellen kann.

Schöner finde ich die Variante mit der Pivot-Tabelle und da stoße ich nun auf Schwierigkeiten.

Gut - ich würde hier aber strikt trennen: Datenimport per Verknüpfung <-> Pivot-Tabelle mit Bezug auf Import-Datenbestand.

... Allerdings bringt der Verbindungstest keinen Erfolg. Als Provider ist standardmäßig
"MS Office 12 Access Database Engine OLE DB Provider" gewählt.

Du arbeitest aber nur mit Excel-Tabellen?!

Wechsel ich den Provider, klappt der Verbindungstest teilweise.

Was heißt das?

Freundliche Grüße von der Insel - Mario
Member: d4shoerncheN
d4shoerncheN Apr 20, 2012 at 07:06:14 (UTC)
Goto Top
Vielen Dank für die schnelle Antwort.

Das ist doch nicht verkehrt, weil 'keine Daten' -> '0' ist eine Aussage (die man mit 'Nullwerte nicht anzeigen' abstellen kann.
Ah, okay. Das wusste ich nicht, das werde ich mir gleich mal angucken. Wobei mir die Pivot, aufgrund der Formatierung und Übersicht, besser gefallen würde.

Du arbeitest aber nur mit Excel-Tabellen?!
Das ist korrekt.

Was heißt das?
Als Provider gibt es ja mehrere Varianten, einige funktionieren mit den Admin-Logindaten und manche nicht. Wenn es hilfreich ist, kann ich gerne alle auflisten und hinter schreiben, ob Test klappte oder nicht.
Member: mak-xxl
mak-xxl Apr 20, 2012 at 07:14:08 (UTC)
Goto Top
Moin d4shoerncheN,

Zitat von @d4shoerncheN:
... kann ich gerne alle auflisten und hinter schreiben, ob Test klappte oder nicht.

Nein, bloß nicht face-wink
Ich denke, eine einfache Verknüpfung ist stabil und ausreichend, wenn Verbindungseinschränkungen (i.e. Nichterreichbarkeiten) bestehen, kannst Du immer noch auf VBA ausweichen (i.e. Datenaktualisierungen nur bei Erreichbarkeit/Änderungen etc.). Wie die Daten ausgewertet werden (Pivot, Diagramm etc.) ist davon unabhängig zu machen, je nach Bedarf und Gusto.

Freundliche Grüße von der Insel - Mario
Member: d4shoerncheN
d4shoerncheN Apr 20, 2012 at 07:19:48 (UTC)
Goto Top
Habe die Variante mit den Verknüpfungen nun erst einmal so gemacht und die Nullwerte ausgeblendet. Optisch scheint es so ja "okay" zu sein, nur sehe ich nun noch folgendes Problem. Die 0-Werte werden zwar nicht angezeigt, trotzdem wären alle Zellen mit einer Formel belegt, was den Speicherplatz enorm anhebt, oder nicht?
Member: mak-xxl
mak-xxl Apr 20, 2012 at 07:40:13 (UTC)
Goto Top
Moin d4shoerncheN,

Zitat von @d4shoerncheN:
... alle Zellen mit einer Formel belegt, was den Speicherplatz enorm anhebt, oder nicht?

Nun ja, wenn Du aber die Daten in dem Umfang importieren musst - will heißen, es könnte aber an diese Stelle auch ein von '0' verschiedener Wert stehen.

Die Formeln stehen intern als Bereichsnotation recht platzsparend, wenn, dann blähen die Daten die Mappe auf. Aber Du hast recht, mehrere 10k Formeln schaffen Megabytes ...

Die Datenverknüpfung vieler Tabellen lässt sich vereinfachen, indem ganze Bereiche importiert werden (Stichwort 'Bereichsnamen') - wenn also in der Quelle ('T1') ein Bereich 'A:F' den Namen 'AF' erhält, funktioniert in der Zieltabelle die Verknüpfung mit der Matrixformel {=T1!AF}, das spart ein paar Zeichen (je Formel). Dann wären da noch die benutzerdefinierten Funktionen ... Das geht aber auch in diese Richtung: Große Mengen Daten lassen sich viel leichter mit VBA importieren respektive verknüpfen - Beispiel gern auf Anfrage.

Freundliche Grüße von der Insel - Mario
Member: d4shoerncheN
d4shoerncheN Apr 20, 2012 at 07:50:52 (UTC)
Goto Top
Moin, mak-xxl.

Das wäre super, wenn du mir da helfen könntest. Ich erkläre dir auch erstmal worum es in den Excel-Dateien überhaupt geht. Es ist eine E-Mail Adressensammlung für ein Newsletter. Jeder User hat seine eigenen Interessenten.

Die Excel-Dateien der User sind alle gleich aufgeteilt
E-Mail Adresse Vorname Nachname Firma
emailadresse vorname nachname firma

Die Master-Datei soll nun eine Auflistung von ALLEN E-Mail Adressen der Benutzer erstellen. Momentan besteht die Master-Datei aus verschiedenen Reitern. Ein Reiter "Übersicht" wo alle E-Mail Adressen der Benutzer untereinander aufgelistet werden sollen (da hänge ich momentan auch). Und je ein Reiter pro Benutzer, dass der Admin noch einmal gucken kann, welche E-Mail Adresse von welchem Benutzer kommt.
Member: mak-xxl
mak-xxl Apr 20, 2012 at 08:11:39 (UTC)
Goto Top
Moin d4shoerncheN,

Zitat von @d4shoerncheN:
E-Mail Adresse Vorname Nachname Firma
emailadresse vorname nachname firma

Also Spalte A soll jeweils importiert werden? Excel <> 2k7?

Die Master-Datei soll nun eine Auflistung von ALLEN E-Mail Adressen der Benutzer erstellen. Momentan besteht die Master-Datei aus verschiedenen Reitern.

'Reiter' = Tabellenblatt?

Und je ein Reiter pro Benutzer, dass der Admin noch einmal gucken kann, welche E-Mail Adresse von welchem Benutzer kommt.

Anzahl Benutzer? Wie sind diese erreichbar - sprich: Link auf Einzelplatz, Share auf (selbem) Server etc.?

Freundliche Grüße von der Insel - Mario
Member: d4shoerncheN
d4shoerncheN Apr 20, 2012 at 08:16:46 (UTC)
Goto Top
Also Spalte A soll jeweils importiert werden? Excel <> 2k7?
Genau. Oh stimmt, habe ich vergessen zu erwähnen. Tut mir Leid, verwendet wird Office 2010.

'Reiter' = Tabellenblatt?
Korrekt.

Anzahl Benutzer? Wie sind diese erreichbar - sprich: Link auf Einzelplatz, Share auf (selbem) Server etc.?
Sind vier verschiedene Benutzer. Ja, sind alle auf einem Terminalserver und legen Ihre Dateien auf einer Partition (F) ab.

Habe momentan ein Tabellenblatt pro Benutzer, wo die E-Mail Adressen auch alle schön aufgelistet werden. Nun habe ich nur das Problem, dass ich gerne die E-Mail Adressen der einzelnen Tabellenblätter (User) auf dem Tabellenblatt (Übersicht) untereinander aufgelistet haben möchte.
Member: mak-xxl
mak-xxl Apr 20, 2012 at 08:28:11 (UTC)
Goto Top
Moin d4shoerncheN,

Zitat von @d4shoerncheN:
Habe momentan ein Tabellenblatt pro Benutzer, wo die E-Mail Adressen auch alle schön aufgelistet werden.

Dann hast Du doch die wesentlichen Probleme schon gelöst!? face-smile

Nun habe ich nur das Problem, dass ich gerne die E-Mail Adressen der einzelnen Tabellenblätter (User) auf dem
Tabellenblatt (Übersicht) untereinander aufgelistet haben möchte.

Warum diese Doppelung (Redundanz) - das bringt keine neuen oder zusätzlichen Infos und bläht nur die Datei auf. Und bei 4 Usern das jeweilige Blatt anklicken, evtl. per Link von dieser Übersichtsseite ...
Gestalte die Übersichtsseite doch eher als Statistik - Anzahl Adressen je User, Anzahl gmx, web etc. pp., Mailadresse länger als x Zeichen, Mailadressen mit Umlauten, Leerzeichen usw.

Freundliche Grüße von der Insel - Mario
Member: d4shoerncheN
d4shoerncheN Apr 20, 2012 at 08:33:20 (UTC)
Goto Top
Hallo,

das hat den Grund - da diese E-Mail Adressen (gesamt als .csv-Datei) weitergegeben werden. Wenn er nun die E-Mail Adressen aus Tabellenblatt 2 und 3 untereinander auf Tabellenblatt 1 schreiben würde, bräuchte man nur noch die Spalte A:A aus Tabellenblatt 1 als .csv abspeichern, ohne von Hand alle E-Mail Adressen zu kopieren und untereinander anzufügen.

Generell bräuchte ich die Tabellenblätter der User in der Master-Datei nicht. Wichtig ist nur, dass in der Master-Datei halt ALLE E-Mail Adressen der User-Dateien untereinander aufgelistet werden, damit man sie direkt als .csv exportieren kann.

Sollte quasi so aussehen:

Übersicht User 1 User 2
Blindtext 1 Blindtext 1 Blindtext 4
Blindtext 2 Blindtext 2 Blindtext 5
Blindtext 3 Blindtext 3
Blindtext 4
Blindtext 5
Member: mak-xxl
mak-xxl Apr 20, 2012 at 09:04:40 (UTC)
Goto Top
Moin d4shoerncheN,

Zitat von @d4shoerncheN:
Hallo,
das hat den Grund - da diese E-Mail Adressen (gesamt als .csv-Datei) weitergegeben werden

Wenn es nur das ist:
- Schaltfläche auf 1. Blatt einfügen,
- folgenden Code zufügen:

Sub CommandButton1_Click()
    Dim i As Integer, z As Long
    Dim strContent As String, strDelims As String
    Dim CSVFile As String
    strDelims = ";"                                                                     ' Trenner für csv  
    CSVFile = "AllUserMail.csv"  
    With Application.ThisWorkbook
        For i = 2 To .Sheets.Count                                                      ' alle Blätter außer 1.  
            For z = 1 To .Sheets(i).Range("A" & Rows.Count).End(xlUp).Row               ' Spalte A, soweit belegt  
                If .Sheets(i).Cells(z, 1) <> Empty Then                                 ' evtl. Leerzeilen nicht  
                    strContent = strContent & .Sheets(i).Cells(z, 1).Text & strDelims   ' jeden Zellinhalt  
                End If
            Next z
        Next i
    End With
    Open CSVFile For Output As #1                                                        ' csv-datei (über-)schreiben ... 
        Print #1, strContent
    Close #1
End Sub

Damit werden aus allen User-Tabellen (außer Tabelle 1) die in Spalte 'A' stehenden Einträge fortlaufend in eine Datei (Zeile 6) geschrieben. Sollten die User-Tabellen eine Überschrift tragen, so ist in Zeile 9 der Startwert für z entsprechend anzupassen.

Freundliche Grüße von der Insel - Mario
Member: d4shoerncheN
d4shoerncheN Apr 20, 2012 at 09:19:45 (UTC)
Goto Top
Vielen Dank, hat soweit auch gut geklappt. Er erstellt die .csv-Datei - allerdings fügt er dort alle E-Mail Adressen nebeneinander, statt untereinander an.

Aber schon mal vielen vielen Dank face-smile
Member: mak-xxl
mak-xxl Apr 20, 2012 at 09:25:19 (UTC)
Goto Top
Moin d4shoerncheN,

Zitat von @d4shoerncheN:
Vielen Dank, hat soweit auch gut geklappt. Er erstellt die .csv-Datei - allerdings fügt er dort alle E-Mail Adressen nebeneinander, statt untereinander an.

Nun ja, wenn Dir die optische Ansicht eines csv-Files im Editor wichtig ist, dann nimm als Trennzeichen in Zeile 5

strDelims = vbCr

einen Zeilenumbruch - aber beim Einlesen daran denken!

Freundliche Grüße von der Insel - Mario
Member: d4shoerncheN
d4shoerncheN Apr 20, 2012 at 09:30:16 (UTC)
Goto Top
Perfekt, super!

MIR ist die optische Ansicht nicht wichtig, allerdings den Leuten die die .csv-Datei bekommen. Ich danke dir vielmals.

Wünsche dir ein schönes Wochenende.
Member: mak-xxl
mak-xxl Apr 20, 2012 at 09:34:17 (UTC)
Goto Top
Moin d4shoerncheN,

ebenfalls ein schönes, sonniges, arbeitsarmes Wochenende sei gewünscht - Mario