3.1k Aufrufe
Gefragt in Tabellenkalkulation von jeremy Mitglied (677 Punkte)
Hallo Freunde der Nacht,

wieder mal benötige ich die Hilfe, von Leuten, die im Gegensatz zu mir Ahnung von Excel haben :-)

Folgender Ausgangspunkt:

Anbei die entsprechende Datei:

rapidshare.com/files/295975010/Urlaubsplan_2010-Test.xls

Ich bin dabei einen Urlaubsplan für 2010 zu erstellen, dafür benötige ich ein Makro zum Zeilen löschen und einfügen.

Auf dem ersten Sheet, gibt eine Gesamtübersicht in die ich in die Spalte D (D10:D128), die Namen der Mitarbeiter eingebe.
Auf den folgenden Monatsblättern, werden diese dann übernommen.
Auf den Monatsblättern weren dann auch die nötigen Daten eingegeben, diese werden in der Übersicht kummuliert.

Jetzt die Aufgabe:

Im Augenblick habe ich 63 Mitarbeiter (D10:D72).
Es werden aber weitere kommen und auch sicher welche gehen.
Ich denke ich benötige ein oder zwei Makro's.

1. Wenn ein neuer Mitarbeiter kommt, trage ich ihn unter dem letzten schon eingetragenen ein. Dann möchte ich über z.B eine Tastenkombination (z.B. STRG+E -für Einfügen) diesen in die Liste der schon existierenden einfügen. Also die ganze Zeile mit Namen und Formeln soll dann sortiert nach 1. Spalte B und 2. Spalte D nach Alphabet eingefügt werden. Dies soll auf dem ersten Tabellensheet (Übersicht 2010) und den folgenden Monatsblättern (Januar-Dezember) geschehen.

2. Wenn ein Mitarbeiter, die Firma verlässt sollte folgendes passieren. Ich markiere auf dem ersten Blatt die entsprechende Zeile und dann vielleicht wieder durch eine Tastenkombination (z.B. STRG+L - für Löschen) soll in diesem Blatt (Übersicht 2010) und auf den folgenden Monatsblättern (Januar-Dezember) die entsprechende Zeile gelöscht werden.
Das kann aber auch anders gehen, als eine Zeile markieren und dann das Makro ausführen, das war nur eine Idee.


Wie gesagt, wichtig ist, das im Einfügen Schritt, die ganze Zeile in den entsprechenden Blättern eingefügt wird, mit all den entsprechenden Formeln.



Kann mir da jemand behilflich sein, habe mit Makro's bisher noch Null Erfahrung.
Wenn es anders geht, bin ich für Hinweise auch sehr dankbar.



LG Jeremy

8 Antworten

0 Punkte
Beantwortet von jeremy Mitglied (677 Punkte)
Hallo,


ist dies nicht möglich oder braucht gut Ding eben einige Zeit.
Wäre toll, wenn ihr mir ein Feedback geben könntet!

Einfach nur ob es geht oder nicht.



Vielen Dank im Voraus



Jeremy
0 Punkte
Beantwortet von jeremy Mitglied (677 Punkte)
Gibt es absolut kein Feedback?

Geht es nicht oder vielleicht doch und ist aber zu aufwändig. Ware toll, wenn mir jemand nur irgend ein Feedback geben könnte!


Danke Jeremy
0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
Hallo,

ich habe mir die Tabelle mal angesehen und konnte feststellen, dass es so nicht zu machen ist.

Das Problem liegt in den Verknüfungen der Tabellen. Durch diese VerKnüpfungen werden in allen Tabellen die namen gleichzeitzig sortiert. Dadurch sind aber die Eintragungen in den übrigen Tabellen nicht mehr passend. Hier muss ein anderer Weg beschritten werden.

Ich habe eine Idee, aber die muss ich noch ausarbeiten

Gruß

Helmut
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

ein beispiel

gruss nighty

Option Explicit
Sub LöschenWksMonate()
Dim WksNamen As Variant
Dim Suche As Variant
Dim WksIndex As Integer
WksNamen = Array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember")
For WksIndex = 0 To 11
Set Suche = Worksheets(WksNamen(WksIndex)).Range("D10:D" & Worksheets(WksNamen(WksIndex)).Cells(Rows.Count, 4).End(xlUp).Row).Find(Worksheets("Übersicht").Cells(ActiveCell.Row, 4))
If Not Suche Is Nothing Then
Worksheets(WksNamen(WksIndex)).Rows(Suche.Row).Delete shift:=xlUp
End If
Next WksIndex
End Sub


Sub KopierenZurÜbersicht()
ActiveSheet.Rows(ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row).Copy _
Worksheets("Übersicht").Rows(Worksheets("Übersicht").Cells(Rows.Count, 4).End(xlUp).Row)
End Sub
0 Punkte
Beantwortet von
Hi,

Auch ich hab mir die Beispieltabelle mal angesehen. Sogar mehrmals.
Und ich hab auch mehrmals die Lust verloren, weil ich derartiges so
noch nie zu erledigen, und somit keinen "Plan" dafür im Hinterkopf hatte.

Dann habe ich mal ein wenig rumprobiert, und das ein oder andere als
Makro aufzeichnen lassen. Wirklich gefallen will mir der Code nicht, aber
er sollte seinen Zweck erfüllen, wie ich hoffe. So der ein oder andere sich
das Ergebnis anschauen will und den Ablauf nachvollziehen kann, dann
auch noch Lust und Zeit hat Optimierungsmöglichkeiten aufzuzeigen, wäre
ich über entsprechende Hinweise dankbar. (Vor allen Dingen die .Select-
Geschichten und noch ein paar andere Kleinigkeiten sollten sich sicher anders
lösen lassen.)

Wie dem auch sei. Mein Ansatz ist in dieser BeispielDatei zu finden.

Für einen neuen Mitarbeiter führe man in "Übersicht 2010" auf den
Zellenverbund "B5:D8" ("Mitarbeiter") einen Doppelklick aus.

Um einen Mitarbeiter aus der Planung zu entfernen, führe man auf
die ZelleA der entsprechenden Spalte einen Doppelklick aus.

btw: Zeile10 in den Tabellen "Übersicht 2010" - "Dezember" ist als "MusterZeile"
ausgeblendet und mit Abteilungsnummer "00" gefüllt, um beim Einfügen
einer Zeile an der ersten Zielpostion nicht mit unformatierten/rahmenlosen
Zellen dazustehen. (Eine der Krücken die mir nicht wirklich gefallen.)

bye
malSchauen
0 Punkte
Beantwortet von kauz Mitglied (291 Punkte)
Hallo malSchauen...

auch ich hab mich mit dem Problem beschäftigt, und über aufzeichnen- editieren angefangen was zu basteln.

Bei mir wären es statt der Userform wahrscheinlich nur Inputboxen geworden.

Ich muß sagen, ich finde die Lösung super! - (trotz der 4 Select's)!!

Denke, jeremy wird damit zufrieden sein.

Gruß
Andreas
0 Punkte
Beantwortet von jeremy Mitglied (677 Punkte)
Hallo Freunde,

soeben habe ich eure Lösungen gesehen.
Da ich mich gerade beruflich im Ausland aufhalte,
werd eich am Wochenende nach meiner Rückkehr
die Sachen ausprobieren und umgehend ein Feedback geben.


Voerst vielen herzlichen Dank,
ich melde mich, versprochen.



Jeremy
0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
Hallo,

www.file-upload.net/download-1975346/Urlaubsplan_2010-Test_hb.xls.html

mein Lösungsvorschlag. Neue Mitarbeiter in die Letzten Zeilen der Übersicht eintragen und dann mit dem Makro neue_mitarbeiter die daten einpflegen. Mit dem Makro zeile_löschen können die Zeilen gelöscht werden.

Achtung der Aufbau der Tabellen wurde von mir geändert, in den Monatstabellen ist kein Verweis auf die Übersicht bei den Namen

Gruß

Helmut
...