Makro Zeile trotz verb. Zellen einfügen

Hi,

ich brauche für ein Projekt eure Hilfe. Ich bin kein Excelprofi, kenne lediglich einige VBA-Befehle.
Ich habe ein Reihe von Oberprojektn, Projekte auf mittlerer Projektebene und Unterprojekte. In Spalte 1 sollen die Zeilen Z1 bis inkl. Z4 verbunden sein. In Spalte 2 sollen jeweils die Zeilen Z1+Z2 und Z3+Z4 verbunden sein. Die Spalte 3 soll einzeln stehen. Insgesamt wird so jedes Oberprojekt übersichtlich auf die Unterprojekte „runtergebrochen“. Nun soll es optimalerweise einen Button geben, wo ich n-beliebige Zeilen für Unterprojekte einfügen kann. Dabei soll die neueingfügte Zeile wieder mit den vorhanden Zeilen des Oberprojektes (Spalte 1) verbunden werden. Ebenso in Spalte 2. Ist das in Excel so lösbar? Ich weiß, es gibt bei Excel mit verbundenen Zellen immer Probleme. Die Tabelle soll übersichtlich und trotzdem dynamisch sein.

Z1 Oberprojekt1 Mittl.Projekt1 U.-projekt1
Z2 …U.-projekt2
Z3 …Mittl.Projekt2 U.-projekt1
Z4 …U.-projekt2
Z5 Oberprojekt2 Mittl.Projekt1 U.-projekt1

Es hilft mir schon, wenn ihr sagt, dass es nicht geht, oder es einen anderen Lösungsweg gibt.
Vielen Dank.

Hallo Stanjer,

ich sage jetzt mal ganz dreist, dass das sicher mit VBA lösbar ist. Aber dazu muss ich es richtig vestehen. Bisher habe ich das so vestanden (z.B.):
Zellen A1 bis A4 sind verbunden. Oberprojekt
Zellen B1 und B2 sind verbunden. 1. Mittleres Projekt
Zellen B3 und B4 sind verbunden. 2. Mittleres Projekt
Zellen C1 bis C4 sind alle unverbunden. 4 Unterprojekte

Wieviele Zeilen (du schreibst von n) sollen wo eingefügt werden wenn du auf den Button klickst, und welche Zellen sollen dann verbunden sein (Antwort bitte mit meinen Beispielzellen).

Gruß, Andreas

Hi,

dass hast du schon fast richtig verstanden. Die Zellen A1-A4 sind verbunden (Oberprojekt). Das Oberprojekt gliedert sich in zwei mittlere Projekte. Die Zellen B1 und B2 sind verbunden (1. mittleres Projekt) sowie B3 und B4 (2. mittleres Projekt). Die Zellen C1 und C2 gehören zu dem 1. mittleren Projekt, sind jedoch nicht verbunden. C3 und C4 gehören zu dem 2. mittleren Projekt und sind auch nicht verbunden.
Ich möchte nun gerne eine Button „Unterprojekt hinzufügen“ haben. Dadurch wird die Zeile „5“ hinzugefügt. Das Oberprojekt soll nun die Zellen A1-A5; das 2. mittlere Projekt die Zellen B3-B5 haben. Die Zellen C3, C4, C5 sollen nicht verbunden sein (kleinste Ebene). Später soll es noch die Buttons „Oberprojekt hinzufügen“ und „mittleres Projekt hinzufügen“ geben. Optimal wäre es, wenn man später noch die Möglichkeit hat, zwischen zwei Unterprojekten oder zwei mittleren Projekten ein Weiteres hinzufügen kann.
Die Anzahl kann später 10 Oberprojekte mit jeweils 5 mittleren Projekten sein. Die mittleren Projekte können sich auch wieder in 10 Unterprojekte gliedern. Sprich: Es können 500 Unterprojekte zu Stande kommen.

Ich hoffe, dass ich mich eindeutig ausgedrückt habe. Falls es weitere Fragen gibt, oder ich dir anderweitig helfen kann, sehr gerne. Vielen Dank.

Zusatzfrage und Ideen

Hi,

Hallo Stajner,

Ich möchte nun gerne eine Button „Unterprojekt hinzufügen“
haben. Dadurch wird die Zeile „5“ hinzugefügt.

Kann es auch vorkommmen, dass das Unterprojekt zum dem oberen Mittelprojekt hinzugefügt wird, also quasi zwischen Zeile 2 und 3?

Das Oberprojekt
soll nun die Zellen A1-A5; das 2. mittlere Projekt die Zellen
B3-B5 haben. Die Zellen C3, C4, C5 sollen nicht verbunden sein
(kleinste Ebene). Später soll es noch die Buttons „Oberprojekt
hinzufügen“ und „mittleres Projekt hinzufügen“ geben. Optimal
wäre es, wenn man später noch die Möglichkeit hat, zwischen
zwei Unterprojekten oder zwei mittleren Projekten ein Weiteres
hinzufügen kann.
Die Anzahl kann später 10 Oberprojekte mit jeweils 5 mittleren
Projekten sein. Die mittleren Projekte können sich auch wieder
in 10 Unterprojekte gliedern. Sprich: Es können 500
Unterprojekte zu Stande kommen.

Ich stelle mir eine Lösung vor, bei der der Makro anhand der Position der aktiven Zelle selber erkennt, ob ein Ober- (Spalte A), ein Mittel- (Spalte B) oder ein Unterprojekt (Spalte C) eingefügt werden soll.
Würdest du die aktive Zelle z.B. nach B3 setzen (2. Mittelprojekt) würde der Makro ein 3. Mittelprojekt in B5-B6 erzeugen, mit zunächst wieder 2 Unterprjekten in C5 und C6.
Wäre die aktive Zelle in C2, würde er darunter eine Zeile einfügen und in der neuen C3 ein Unterprojekt einfügen.
Bei A1 als aktiver Zelle käme in A5-A8 ein neues Hauptprojekt hinzu.

Wäre das eine genehme Lösung? Falls ja, könnte ich heute Abend mal anfangen zu coden.
Ach so, von welcher Excel-Version reden wir?

Gruß, Andreas

Hi.

Kann es auch vorkommmen, dass das Unterprojekt zum dem oberen
Mittelprojekt hinzugefügt wird, also quasi zwischen Zeile 2
und 3?

Ja, dass kann vorkommen. Ich möchte auch im nachhinein überall Felder einfügen können. Wenn ich den Cursor bspw. auf Zelle C1 steht und ich dann auf „Unterprojekt hinzufügen“ klicke, möchte ich, dass die bisherige Zelle C2 zu C3 wird (also aus Unterprojekt 2 -> Unterprojekt 3 wird). Dadurch ist C2 „neu entstanden“. Das gleiche soll beim mittleren Projekt und Oberprojekt möglich sein.

Ich stelle mir eine Lösung vor, bei der der Makro anhand der
Position der aktiven Zelle selber erkennt, ob ein Ober-
(Spalte A), ein Mittel- (Spalte B) oder ein Unterprojekt
(Spalte C) eingefügt werden soll.
Würdest du die aktive Zelle z.B. nach B3 setzen (2.
Mittelprojekt) würde der Makro ein 3. Mittelprojekt in B5-B6
erzeugen, mit zunächst wieder 2 Unterprjekten in C5 und C6.
Wäre die aktive Zelle in C2, würde er darunter eine Zeile
einfügen und in der neuen C3 ein Unterprojekt einfügen.
Bei A1 als aktiver Zelle käme in A5-A8 ein neues Hauptprojekt
hinzu.

Wäre das eine genehme Lösung? Falls ja, könnte ich heute Abend
mal anfangen zu coden.
Ach so, von welcher Excel-Version reden wir?

Ja, dass wäre gute Lösung, wenn ich das richtig verstanden habe. Super, wenn das klappen würde. Wir reden von Excel 2010.

Gruß Stajner

Erste Version eines Makors
Hallo Stajner,

ich habe dir hier mal eine Beispielmappe hochgeladen:
http://www.file-upload.net/download-7568506/Projekte…
Sie enthält 5 H auptprojekte mit je 2 Z wischenprojekten, die wiederum je 2 U nterprojekte haben.

Wenn du ein Projekt einfügen willst, klicke in die Zelle, wo es hin soll; in Spalte A für ein Hauptprojekt, B für ein Zwischenprojekt oder C für ein Unterprojekt.
Dann drücke Strg-e. Es wird an der entsprechenden Zelle ein neues Projekt (leere Zellen) eingefügt.

Wenn du schon eine Mappe hast, in die der Makro eingefügt werden soll, hier eine Schritt-für-Schritt-Anweisung (weil ich nicht weiß, wie bewandert du mit VBA bist):
Öffne deine Mappe.
Klicke auf Entwickertools - Visual Basic. Der VAB Editor geht auf.
Links oben ist das Projektfenster.
Klicke darin mit Rechts auf den Namen deiner Mapppe und klicke Einfügen - Modul.
In das große Fenster rechts kopierst du jetzt den hier unten stehenden Code.
Dann kannst du den VBA-Editor schließen.

In Deiner Mappe gehts du jetzt auf Entwicklertools - Makros. Ein Fenster geht auf, in dem der Makro, den du eben eingefügt hast, blau markiert ist.
Klicke auf Optionen.
In das Feld hinter Ctrl+ gibst du e ein. Dann klickst du auf OK und in dem nächsten Fenster auf Abbrechen.
Wenn du jetzt wie oben gesagt in die Zelle klickt, wo das neue Projekt hin soll und Strg-e drückst, wird ein neues Projekt eingefügt.

Gruß, Andreas

Hier der Code:

Sub einfügen()
 Dim z As Long, s As Long, i As Long
 Dim runter As Long

 With ActiveCell
 z = .Row
 s = .Column
 Select Case s
 Case 1
 runter = 4
 Case 2
 runter = 2
 Case 3
 runter = 1
 End Select
 .EntireRow.Rows("1:" & runter).Insert
 Range(Cells(z, s), Cells(z + runter - 1, s)).Merge
 If s = 1 Then
 Range(Cells(z, s + 1), Cells(z + 1, s + 1)).Merge
 Range(Cells(z + 2, s + 1), Cells(z + 3, s + 1)).Merge
 End If
 For i = s To 2 Step -1
 If Not Cells(z, i - 1).MergeCells Then Range(Cells(z, i - 1), Cells(z + runter, i - 1)).Merge
 Next i
 End With
End Sub

Hi,

vielen Dank für deine Mühe. Ich melde mich leider erst nun, weil mein Prof. einige Veränderungen wollte, die ich erst mit ihm besprechen musste (die Tabelle ist Teil einer Abschlussarbeit). Die Tabelle funktioniert so, wie ich es mir vorgestellt habe. Jedoch liegt eine Schwäche vor. Gibt es eine Möglichkeit U1-1-3 einzufügen, sodass die Zelle unter U1-1-2 eingefügt wird und trotzdem zu Z1-1 gehört? Also nicht Zelle an dieser Stelle einfügen wo der Cursor ist, sondern darunter.

Kommen wir nun zu den o.g. Veränderungen. Die Tabelle soll um mehrere Spalten erweitert werden. Hier der Link zu der Tabelle (Tabelle 2): http://www.file-upload.net/download-7587665/Projekte…

Mein Prof. ist kein Fan von Tastencodes. Besteht die Möglickeit, dass es in Zeile 1 über der jeweiligen Spalte ein Button gibt, womit man ein Hauptprojekt hinzufügen/entfernen, Zwischenprojekt hinzufügen/entfernen, Unterprojekt hinzufügen/entfernen und Verantwortlichkeit hinzufügen/entfernen kann?

Finde es toll, dass es noch Leute gibt, die sich für andere bemühen. Leider fühlt sich an meiner Hochschule dafür niemand verantwortlich.

Gruß Stajner

Na dann, neuer Anlauf
Hi Stajner,

also, ich werd’s jetzt so machen, wie es dein Prof. gerne hätte Schaffe ich aber erst im Laufe der Wochen.
Zusatzfragen:

Ich gehe jetzt mal von folgenden Anfangsbedingungen aus:
Ein Hauptprojekt (8 Zeilen) hat 2 Zwischenprojekte (mit je 4 Zeilen),
diese haben je 2 Unterprojekte (mit je 2 Zeilen)
diese haben je 2 Verantwortliche (mit je einer Zeile)
Oder sollen es andere Anfangswerte sein?

Ich gehe davon aus, dass nach dem Einfügen eines Projektes/Verantwortlichen die Rahmen auch immer wieder entsprechend gesetzt werden sollen. Richtig?

Sollen die neuen Zellen nach dem Einfügen eines Projektes leer sein, odee gibt’s irgendwelche Standardtexte?

Wird die Verteilung der Spalten so bleiben, oder gibt’s da bald wieder Änderungen? Wie flexibel muss ich hier coden?

Gruß, Andreas

PS: Schönen Gruß an deinen Prof. Die Idee mit den verbundenen Zellen ist allgemein nicht gut. Es gibt hier öfter Probleme.

Hi,

also, ich werd’s jetzt so machen, wie es dein Prof. gerne
hätte Schaffe ich aber erst im Laufe der Wochen.

Das ist kein Problem, ich habe keinen Zeitdruck und es ist ja auch deine Freizeit :wink:.

Zusatzfragen:

Ich gehe jetzt mal von folgenden Anfangsbedingungen aus:
Ein Hauptprojekt (8 Zeilen) hat 2 Zwischenprojekte (mit je 4
Zeilen),
diese haben je 2 Unterprojekte (mit je 2 Zeilen)
diese haben je 2 Verantwortliche (mit je einer Zeile)
Oder sollen es andere Anfangswerte sein?

Es reicht, wenn erstmal 1 Verantwortlicher je Unterprojekt ist. Der Rest ist gut.

Ich gehe davon aus, dass nach dem Einfügen eines
Projektes/Verantwortlichen die Rahmen auch immer wieder
entsprechend gesetzt werden sollen. Richtig?

Ja, Rahmen sollen gesetzt werden. unterschiedliche Rahmendicke ist nicht wichtig.

Sollen die neuen Zellen nach dem Einfügen eines Projektes leer
sein, odee gibt’s irgendwelche Standardtexte?

Die sollen leer sein.

Wird die Verteilung der Spalten so bleiben, oder gibt’s da
bald wieder Änderungen? Wie flexibel muss ich hier coden?

Erstmal sind keine Änderungen geplant. Jedoch kann man sowas ja leider nie so genau sagen, deshalb sollte es nicht zu starr sein.

PS: Schönen Gruß an deinen Prof. Die Idee mit den verbundenen
Zellen ist allgemein nicht gut. Es gibt hier öfter Probleme.

Ich weiß. Ich habe ihm auch schon gesagt, dass es dann z.B. wahrscheinlich Probleme gibt, wenn man Filtern - was man bestimmt später soll. Ich glaube, dass du grundlegend verstanden hast, was mir (und auch dem Prof.) vorschwebt. Wenn du eine bessere Idee auf Excelbasis hast, werde ich ihn gerne überzogen :wink:.

Vielen Dank und eine schöne Woche

Hier die neue Version
Hallo Stajner,

ich hab jetzt mal was zusammengebaut:
http://www.file-upload.net/download-7615781/Projekte…

Teste es mal und melde dich, wenn was nicht klappt.

Folgende Anmerkungen:

  • Wie du es wolltest, gibt es zum Einfügen und Löschen von Projekten jetzt Buttons in der ersten Zeile. Die Strg-Kürzel funktionieren nicht mehr.

  • Es gibt ein zusätzliches Blatt „Temp“. Dort stehen Infos für den Makro drin. Die „Letzte Zeile“ wird normalerweise vom Makro automatisch upgedated. Falls du in der Tabelle von Hand Zeilen einfügst oder löschst, musst du die „Letzte Zeile“ entsprechend ändern.
    Wenn du in die Projekte von Hand weitere Spalten einfügst, musst du das auch im Blatt „Temp“ eintragen. Dort stehen die Spalten, von wo bis wo die Projekte reichen.
    Wenn dich das „Temp“-Blatt stört, blende es aus. Aber du darfst es nicht löschen.

  • Deinem Wunsch gemäß erfolgt das Einfügen eines Projektes jetzt immer unter der aktiven Zelle.

  • Das löschen eines Projektes erfolgt immer da, wo die aktive Zelle ist.

  • Bevor du die Buttons in der ersten Zeile benutzt musst du also immer die Zelle aktivieren, unter der ein Projekt eingefügt werden soll, bzw. deren Projekt gelöscht werden soll.
    Ist die aktive Zelle irgendwo, wo es der Makro nicht „verstehen“ kann, also z.B. ganz außerhalb der Projekte, oder in einem Unterprojekt, wenn du ein Hauptprojekt einfügen willst, dann passiert nichts. Es wird nur diese Zelle rot gefärbt.
    So bald du eine andere Zelle anklickst, verschwindet die Farbe wieder.

Gruß und schöne Rest-Pfingsten,
Andreas

Hi,

die Datei ist super. Die Funktionen sind so, wie ich es mir vorgestellt habe. Mein Prof. ist im Urlaub, mal gucken, was er anschließend dazu sagt.
Vielen Dank, ohne dich hätte ich das nie hinbekommen!