Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

VBA Code Automatische Aktualisierung

Forumthread: VBA Code Automatische Aktualisierung

VBA Code Automatische Aktualisierung
02.04.2025 14:20:50
Carry
Hallo zusammen,
ich bräuchte mal wieder die VBA Profis unter euch...

Ich habe eine Dienstplan als Excel Datei. Jede Woche hat eine Tabelle, benannt nach KW+Datum.
Aufgrund von wechselndem Personal habe ich eine Übersichtsseite auf der die Mitarbeiter mit Namen Telefonnummer und Eintrittsdatum gepflegt werden.
Mit folgendem VBA Code funktioniert das automatische aktualisieren der einzelnen Tabellenblätter schon ganz gut:
Sub CheckNeu()
Dim TB1 As Worksheet, TBx As Worksheet, JaNein As Variant
Dim Z1 As Integer, LR1 As Integer, LRx As Integer, i As Integer, Sp As Integer

Z1 = 2 'erste Zeile
Set TB1 = Sheets("Übersicht")
Sp = 10 'die ersten 10 Spalten sollen copiert werden

LR1 = TB1.Cells(TB1.Rows.Count, 1).End(xlUp).Row 'letzte Zeile der Spalte



For i = Z1 To LR1
For Each TBx In ThisWorkbook.Sheets
If TBx.Name > TB1.Name Then
If WorksheetFunction.CountIf(TBx.Columns(1), TB1.Cells(i, 1)) = 0 Then
If CDbl(TB1.Cells(i, 11)) = CDbl(TBx.Name) Then 'neu
LRx = TBx.Cells(TBx.Rows.Count, 1).End(xlUp).Row + 1
TB1.Cells(i, 1).Resize(1, Sp).Copy TBx.Cells(LRx, 1).Resize(1, Sp)
TBx.Cells(LRx, 1).Resize(1, Sp).Font.Color = vbBlack

End If
End If

End If
Next
Next
MsgBox "Fertig"
End Sub



Meine Frage jetzt:
Gibt es eine Möglichkeit den Code so zu ändern, das Änderungen die in der Übersicht getätigt werden, auf den einzelnen Tabellenblättern auch an der gleichen Stelle vorgenommen werden wie in der Übersicht und nicht wie bisher immer ganz unten?? (Also wenn z.B. nach dem 3. Mitarbeiter eine Zeile eingefügt wird, dass diese auch auf allen Tabellenblättern nach dem 3.Mitarbeiter eingefügt wird und nicht wie bisher ganz unten)

Gibt es zusätzlich eine Möglichkeit, wenn Mitarbeiter herausfallen, diese ab der betreffenden KW nicht mehr erscheinen zu lassen?

Vielen Dank schon mal im Voraus.
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Code Automatische Aktualisierung
02.04.2025 16:29:24
Piet
Hallo

das wird sicher viel komplizierter sein, aber ohne Beispieldatei geht niemand an den Thread ran.
Mein Vorschlag, lade eine Beispieldatei mit anonymen Daten hoch, z.B. MTA 1,2,3 usw.

Das könnte zwischen den KW erhebliche Unterschiede werden, wenn neue Zeilen dazukommen, oder rausfallen.
Die Zeilen Reihenfolge der einzelnen Monate stimmt dann NICHT mehr überein. Da wird schön kniffelig werden!

mfg Piet
Anzeige
AW: VBA Code Automatische Aktualisierung
03.04.2025 19:12:42
Piet
Hallo

ich schicke dir mal deine Beispieldatei zurück, bin aber aus logischen Gründen einen anderen Weg gegangen!
Dein Makro verursachte bei mir Laufzeitfehler wegen CDBL für die Datumauswertung. Ich habe auf CStr umgestellt.
Mein Makro erwartet den aktuellen Monat in Zelle L2, und kopiert nur die Daten in diesen Monat. - Vorher wird gelöscht!

In der Übersicht habe ich ab Zeile 100 ein Feld eingeräumt, um ausgeschiedene MTA nach unten zu verschieben.
Der Vorteil ist, diese Daten bleiben erhalten, und erscheinen nicht mehr im aktuellen Monat/ Folgemonaten.
Meine Überlegung war, das in den -erledigten- KW's die ausgeschiedenen ja NICHT gelöscht werden sollen!
https://www.herber.de/bbs/user/176568.xlsm

Ich warte mal ab ob dir diese Lösung gefällt. Das Makro kannst du ggf. selbst anpassen.

mfg Piet

Anzeige
AW: VBA Code Automatische Aktualisierung
04.04.2025 16:51:26
Piet
Hallo Carry

was Pfannkuchen alles bewirken könnnen! Sogar einen berühmten Einzeiler von -snb-
Ich habe lange überlegt wie man das Makro ändern kann, machte eine Kaffeepause.
Das ist so unsagbar simpel, probiere es bitte mal aus. Ungetestet, sollte aber klappen.
Bei Dim kannst du bitte noch die Varable TBAll als String deklarieren.

Dann ergänze den Code um 1 Zeile, so wie unten. So sollte es klappen
If TBx.Name = TB1.Range("L2") Then TBAll = "Ja" 'weiter bis LastSheet
If TBx.Name = TB1.Range("L2") Or TBAll = "Ja" Then

mfg Piet
Anzeige
AW: VBA Code Automatische Aktualisierung
07.04.2025 13:51:33
Carry
Hallo Piet,

Ich stehe irgendwie auf dem Schlauch….

Könntest du mir dein Upgrade in die Musterdatei einmal einfügen?

Ich bekomme irgendwie immer nur Fehlermeldungen :/

Danke!!!

LG
Carry
AW: VBA Code Automatische Aktualisierung
03.04.2025 22:49:52
Carry
Hallo Piet,

vielen vielen Dank!!!!! Dein Makro ist fantastisch!!!!!!
Das funktioniert einwandfrei und spart mir viele viele Stunden Arbeit!!

DANKE, DANKE, DANKE!!!!!
Anzeige
AW: VBA Code Automatische Aktualisierung
04.04.2025 12:20:28
Carry
Hallo Piet,

Ich bräuchte nochmal deine Hilfe ich steh irgendwie auf dem Schlauch…
Kannst du mir sagen, wie ich das Makro anpassen muss, damit alle zukünftigen Dienstpläne auch mit aktualisiert werden und nicht nur die eine KW die ich bei L2 eingeb?

Danke schon mal!!!!
AW: VBA Code Automatische Aktualisierung
11.04.2025 14:23:53
Carry
Hallo Piet,

Vielen Dank nochmal!
Ich hab leider nur das Problem, dass das Upgrade nicht funktioniert…
Könntest du mir das mal in meine Beispieldatei einpflegen das es funktioniert? Dann kann ich mal prüfen, wo mein Fehler liegt.

Danke schon mal!!!
Anzeige
AW: VBA Code Automatische Aktualisierung
02.04.2025 16:33:05
Piet
Nachtrag

es reicht die Übersicht mit 3-4 KWs, wo schon Änderungen vorliegen. Man mus den Tabellenaufbau erkennen können.

mfg Piet

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige