Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Inhalte aus Zellen zusammenführen - Excel 2013
#1
Liebe Forumsmitglieder,

ich verzweifle ein wenig an einer Aufgabenstellung die mir aufgrund der vielen Leerzellen und dem verrutschen in die nächste Zeile einfach keine vernünftige Lösung einfallen lässt. 

Es sollen Abteilungen (Arbeitsorganisationen) in einer Zelle zusammengeführt werden, um die Hi­e­r­ar­chie­ebe­nen in einer Zelle anzuzeigen, was an sich nicht schwierig wäre, wenn alle Zellen Ausgefüllt wären..... 

Als Beispiel hier nur mit 5 Spalten, im Anhang sind es ... mehr Smile ....  :39: 

in A2 = Geschäftsführung
in B3 = Projekte
In C4 = EDV Projekte
D bleibt hier leer! 
In E4 = Name 1
In E5 = Name 2
Aufgabe: nun soll Excel nach F4 und F5 den Autoeintrag schreiben: Geschäftsführung - Projekte - EDV Projekte (also hinter die Namen)
In D6 = Software
In E6 = Name 3
Aufgabe:  nun soll Excel nach F6 den Autoeintrag schreiben: Geschäftsführung - Projekte - EDV Projekte - Software

und so weiter und so fort .... es sollen also hinter die Namen die einzelnen Organisationseinheiten zusammengeführt per Funktion / Makro geschrieben werden.

Bei 200 - 300 Zeilen die auszufüllen wären, würde ich das per & einfach zusammenfügen ..... ABER es sind fast 17.000 Zeilen für die ich das brauche und Spalte N bekommt diesen Eintrag..... da sitze ich ja Wochen dahinter.  :16: :29:
"intelligente Tabelle" habe ich eingerichtet, so das ich mit Bereichen, oder Spalten arbeiten könnte

In der Beispieltabelle habe ich das eben fix manuell eingetragen .... 

Da aber Namen mehreren Gruppen Zugeordnet sein können, komme ich mit sverweis nicht weiter, auch die Namen nach einzelnen Gruppen zu filtern und dann die Bereiche per dropdown Menü anzubieten hat mal gar nicht funktioniert..... 

Kann mir wer hier eine Idee geben? oder eine Lösung anbieten? Wäre Spitzenklasse!


Angehängte Dateien
.xlsx   Strukturbeispiel.xlsx (Größe: 8,69 KB / Downloads: 15)
Antworten Top
#2
Hallo,

am schnellsten und einfachsten dürfte es sein, die Aufabe per Hand zu lösen.

Die Spalten A-F sollten in einen freien Bereich kopiert werden, dann alle kopierten Spalten markieren:

Taste F5 drücken, Inhalte, "leere Zellen" auswählen
Die Markierung sollte in der ersten leeren Zelle links ober stehen, dann eintippen "=" und dann mit der Maus die Zelle oberhalb, mit strg-enter abschliessen.

Der Rest ist trivial.

mfg
Antworten Top
#3
Hallo Fenek,

vielen Dank für den Versuch, diese Art des Autoausfüllens ist richtig geil! Gefällt mir und kann ich sicher sehr gut brauchen, leider klappt er nicht, denn es gibt ja Zellen die leer bleiben sollen (müssen)!

Schau dir mal bitte Zelle F13 an.... die erhält den Eintrag "Softwareverteilung" - müsste aber leer bleiben denn E13 startet eine neue Gruppe..... und der nächste Eintrag ist dann eben in F14 .....
Antworten Top
#4
stimmt, dann bedarf es eines kleinen Makros der diese "Spezialfälle" vorbereitet. Um die Übergänge prüfen zu können, sollten ein paar mehr Datensätze bereitgestellt werden.
Antworten Top
#5
Hallo Hagen,

vielleicht ein anderer Ansatz?!

Nehmen wir an Du würdest über eine Verkettung in Spalte "I" Deine "Pfad" bilden:

Code:
=A20&" - "&B20&" - "&C20&" - "&D20&" - "&E20&" - "&F20&" - "&G20&" - "&H20

Und auschließlich in Spalte "H" würden die Namen stehen. Dann ergäbe sich folgender Struktur:


Arbeitsblatt mit dem Namen 'Tabelle1'
 ABCDEFGHI
2Geschäftsführung        
3GeschäftsführungProjektplanung      Geschäftsführung - Projektplanung -  -  -  -  -  -
4GeschäftsführungProjektplanungProjektorganisation     Geschäftsführung - Projektplanung - Projektorganisation -  -  -  -  -
5GeschäftsführungProjektplanungProjektorganisationEDV Projekte    Geschäftsführung - Projektplanung - Projektorganisation - EDV Projekte -  -  -  -
6GeschäftsführungProjektplanungProjektorganisationEDV ProjekteSoftware Projekte   Geschäftsführung - Projektplanung - Projektorganisation - EDV Projekte - Software Projekte -  -  -
7GeschäftsführungProjektplanungProjektorganisationEDV ProjekteSoftware ProjekteAdobe-Photoshop Tina MüllerGeschäftsführung - Projektplanung - Projektorganisation - EDV Projekte - Software Projekte - Adobe-Photoshop -  - Tina Müller
8GeschäftsführungProjektplanungProjektorganisationEDV ProjekteSoftware ProjekteAdobe-Photoshop Gerd MeierGeschäftsführung - Projektplanung - Projektorganisation - EDV Projekte - Software Projekte - Adobe-Photoshop -  - Gerd Meier
9GeschäftsführungProjektplanungProjektorganisationEDV ProjekteSoftware ProjekteAdobe-Photoshop Karl EgonGeschäftsführung - Projektplanung - Projektorganisation - EDV Projekte - Software Projekte - Adobe-Photoshop -  - Karl Egon
10GeschäftsführungProjektplanungProjektorganisationEDV ProjekteSoftware ProjekteAdobe-Katalog Tina MüllerGeschäftsführung - Projektplanung - Projektorganisation - EDV Projekte - Software Projekte - Adobe-Katalog -  - Tina Müller
11GeschäftsführungProjektplanungProjektorganisationEDV ProjekteSoftware ProjekteAdobe-Katalog Franz HauserGeschäftsführung - Projektplanung - Projektorganisation - EDV Projekte - Software Projekte - Adobe-Katalog -  - Franz Hauser
12GeschäftsführungProjektplanungProjektorganisationEDV ProjekteSoftware ProjekteSoftwareverteilung Karl KnauserGeschäftsführung - Projektplanung - Projektorganisation - EDV Projekte - Software Projekte - Softwareverteilung -  - Karl Knauser
13GeschäftsführungProjektplanungProjektorganisationEDV ProjekteHardware Projekte   Geschäftsführung - Projektplanung - Projektorganisation - EDV Projekte - Hardware Projekte -  -  -
14GeschäftsführungProjektplanungProjektorganisationEDV ProjekteHardware Projekte   Geschäftsführung - Projektplanung - Projektorganisation - EDV Projekte - Hardware Projekte -  -  -
15GeschäftsführungProjektplanungProjektorganisationEDV ProjekteHardware ProjekteRollout PlanungDesktop PCHeinz HinzGeschäftsführung - Projektplanung - Projektorganisation - EDV Projekte - Hardware Projekte - Rollout Planung - Desktop PC - Heinz Hinz
16GeschäftsführungProjektplanungProjektorganisationEDV ProjekteHardware ProjekteRollout PlanungDesktop PCClara BauerGeschäftsführung - Projektplanung - Projektorganisation - EDV Projekte - Hardware Projekte - Rollout Planung - Desktop PC - Clara Bauer
17GeschäftsführungProjektplanungProjektorganisationEDV ProjekteHardware ProjekteRollout PlanungDesktop PCStefanie WeichGeschäftsführung - Projektplanung - Projektorganisation - EDV Projekte - Hardware Projekte - Rollout Planung - Desktop PC - Stefanie Weich
18GeschäftsführungProjektplanungProjektorganisationEDV ProjekteHardware ProjekteRollout PlanungNotebookKarl BräuerGeschäftsführung - Projektplanung - Projektorganisation - EDV Projekte - Hardware Projekte - Rollout Planung - Notebook - Karl Bräuer
19GeschäftsführungProjektplanungProjektorganisationEDV ProjekteHardware ProjekteRollout PlanungNotebookSven MichelGeschäftsführung - Projektplanung - Projektorganisation - EDV Projekte - Hardware Projekte - Rollout Planung - Notebook - Sven Michel
20GeschäftsführungProjektplanungProjektorganisationEDV ProjekteHardware ProjekteRollout PlanungNotebookNico JannisGeschäftsführung - Projektplanung - Projektorganisation - EDV Projekte - Hardware Projekte - Rollout Planung - Notebook - Nico Jannis


Vorausgesetzt es ergäbe sich keine tiefere Struktur in Richtung ">H" könnte man dann prüfen, ob
a) in Spalte H ein Eintrag ist und dann entweder
aa) alle "Leerzeichen" und "Bindestriche" inkl. des Einrtags in Spalte "H" emtfernt werden oder
b) die Werte, die ausschließlich aus "Leerzeichen" und Bindestrichen entfernt werden.

Voraussetzung wäre in "meinem Szeneario", dass die letzte Zeile Deiner Tabelle In Spalte "I" die o.g. Formel enthält und somt alle Spalten mit Werten gefüllt wären.

Gruß
Ich
Antworten Top
#6
Hallo Fennek,

diese Struktur ist gleichbleibend allerdings weitergehend bis Spalte "N". 
Im Grunde soll diese Zusammenfassung von A nach M zeilenweise in Spalte N den Autoeintrag erhalten. Dabei hören halt die Einträge mal bei F auf oder gehen bis M ....... 

Hallo IchBinIch,

vielen Dank für deine Idee, das war mein erster Ansatz, die Zellen Zeilenweise mit einem & zu verknüpfen, und es dann einfach herunterzuziehen um diese Einträge zu erhalten ..... 
dabei ergaben sich folgende Probleme: Die Namenseinträge (also quasi die tatsächlichen Teilnehmer der Gruppen) erstrecken sich über die Spalten L, K und M = manche der N Einträge enthalten Namen andere nicht, es sollen aber keine Namen in N stehen sondern nur eben die Hierachieebenen. Was ein zusätzliches manuelles Bearbeiten von mindestens 600 Zellen bedeuten würde. Und 2. Dann wieder das Problem des Autoausfüllens der Spalten bis eben zum Namenseintrag ...... was bei 17.000 Zeilen schon echte Arbeit verursacht .....
Antworten Top
#7
Hallo,

m.M.n. sind 3 Schritte erforderlich:

- Vorbereitung mit einem Makro, der " " (Leerzeichern) in alle Zellen einfügt, die später frei bleiben sollen
- Dublizieren aller Begriffe wie im post #1 beschrieben
- Verkettung wie von Ich... beschrieben.

Die Spaltenstruktur (manchmal bis M) erfordert einige "geschickte" Bedingungen im Makro. Da nur der Fragesteller die Struktur kennt, sollte er den Makro schreiben. Nach der gezeigten Datei geht das zwar in einem ersten Anlauf, aber einige Details werden verbessert werden müssen.

Deshalb die sehr direkte Frage: wie gut kann der Fragesteller vba Codes schreiben?

mfg
Antworten Top
#8
Hallo Hagen,
hallo Fennek,

es geht vielleicht auch über ein Makro anders.
Voraussetzung dafür wäre aber, dass die Namen alle in einer Spalte stehen.
Über en Makro kann man dann ermitteln welches die letzte gefüllte Zelle in der jeweiligen Zeile ist
und alle davor befindlichen Zellinhalte wie von mir oben vorgeschlagen miteinander verketten.
Man lässt also die Namensspalte völlig unberücksichtigt und prüft alle davor liegenden Spalten.
Im Ergebnis sollte so die von Hagen erwünschte Struktur entstehen.

Gruß
Ich

Im oben genannten Fall könnte ich mir auch vorstellen, dass man das evtl. über eine Formel realisieren kann.
Dafür bin ich aber zu wenig formelaffin :)
Antworten Top
#9
Hallo,

anbei ein Code, der in der Beispieldatei gut aussieht. ABER: Der Code ist m.M.n. monströs und weder für andere noch für mich nach einer Stunde zu überblicken.

Wenn etwas nicht stimmt, dann viel Spaß, ich werde mich mit diesem Thema nicht mehr beschäftigen!


Code:
Sub test()
Dim c As Range
Dim L_Sp
lr = ActiveSheet.Cells.SpecialCells(11).Row
ReDim L_Sp(lr)
For Each r In ActiveSheet.UsedRange.Rows
   ls = Cells(r.Row, Columns.Count).End(xlToLeft).Column
   If ls > 1 Then
       If Not IsEmpty(Cells(r.Row, ls - 1)) Then
           o = 0
           Do
               Cells(r.Row + o, ls).Interior.Color = vbYellow
               L_Sp(r.Row + o) = ls - 1
               o = o + 1
           Loop Until Cells(r.Row + o, ls) = ""
       End If
   End If
Next r

For Each c In ActiveSheet.UsedRange.SpecialCells(2)
   For i = 1 To 13 - c.Column
       If c.Offset(, i).Value = "" Then c.Offset(, i) = " " 'c.Offset(, i).Interior.Color = vbYellow
   Next i
Next c

With ActiveSheet.UsedRange.SpecialCells(4)
.FormulaR1C1 = "=R[-1]C"
End With

With ActiveSheet.UsedRange '.SpecialCells(3)
.Value = .Value
End With


For i = 1 To lr
j = IIf(L_Sp(i) = 0, 13, L_Sp(i))

Cells(i, "O") = Join(Application.Transpose(Application.Transpose(Range(Cells(i, "A"), Cells(i, j)))), " - ")
Next i

For Each c In ActiveSheet.UsedRange.Columns("O").Cells
   For i = Len(c.Value) To 1 Step -1
       If Not Mid(c.Value, i, 1) Like "[a-z]" Then
           c.Value = Left(c.Value, i)
       Else
           Exit For
       End If
   Next i
Next c

End Sub


mfg
Antworten Top
#10
Hallo zusammen,

hier noch eine Lösung wenn die Tabelle entsprechend vorbereitet wird.

Arbeitsblatt mit dem Namen 'Tabelle2'
 ABCDEFGH
2Geschäftsführung       
3GeschäftsführungProjektplanung      
4GeschäftsführungProjektplanungProjektorganisation     
5GeschäftsführungProjektplanungProjektorganisationEDV Projekte    
6GeschäftsführungProjektplanungProjektorganisationEDV ProjekteSoftware Projekte   
7GeschäftsführungProjektplanungProjektorganisationEDV ProjekteSoftware ProjekteAdobe-Photoshop Tina Müller
8GeschäftsführungProjektplanungProjektorganisationEDV ProjekteSoftware ProjekteAdobe-Photoshop Gerd Meier
9GeschäftsführungProjektplanungProjektorganisationEDV ProjekteSoftware ProjekteAdobe-Photoshop Karl Egon
10GeschäftsführungProjektplanungProjektorganisationEDV ProjekteSoftware ProjekteAdobe-Katalog Tina Müller
11GeschäftsführungProjektplanungProjektorganisationEDV ProjekteSoftware ProjekteAdobe-Katalog Franz Hauser
12GeschäftsführungProjektplanungProjektorganisationEDV ProjekteSoftware ProjekteSoftwareverteilung Karl Knauser
13GeschäftsführungProjektplanungProjektorganisationEDV ProjekteHardware Projekte   
14GeschäftsführungProjektplanungProjektorganisationEDV ProjekteHardware Projekte   
15GeschäftsführungProjektplanungProjektorganisationEDV ProjekteHardware ProjekteRollout PlanungDesktop PCHeinz Hinz
16GeschäftsführungProjektplanungProjektorganisationEDV ProjekteHardware ProjekteRollout PlanungDesktop PCClara Bauer
17GeschäftsführungProjektplanungProjektorganisationEDV ProjekteHardware ProjekteRollout PlanungDesktop PCStefanie Weich
18GeschäftsführungProjektplanungProjektorganisationEDV ProjekteHardware ProjekteRollout PlanungNotebookKarl Bräuer
19GeschäftsführungProjektplanungProjektorganisationEDV ProjekteHardware ProjekteRollout PlanungNotebookSven Michel
20GeschäftsführungProjektplanungProjektorganisationEDV ProjekteHardware ProjekteRollout PlanungNotebookNico Jannis

Und der dazu gehörige Code:

Modul Modul1
Option Explicit 
Sub HagenVerkettung()
Dim s As Long
Dim z As Long
Dim zm As Long

 
With Tabelle2
zm = .Cells(Rows.Count, 1).End(xlUp).Row
    For z = 2 To zm
        For s = 7 To 1 Step -1
            If Not IsEmpty(.Cells(z, s)) Then
                .Cells(z, 9).Value = .Cells(z, s).Value & " - " & .Cells(z, 9).Value
            End If
        Next s
            .Cells(z, 9).Value = Left(.Cells(z, 9).Value, Len(.Cells(z, 9).Value) - 3)
    Next z

End With
End Sub


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 12 - mit VBAHTML 12.6.0


Gruß
Ich
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste