Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
876to880
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
876to880
876to880
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

2D-Auflistung aus 3D-Tabelle

2D-Auflistung aus 3D-Tabelle
20.06.2007 01:51:17
Oliver
Hallo Freunde,
ich habe einen Jahresdienstplan und jeder Monat erscheint als einzelnes Tabellenblatt.
Die Mitarbeiternamen zweier Abteilungen stehen in Januar:Dezember!C3:L3 und Januar:Dezember!N3:W3.
In einer Übersichtstabelle möchte ich alle vorkommende Namen beider Abteilungen untereinander einmal auflisten (Sortierung egal), wobei die Abteilung im Laufe des Jahres auch gewechselt werden kann, neue Mitarbeiter hinzukommen oder entlassen werden.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 2D-Auflistung aus 3D-Tabelle
20.06.2007 08:16:00
haw
Hallo Oliver,
so z.B.:

Sub MitarbeiterListen()
Dim wsL As Worksheet, ws As Worksheet, i%, efz%, lz%
Application.ScreenUpdating = False
Set wsL = ThisWorkbook.Worksheets.Add
With wsL
.Name = "Liste"
.Move After:=ThisWorkbook.Worksheets(Worksheets.Count)
End With
For i = 1 To 12
Set ws = ThisWorkbook.Worksheets(i)
ws.Range("C3:L3").Copy
efz = wsL.Cells(Rows.Count, 5).End(xlUp).Row + 1
wsL.Cells(efz, 5).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Application.CutCopyMode = False
ws.Range("N3:W3").Copy
efz = wsL.Cells(Rows.Count, 5).End(xlUp).Row + 1
wsL.Cells(efz, 5).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Application.CutCopyMode = False
Next i
With wsL.Range("E1")
.FormulaR1C1 = "Mitarbeiter"
.Font.Bold = True
End With
lz = wsL.Cells(Rows.Count, 5).End(xlUp).Row
wsL.Range("E1:E" & lz).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=wsL.Range( _
"A1"), Unique:=True
lz = wsL.Cells(Rows.Count, 1).End(xlUp).Row
wsL.Range("A1:A" & lz).Sort Key1:=wsL.Range("A4"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortTextAsNumbers
wsL.Range("E:E").Delete
wsL.Range("A1").Select
Application.ScreenUpdating = True
End Sub


Ich habe angenommen, dass die Monatstabellen von 1 bis 12 positioniert sind.
Gruß
Heinz

Anzeige
AW: 2D-Auflistung aus 3D-Tabelle
20.06.2007 18:15:00
Oliver
Hallo Heinz, danke für deine schnelle Antwort. Über den Umfang des Codes bin ich ein wenig erstaunt! Wie kann man (du) so etwas so schnell eintippen?
Eigentlich dachte ich ja an eine Formel á la HVERWEIS oder VERGLEICH, aber dafür muss ich ja immer einen bekannten Suchbefriff eingeben. Dass ich nicht bei jeder Neuberechnung eine neue Tabelle erstellen möchte, könnte ich über eine vorherige Abfrage, ob "Liste" schon existiert, sicherlich noch hinkriegen.
Irgendwo muss aber noch ein Fehler sein, denn das Ergebnis zeigt nur die Überschrift "Mitarbeiter" und darunter zwei farbig markierte Felder ohne Inhalt. Die Suchbereiche sind aber korrekt angegeben. Kann es daran liegen, dass die Mitarbeiternamen per Formel erst berechnet werden? Sie werden aus einem Link zur persönlichen Diensttabelle herausgeschnitten:
=WENN(C$5="";"";TEIL(Formelname;SUCHEN("[";Formelname)+1;SUCHEN(",";Formelname;SUCHEN("[";Formelname) )-SUCHEN("[";Formelname)-1))
, wobei Formelname ein definierter Name
=ZELLE.ZUORDNEN(6;Januar!C$5)
ist, um die Formel
='Laufwerk:\Pfad\[Name, Vorname - 2007.xls]Januar'!$AD6
selbst zu bearbeiten.
Hoffentlich nicht zu kompliziert! Beim Schreiben kommt mir nun der Gedanke, einfach die Dateinamen des konstanten Verzeichnisses aufzulisten und den Namen herauszuschneiden. Denn jeder Mitarbeiter hat eine eigene Datei als Jahrestabelle, die in meiner Datei nur zusammengefasst und ausgewertet wird.
Ich werde nochmal nach Dateisystemfunktionen von Excel forschen, denn VBA ist mir immer noch ein wenig suspekt, wenn ich den Code nicht durchschaue.
Gruß zurück von Oliver
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige