AW: Problem mit Makro (Schichtplan)
24.09.2005 13:36:01
Klaus-Dieter
Hallo Heribert,
versuche es mal so:
Option Explicit
Sub schichten()
' trägt vorgegebene Schichtkürzel in einen Kalender ein
' geschrieben von Klaus-Dieter Oppermann
' am 16.03.2004
' letzte Änderung 28.11.2004 ' Korrektur für Schaltjahr zugefügt
' Variablen deklarieren
Dim sk As Variant ' Schichtkürzel
Dim s As Integer ' Schleifenzähler für Tabellenzeilen
Dim we As Integer ' Zuweisungsschlüssels
Dim sp As Integer ' Schleifenzähler für Spalten
Dim arr(50, 0) ' Array zum Eintragen der Kürzel
Dim ziel As Integer
On Error Resume Next ' bei Fehler mit Folgeanweisung weitermachen
' Kürzel in Feldwvariable einlesen
sk = Array("F", "F", "S", "S", "N", "N", "N", "-", "-", "F", "F", "S", "S", "S", "N", "N", "-", "-", "F", "F", "S", "S", "N", "N", "N", "-", "-")
' Kürzel in Kalender schreiben
For sp = 4 To 26 Step 2 ' Schleife für Spaltenzuweisung
ziel = Cells(Rows.Count, sp - 1).End(xlUp).Row ' Zielwert für Schleife
If sp = 5 And Cells(1, 1) Mod 4 <> 0 Then ziel = ziel - 1 ' Korrektur für Schaltjahr
For s = 0 To ziel ' Schleife für Einträge in Zeilen
we = Cells(s + 3, sp - 1) Mod 27 ' Feldwert für Variable berechnen
arr(s, 0) = "" ' Array-Felder leeren
arr(s, 0) = sk(we) ' Neue Inhalte in Array einlesen
Next s ' Schleifenzähler (Zeile) plus 1
Range(Cells(3, sp), Cells(ziel, sp)) = arr ' Array in Tabelle schreiben
Next sp ' Schleifenzähler (Spalte) plus 1
If Cells(1, 1) Mod 4 <> 0 Then Cells(34, 6) = "" ' Korrektur für Schaltjahr
End Sub
eEs wäre nett, wenn du diesmal meinen Namen im Quelltext stehen läßt. ;-)
Viele Grüße Klaus-Dieter
Online-Excel