Anzeige
Archiv - Navigation
824to828
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
824to828
824to828
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Liste untereinander

Liste untereinander
06.12.2006 22:56:34
Thomas
Hallo Zusammen
Ich möchte eine Adresslsiste mit verschieden vielen Angaben in der Zeile untereinanter auflisten (siehe Beispieldatei).
https://www.herber.de/bbs/user/38794.xls
Originaldatei ca. 1000 einträge (bischen viele für Handarbeit)
Kann mir jemand ein VBA-Scribt entwerfen?
Vielen Dank
Gruss Thomas

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Liste untereinander
07.12.2006 00:48:34
Yal
Das Problem wäre unter Access schneller behandelt, als unter Excel.
Das Problem ist eigentlich kein "Problem" sondern ein klassische "Aufgabe" der Datenbank-Welt: es hiesst Normierung.
Du kannst unter Excel wie folgt umgehen (ohne Makro):
_ kopiere das Inhalt der Spalte "Adr-Nr" (mit Überschrift) in die zweite Blatt ("Tabelle2"), und zwar in die erste Spalte,
_ kopiere den ersten Parzellen-Block (Parz, Waldgde, Waldfläche) (mit Überschrift) in Tabelle2 in Spalten H bis J. Achte darauf, dass die Zeilen der "Adr-Nr" und der Parzellen in Tabelle2 weiterhin zusammenpassen,
_ kopiere wieder das Inhalt der Spalte "Adr-Nr" (OHNE Überschrift) in Tabelle2 Spalte 1 unter die erste Eintrag. Note: um schnell diese Adressenblock zu markieren auf erste Zelle klicken (im Beispiel A5) und Strg+Shift+ Pfeil-nach-unten drücken.
_ kopiere den zweiten Parzellen-Block (OHNE Überschrift) unter den erste Block in Spalten H bis J, passend zu den gerade eingetragene Adressennummer,
_ weiter so für alle Parzellen-Definition.
Dann Speichern! (am besten als neue Datei)
_ Daten in Tabelle2 nach Spalte J sortieren: die Parzellen ohne Fläche sammeln sich im untere Bereich. Diese nicht existierende Parzellen markieren (ganze Zeile) und löschen,
_ in Spalten B bis G Formel (hier am Beispiel von Zelle B2)
=SVERWEIS(A2;Tabelle1!$A:$G; SPALTE();Falsch)
eintragen.
_ eventuell für die Spalten Kategorie, Gruppen und Mut_Dat ergänzen.
_ Spalten B bis G in Tabelle2 markieren, kopieren, Inhalt einfügen als Wert. (Menü Bearbeiten, Inhalt einfügen...).
_ Tabelle1 löschen,
_ speichern.
Dat war's
Viel erfolg
Yal
Anzeige
AW: Liste untereinander
07.12.2006 06:34:21
Thomas
Hallo Yal
Gerade deswegen will ich die Daten Normieren, damit ich sie in Access einbauen kann. Probiere mal, ob ich das wie Beschrieben von dir hinkriege.
Besten Dank
Gruess
Thomas
AW: Liste untereinander
07.12.2006 16:05:43
Yal
Dann vergiss meine Anleitung.
Es geht mit Access viel einfacher.
Gestalte die Tabelle mit den Daten so, dass die Überschriften sich auf die erste Zeile befinden. Speichere die Mappe und schliesse Sie.
Öffne Access, gehe auf dem Reiter "Tabellen", Auswahl "Neu" (der neben "Öffnen" und "Entwurf"), Selektion "Tabelle verknüpfen". Öffne die Exceldatei. Der Assitent ist relativ selbstverständlich: "Erste Zeile enthält Spaltenüberschriften", usw.
Dann folgende Abfrage laufen lassen:
1. für die Adressen:
SELECT T.[Adr-Nr#] As AdrNr, T.Firma1, T.Name, T.Vorname, T.Adresse1, T.PLZ, T.Ort, T.Kategorie, T.Gruppen, T.Mut_Dat
INTO Adressen
FROM Tabelle1 AS T;
2. für die Parzellen:
SELECT T2.A AS AdrNr, T2.P AS Parz, T2.W AS Waldgde, T2.F AS Waldfläche
INTO Parzellen
FROM [
SELECT T.[Adr-Nr#] as A, T.[W01-Parz] as P, T.[W01-Waldgde] as W, T.[W01-Waldfläche] as F
FROM Tabelle1 AS T
Union
SELECT T.[Adr-Nr#] as A, T.[W02-Parz] as P, T.[W02-Waldgde] as W, T.[W02-Waldfläche] as F
FROM Tabelle1 AS T
Union
SELECT T.[Adr-Nr#] as A, T.[W03-Parz] as P, T.[W03-Waldgde] as W, T.[W03-Waldfläche] as F
FROM Tabelle1 AS T
Union
SELECT T.[Adr-Nr#] as A, T.[W04-Parz] as P, T.[W04-Waldgde] as W, T.[W04-Waldfläche] as F
FROM Tabelle1 AS T
Union
SELECT T.[Adr-Nr#] as A, T.[W05-Parz] as P, T.[W05-Waldgde] as W, T.[W05-Waldfläche] as F
FROM Tabelle1 AS T
Union
SELECT T.[Adr-Nr#] as A, T.[W06-Parz] as P, T.[W06-Waldgde] as W, T.[W06-Waldfläche] as F
FROM Tabelle1 AS T
Union
SELECT T.[Adr-Nr#] as A, T.[W07-Parz] as P, T.[W07-Waldgde] as W, T.[W07-Waldfläche] as F
FROM Tabelle1 AS T
Union
SELECT T.[Adr-Nr#] as A, T.[W08-Parz] as P, T.[W08-Waldgde] as W, T.[W08-Waldfläche] as F
FROM Tabelle1 AS T
Union
SELECT T.[Adr-Nr#] as A, T.[W09-Parz] as P, T.[W09-Waldgde] as W, T.[W09-Waldfläche] as F
FROM Tabelle1 AS T
Union
SELECT T.[Adr-Nr#] as A, T.[W10-Parz] as P, T.[W10-Waldgde] as W, T.[W10-Waldfläche] as F
FROM Tabelle1 AS T
Union
SELECT T.[Adr-Nr#] as A, T.[W11-Parz] as P, T.[W11-Waldgde] as W, T.[W11-Waldfläche] as F
FROM Tabelle1 AS T
]. AS T2
WHERE (((T2.W)""));
Dann haben wir 2 Tabellen: eine mit den Adressendaten, referenziert durch den AdrNr, die andere mit den Parzellendaten, referenziert durch "Parz". Die Zuordnung der Parzellen zu den Adressen erfolgt über das Feld AdrNr.
Ist doch viel einfacher, oder?
Viel Erfolg
Yal
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige