Anzeige
Archiv - Navigation
484to488
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
484to488
484to488
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Kopieren von Dienstplänen per VBA

Kopieren von Dienstplänen per VBA
17.09.2004 10:44:23
Dienstplänen
Guten Tag!
Mit folgender Routine lege ich in einem Workbook automatisch neue
Wochendienstpläne an.
Die Routine prüft dabei, ob ein Datum schon angelegt wurde.
Kopiert werden soll ein Leerplan. In diesem sind Verknüpfungen zu einer
Access-Datenbank mit Abfragen, damit das Personal immer aktuell eingetragen
wird.
Außerdem sind 7 Spalten (=Wochentag) eingerichtet.
InC2 soll durch das untenstehende Makro autom. das angelegte Datum
eingetragen werden.
In C3 soll dann c2+6 das Enddatum erscheinen.
In Zelle d2 steht eine SVERWEIS-Formel, denn zusätzlich zum Datum jeder
Spalte befindet sich darunter eine Schichtfolge ABA, BCB, CDC, DAD, welche
in einer Tabelle auf ein Datum zugreift und so entsprechend sich autom.
einstellen soll.
Was nicht funktioniert:
- Die Formeln in C3 und in den Spalten der Wochentage (Beispiel= c2+1, =c2+2
etc...), sowie die SVERWEISE werden offenbar nicht kopiert, denn im neu
angelegten
Plan erscheint nur das angelegte erzeugte Datum.
- Wird das Datum 8-stellig eingegeben haut es mit der Abfrage natürlich
nicht hin. Es müßte also eine Datumsabfrage geben und das Datum soll dann
10-stellig in C2 eingetragen werden.
Jou, ich weiß mir keinen Rat mehr. HÜLFÄÄÄ
Dank vorab

Private Sub CommandButton1_Click()' neuer Plan soll erzeugt werden
Dim x As Object
Dim mldg$, title$
Dim datum As Date
Dim ergebnis%, stil%
Unload frmPWneuerPlan 'Passwortabfrage mit Userform
If TextBox1 = "plaN" Then
Sheets("Wochenplan_Leer").Activate
ActiveSheet.Unprotect password:="plaN"
frmPWneuerPlan.Hide
'anlegen eines neuen leeren Plans
datum = InputBox("Geben Sie bitte den 1. Tag der anzulegenden Woche
an. Beachten Sie das Format (10-stellig), Beispiel: 05.03.2003")
If datum = ("") Then 'Abfrage, bzw. festlegen eines Datums
Exit Sub
End If
For Each x In ActiveWorkbook.Sheets
If x.Name = datum Then
mldg = "Diese Woche wurde offensichtlich schon erfasst, bitte kontrollieren
Sie über die bereits angelegten Pläne!"
stil = vbCritical + vbOKOnly
title = "A C H T U N G ! ! !"
ergebnis = MsgBox(mldg, stil, title)
Sheets("Wochenplan_Leer").Activate
Exit Sub
End If
Next x
ActiveSheet.Copy after:=Worksheets("Wochenplan_Leer")'eigentliches Kopieren
'Worksheets(Worksheets.Count)
Cells.Copy
Cells.PasteSpecial xlPasteValues
Application.CutCopyMode = xlCopy
ActiveSheet.Name = ActiveSheet.[C2]
ActiveSheet.Name = datum
ActiveSheet.Range("C2") = datum
ActiveSheet.Range("C3").Select
ActiveSheet.Protect password = "plaN"
Sheets("WoDiPlanStart").Activate
ActiveSheet.Range("a1").Select
Application.ScreenUpdating = True
Else
MsgBox ("Falsches Passwort!")
Exit Sub
End If
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kopieren von Dienstplänen per VBA
21.09.2004 19:27:45
Dienstplänen
Hallo Günther,
mit vba gut solltest Du eigentlich sehen, dass Du nach dem Kopieren des Blattes die Cells kopierst und als Werte einfügst. Da sind dann alle Formeln weg ....
Das mit den 8 oder 10 Stellen ist vielleicht so, Du testest nach der Eingabe ja auch nicht, ob es sich um ein Datum handelt ...
AW: Kopieren von Dienstplänen per VBA
22.09.2004 14:34:23
Dienstplänen
Hallo Andre!
Du sagst es..., genau das hab ich alles schon probiert und "VBA gut" ist leider ne Vorbelegung. Würde eher "mäßig" sagen, darum bräuchte ich ja Hilfe der "Guten" ;-)
Dir einen schönen Tag
AW: Kopieren von Dienstplänen per VBA
22.09.2004 16:53:21
Dienstplänen
Hallo Günther,
es gibt glaube auch mäßig, aber das gilt wohl auch für Excel...
Versuchs mal so. Siehe auch die Kommentare von mir.

Private Sub CommandButton1_Click() ' neuer Plan soll erzeugt werden
Dim x As Object
Dim mldg$, title$
Dim datum As Date
Dim ergebnis%, stil%
'Unload frmPWneuerPlan 'Passwortabfrage mit Userform
Show frmPWneuerPlan 'Passwortabfrage mit Userform
If TextBox1 = "plaN" Then
Sheets("Wochenplan_Leer").Activate
ActiveSheet.Unprotect Password:="plaN"
'frmPWneuerPlan.Hide 'das kommt ins userform - code von ok
'anlegen eines neuen leeren Plans
datum = InputBox("Geben Sie bitte den 1. Tag der anzulegenden Woche an. Beachten Sie das Format (10-stellig), Beispiel: 05.03.2003")
'If datum = ("") Then 'Abfrage, bzw. festlegen eines Datums
'Exit Sub
'End If
If datum = ("") Then Exit Sub
For Each x In ActiveWorkbook.Sheets
If x.Name = datum Then
mldg = "Diese Woche wurde offensichtlich schon erfasst, bitte kontrollieren Sie über die bereits angelegten Pläne!"
stil = vbCritical + vbOKOnly
title = "A C H T U N G ! ! !"
ergebnis = MsgBox(mldg, stil, title)
Sheets("Wochenplan_Leer").Activate
Application.ScreenUpdating = True
Exit Sub
End If
Next x
ActiveSheet.Copy after:=Worksheets("Wochenplan_Leer") 'eigentliches Kopieren
'Worksheets(Worksheets.Count)
'Cells.Copy
'Cells.PasteSpecial xlPasteValues
'Application.CutCopyMode = xlCopy
'ActiveSheet.Name = ActiveSheet.[C2]
ActiveSheet.Name = datum
ActiveSheet.Range("C2") = datum
ActiveSheet.Range("C3").Select
ActiveSheet.Protect Password = "plaN"
Sheets("WoDiPlanStart").Activate '? sonst war's "Wochenplan_Leer"
ActiveSheet.Range("a1").Select
Application.ScreenUpdating = True
Else
MsgBox ("Falsches Passwort!")
Exit Sub
End If
End Sub

Anzeige
AW: Kopieren von Dienstplänen per VBA
23.09.2004 17:57:30
Dienstplänen
Hi Andre,
danke zunächst mal für die Bemühungen. Schön!
Funzt nicht. Klar, der Leerplan wird kopiert, aber leider auch mit den bezügen und die wollte ich nicht kopiert haben, sondern nur das, was in den zellen zum kopierzeitpunkt steht, deshalb pastevalue...
Verstehst was ich meine?
Nachfolgender code macht das, aber wenn die abfrage mit dem bereits angelegten datum ins spiel kommt, ists vorbei.
Noch eine Idee?
HILFEEEEE

Private Sub CommandButton1_Click()
datum = InputBox("Geben Sie das Datum unbedingt im Format DD.MM.JJ ein.
Beispiel: 12.03.04")
Sheets("Wochenplan_Leer").Activate
ActiveSheet.Unprotect password:="plaN"
ActiveSheet.Copy after:=Worksheets("Wochenplan_Leer")
'Worksheets(Worksheets.Count)
Cells.Copy
Cells.PasteSpecial xlPasteValues
'Application.CutCopyMode = xlCopy
Application.ScreenUpdating = True
'ActiveSheet.Name = ActiveSheet.[C2]
ActiveSheet.Name = datum
ActiveSheet.Range("C2") = datum
ActiveSheet.Range("C3").Select
ActiveSheet.Protect password = "plaN"
Sheets("WoDiPlanStart").Activate
ActiveSheet.Range("a5").Select
End Sub

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige