Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1852to1856
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
Inhaltsverzeichnis

Urlaubstabelle in Monatsplan übertragen

Urlaubstabelle in Monatsplan übertragen
04.11.2021 10:42:45
Marko
Ich habe in einer Excel Datei ein Tabellenblatt "Start"
Auf dem sind Tabellen in denen Mitarbeiter ihre Urlaube eintragen. Die Tabelle besteht aus 3 Spalten (Name des Mitarbeiter, von, bis)
in den Zeilen steht unter dem namen 1. Termin, 2. Termin, ...
Die Mitarbeiter sollen ihren Urlaub in den Spalten von und bis das jeweilige Datum eintragen.
Die Planung erfolgt dann Quartalsweise. Hier sind die Tage des Monats untereinander aufgeführt und in den Spalten die Mitarbeiter. In den Spalten soll dann bei entsprechender Planung ein "U" stehen.
Bisher habe ich den Urlaub in Tabellenblätter übertragen, die mit Hilfe des Summenprodukts, die Tabellen auslesen und dann "U" eintragen.
Formel: =WENNFEHLER(WENN(MONAT(B4)=MONAT($B$4);WENN(SUMMENPRODUKT((UrlaubMarko[von]=$b4));"U";"");"")
WENNFEHLER ist vorgeschalten, um leere Felder (Februar für Nichtschaltjahr) leer zu lassen.
Die Urlaube werden nun in 4 Tabellenblätter Urlaub1 - 4 (je Quartal 1 Blatt) übertragen.
Die Planung soll aber in extra Tabelleblätter erfolgen (Quartal 1 - 4), die genau gleich (inkl. selbe Zellen für die gleichen Einträge bei den Urlaubstabellen) sind.
Ich möchte entweder mittels VBA die Urlaubstabellen auslesen und die Eintragen in Zellen mit U auf die Quaratle übertragen oder gleich die Urlaubstabellen mittels VBA auslesen und in ide Quartale an den entsprechenden Tagen ein "U" eintragen.
Wenn es klappt mit den Bilder, sieht man die Startseite mit den Tabellen und jeweils die Tabellenblätter Urlaub und Planung (Quartal).
Aus der Tabelle Urlaub soll ausgelesen werden, wo steht ein "U" und dann auf die Quartale (selbe Zelle) kopiert werden.
Alternativ, kann auch gleich per Makro die Urlaubstabelle auf der Startseite ausgelesen werden und das "U" beim Quartal eingetragen werden.
Ich kann die Fromel nicht in die Quartale eintragen, da Nichturlaubstage individuell eingetragen werden und somit die Formel weg wäre. Bei Änderungen nachträglich im Urlaubsplan, würde das dann ja nicht mehr funktionieren.
Auslöser des Makros sollen Einträge in die Tabelle sein.
Ein wenig kenne ich mit VBA schon aus, bin dabei aber noch mehr zu lernen. Dabei stehe ich aber gerade auf dem Schlauch. Habe auch noch kein passendes Beispiel gefunden, was ich eventuell anpassen könnte.
Startseite:
Userbild
Quartal
Userbild
Urlaub
Userbild

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Urlaubstabelle in Monatsplan übertragen
04.11.2021 10:47:33
SF
Hola,
dir ist schon klar dass das hier niemand nachbauen wird?
Gruß,
steve1da
AW: Urlaubstabelle in Monatsplan übertragen
04.11.2021 11:12:01
Marko
Ja, sorry. Dachte man kann das trotzdem beantworten.
Ich habe die Datei mal eingestellt. Hilft das?
https://www.herber.de/bbs/user/148941.xlsm
AW: Urlaubstabelle in Monatsplan übertragen
04.11.2021 13:53:55
Marko
Ich habe jetzt folgendes erstellt:

Sub Urlaub_eintragen()
Dim Z as Long 'Z = Zeile
Dim S As Long 'S = Spalte --> Vorbereitung für Spaltenwechsel
Application.Screenupdating = False
Sheets("Urlaub1").Select
For Z = 4 To 34
If Cells(Z, 5).Value = "U" Then
Cells(Z, 5).Copy Destination:=Sheets("1.Quartal").Cells(Z, 5)
Z = Z + 1
End If
Next
Application.Screenupdating = true
End Sub
Das funktioniert, kopiert aber anscheinend nur jede 2. Zeile im Ziel. Warum?
Anzeige
AW: Urlaubstabelle in Monatsplan übertragen
04.11.2021 14:08:25
Pierre
Hallo Marko,
braucht es diese Zeile überhaupt?

Z = Z + 1
Was mir gerade noch so auffällt: Funktioniert denn die Bildschirmaktualisierung bei dir?
Bzw. genau andersrum, ist diese tatsächlich ausgeschaltet?
Ich sehe nur, dass das "ScreenUpdating" nicht richtig geschrieben ist (müsste von VBA automatisch so geschrieben werden, wie ich es gemacht habe)
Gruß Pierre
AW: Urlaubstabelle in Monatsplan übertragen
04.11.2021 14:21:28
Marko
Sorry, Schreibfehler von mir (muss von einem Rechner abschreiben (Dienstrechner). Funktioniert
Die Zeile habe ich auskommentiert und siehe da: Alle Zeilen befüllt.
1 kleines Probleme habe ich noch:
Leider wird beim Kopieren noch die Formatierung mit kopiert (Meine Wochenendmarkierung ist damit weg). Das möchte ich nicht. Wie kann ich das verhindern?
Anzeige
AW: Urlaubstabelle in Monatsplan übertragen
04.11.2021 14:54:01
Marko
Ich habe gerade versucht Nach dem die Spalte 5 durchlaufen wurde, dies auch mit weiteren Spalten zu tun

Sub Urlaub_eintragen()
Dim Z as Long 'Z = Zeile
Dim S As Long 'S = Spalte --> Vorbereitung für Spaltenwechsel
Application.ScreenUpdating = False
Sheets("Urlaub1").Select
Zeile1:   'Definition Sprungmarke
S = 5
For Z = 4 To 34
If Cells(Z, 5).Value = "U" Then
Cells(Z, 5).Copy Destination:=Sheets("1.Quartal").Cells(Z, 5)
End If
Next
If S 
Der Rechner landet aber wie es scheint, in einer Schleife. Was mache ich falsch?
AW: Urlaubstabelle in Monatsplan übertragen
04.11.2021 15:06:44
Marko
Habe es hin bekommen:

Sub Urlaub_eintragen()
Dim Z as Long 'Z = Zeile
Dim S As Long 'S = Spalte --> Vorbereitung für Spaltenwechsel
Application.ScreenUpdating = False
Sheets("Urlaub1").Select
For S = 5 To 23
For Z = 4 To 34
If Cells(Z, 5).Value = "U" Then
Cells(Z, 5).Copy Destination:=Sheets("1.Quartal").Cells(Z, 5)
End If
S = S + 9
Next
Next
Sheets("Start").Select
Application.ScreenUpdating = true
End Sub
Jetzt nur noch für die beiden anderen und alle Quartale hinbekommen. Das sollte ich aber hinbekommen.
Danke für die Hilfe!
Anzeige
AW: Urlaubstabelle in Monatsplan übertragen
04.11.2021 15:11:23
Pierre
Beschränkt sich das immer auf Spalte 5 bis 23?
Du kannst auch statt

S = S + 9
einfach oben For S = 5 To 23 Step 9 schreiben.
AW: Urlaubstabelle in Monatsplan übertragen
04.11.2021 15:02:05
Pierre
ungetestet:
Cells(Z, 5).Copy Destination:=Sheets("1.Quartal").Cells(Z, 5).PasteSpecial Paste:=xlValues
den fetten Teil noch anfügen (inkl. dem Punkt!!)
AW: Urlaubstabelle in Monatsplan übertragen
04.11.2021 15:07:31
Marko
Ah, sehr cool! Danke! :)
AW: Urlaubstabelle in Monatsplan übertragen
04.11.2021 15:12:02
Marko
Bekomme die Meldung:
Fehler beim Kompilieren:
Erwartet: Anweisungsende
:o
Markiert ist das Paste (vor:=xlValues)
Paste:=xlPasteValues (?) (owT)
04.11.2021 15:16:15
Pierre
AW: Paste:=xlPasteValues (?) (owT)
04.11.2021 15:32:37
Marko
So passt es nun: (mit "Destination:=" nach Copy scheint es zu stören)

Sub Urlaub_eintragen()
Dim Z as Long 'Z = Zeile
Dim S As Long 'S = Spalte --> Vorbereitung für Spaltenwechsel
Application.ScreenUpdating = False
Sheets("Urlaub1").Select
For S = 5 To 23 Step 9
For Z = 4 To 34
If Cells(Z, S).Value = "U" Then
Cells(Z, S).Copy
Sheets("1.Quartal").Cells(Z, S).PasteSpecial Paste:=xlPasteValues
End If
Next
Next
Sheets("Start").Select
Application.ScreenUpdating = true
End Sub
PS: Geprüft werden muss nur in den Spalten E(5), N(14) und W (23). Das ist für die erste Person. Jetzt müssen noch 2 weitere Personen geprüft werden und die restlichen 3 Quartale.
Ich glaube, die Summenproduktformel mit VBA für den Fall umzusetzen wäre auch noch einfacher!?
Anzeige
da warst du wohl schneller ;-) (owt)
04.11.2021 15:35:37
Pierre
AW: da warst du wohl schneller ;-) (owt)
04.11.2021 15:36:45
Marko
Manchmal passiert mir so etwas! ;)
Danke trotzdem!!!!!!!!
AW: Urlaubstabelle in Monatsplan übertragen
04.11.2021 15:32:59
Pierre
Ich habe jetzt mal ganz simpel eine eigene Datei gemacht, um dein Makro zu testen.
Ändere es mal dahingehend ab (mit Kommentaren, was geändert wurde):

For S = 5 To 23 Step 9  'hier, wie schon erwähnt das Step 9, dann ist unten das S = S + 9 unnötig
For Z = 4 To 34
If Cells(Z, 5).Value = "U" Then
Cells(Z, S).Copy    'Zelle und Spalte als Variable, sonst springt er nicht ins
Sheets("Tabelle2").Cells(Z, S).PasteSpecial Paste:=xlValue  'hier auch beides als Variable, außerdem geht es bei mir mit dem einfügen nur, wenn Copy-Paste in zwei Zeilen geschrieben wird
End If
Ich würde bei den beiden "Next" noch Z und S dazu schreiben, aber das ist ansichtssache. Ich schreibe immer so ausführlich, wie es geht.
Anzeige
AW: Urlaubstabelle in Monatsplan übertragen
04.11.2021 15:35:50
Marko
Mit Next Z und Next S geht es noch schneller (hat sonst ein wenig gedauert!) Danke!
Bitteschön (owT)
04.11.2021 15:37:30
Pierre

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige