Microsoft Excel

Herbers Excel/VBA-Archiv

Aus Tabelle Matrix erstellen

Betrifft: Aus Tabelle Matrix erstellen von: Rainer
Geschrieben am: 29.04.2008 06:18:27

Hallo,
Ich habe in eine Exceltabelle Daten, die ich in einer Matrix zusammenfassen möchte. Da sich das Problem schwer erklären lässt, habe ich anliegende Datei beigefügt.



Die Datei enthält oben die Ursprungsdatei und unten die Matrix, wie sie aussehen soll.
Da die Pivot-Tabellenfunktion mich nicht weiter gebracht hat, wende ich mich an euch. Kann man das Problem mithilfe eines Makros lösen? Da die Originaldatei mehrere hundert Datensätze hat und eine händische Erstellung sehr mühsam ist, wäre ich für eure Hilfe sehr dankbar.

Gruß
Rainer

  

Betrifft: AW: Aus Tabelle Matrix erstellen von: Armin
Geschrieben am: 29.04.2008 07:43:52

Hallo Rainer,
ganz so wie Du gedacht hast ist nicht möglich. In eine Zelle passen 255 Zeichen.
Besser jeder Name in einer Zeile und das kannst Du mit sortieren erreichen.

Gruß Armin


  

Betrifft: AW: Aus Tabelle Matrix erstellen von: Rainer
Geschrieben am: 29.04.2008 08:21:21

Hallo,
vielen Dank für deinen Hinweis und deine schnelle Rückmeldung.
Das mit den 255 Zeichen leuchtet mir ein.
Wenn ich die Daten nach der "Beitragsstufe" sortiere habe ich allerdings noch keine Matrixaufteilung nach dem "Fachgebiet". Wie bekomme ich das denn hin.

Gruß
Rainer


  

Betrifft: AW: Aus Tabelle Matrix erstellen von: ede
Geschrieben am: 29.04.2008 08:33:11

Hallo Rainer,

ich gehe mal davon aus, das Deine Tabelle nach der Spalte Beitragsstuge aufwärts sortiert ist!

teste mal folgendes Makro, ob es so ausreichend ist, wobei Du die Sheetnamen in Deinem Fall anpassen musst!!!

Sub umsetzen()
Dim i, s, lzeile, zeile As Integer
Dim ziel, quelle, fach As String

'+ + + + + ANPASSEN
quelle = "Tabelle1"
ziel = "Tabelle2"
zeile = 2
Sheets(ziel).Cells(1, 1) = "FAchgebiet/..."
lzeile = Sheets(quelle).Cells(65536, 1).End(xlUp).Row
For i = 2 To lzeile
    'Fachgebiet bestimmen
    fach = Sheets(quelle).Cells(i, 4)
    done = False
    ss = Sheets(ziel).Cells(1, 256).End(xlToLeft).Column + 2
    For s = 2 To ss
        If IsEmpty(Sheets(ziel).Cells(1, s)) Then
            Sheets(ziel).Cells(1, s) = fach
            Exit For
        End If
        If Sheets(ziel).Cells(1, s) = fach Then Exit For
    Next s
    Sheets(ziel).Cells(zeile, 1) = Sheets(quelle).Cells(i, 6)
    Sheets(ziel).Cells(zeile, s) = Sheets(quelle).Cells(i, 1) & " " & Sheets(quelle).Cells(i, 2) _
 & " " & Sheets(quelle).Cells(i, 3) & " (" & Sheets(quelle).Cells(i, 5) & ")"
    zeile = zeile + 1
Next i
End Sub



gruss


  

Betrifft: AW: Aus Tabelle Matrix erstellen von: Rainer
Geschrieben am: 29.04.2008 10:51:38

Hallo,
vielen Dank für die Antwort und den Code. Habe ein wenig damit herumprobiert. Das sieht schon echt prima aus. Dabei sind mir noch zwei Dinge eingefallen, die für mich noch sehr nützlich wären.
1. Besteht die Möglichkeit, dass eventuelle Zellenformatierungen (z.B. Schriftfarbe/Größe/Zellenfarbe) in die neue Matrix übernommen werden?
2. Kann man die Matrixtabelle mittels Makro wieder in das ursprüngliche Tabellenformat "zurückkonvertieren"?

Vielen Dank im Voraus
Rainer


  

Betrifft: AW: Aus Tabelle Matrix erstellen von: ede
Geschrieben am: 29.04.2008 10:59:35

Hallo nochmal,
zu1.: das kann man tun, aber wozu, da aus vier zellen eine zelle (Nr, Name, Vorname, (JAHR)) gebildet wird.
zu2: ja, aber warum zurückkonverieren, die Quelle ist doch unveränder noch da!

gruss


  

Betrifft: AW: Aus Tabelle Matrix erstellen von: Rainer
Geschrieben am: 29.04.2008 11:22:36

Hallo,
das Problem ist, dass in der Ursprungstabelle Formatierungen an der Schriftfarbe vorgenommen wurden (z.B. rote Schriftfarbe für Datensätze, die noch einmal kontrolliert werden sollen. Dabei kann es sein, dass z.B. nur das Jahr rot markiert ist). Das soll in der Matrix natürlich auch noch sichtbar sein.
Andere Personen werden dann mit der Matrix arbeiten und eventuelle Änderungen/Verschiebungen vornehmen. Diese Änderungen benötige ich dann wieder in meiner ursprünglichen Tabellenform. Insgesamt also recht mühsam, wenn man es manuell macht.


Danke für die schnellen Antworten
Rainer


  

Betrifft: AW: Aus Tabelle Matrix erstellen von: ede
Geschrieben am: 29.04.2008 11:37:26

Hallo Rainer,
da hast Du Dir ja ne Menge Arbeit an Land gezogen. Leider kann ich Dir dabei nicht weiterhelfen, da es aus meiner Sicht nicht der richtige Ansatz zur Datenpflegen ist.
Verwende in Deiner Ursprungstabelle eine extra Spalte, in der ein möglicher Status der Prüfung steht
(Beispiel über GültigkeitsListen).
Somit brauch man nicht über Schriftfarbe/Formatierungen Kennzeichen zur Datenpflege verwenden, welche man sehr schwer auswerten kann. Über Filter kannst Du somit die Daten an die entsprechenden Bearbeiter geben und wieder zurückholen!

Stelle das Thema wieder auf offen!
gruss und viel Erfolg


  

Betrifft: AW: Aus Tabelle Matrix erstellen von: Rainer
Geschrieben am: 29.04.2008 12:00:09

Hallo,

vielen Dank für deine Mühe. Werde mir einmal Gedanken über deinen Ansatz machen

Gruß
Rainer


 

Beiträge aus den Excel-Beispielen zum Thema "Aus Tabelle Matrix erstellen"