Hallo Reinhard,
in diesem Brett geht alles so schnell…
Meine ursprüngliche Frage mit Deiner Antwort ist schon wieder im Archiv.
Siehst Du noch eine Möglichkeit, mir in der Sache zu helfen?
Grüße aus Nürnberg
Ullrich Sander
Hallo Reinhard,
in diesem Brett geht alles so schnell…
Meine ursprüngliche Frage mit Deiner Antwort ist schon wieder im Archiv.
Siehst Du noch eine Möglichkeit, mir in der Sache zu helfen?
Grüße aus Nürnberg
Ullrich Sander
in diesem Brett geht alles so schnell…
Meine ursprüngliche Frage mit Deiner Antwort ist schon wieder
im Archiv.
Siehst Du noch eine Möglichkeit, mir in der Sache zu helfen?
Hallo Ullrich,
es ist vielleicht gut, du gehst links auf dein Profil—Deine Artikel und suchst nur in diesem Brett danach und zeigst dann hier den Archiv-Link der damaligen Anfrage.
Kannst ja dabei auch die damalige Frage nochmals dazuschreiben.
Gruß
Reinhard
Hallo Reinhard,
hier der Link zu dem Thread im Archiv:
/t/spaltenbreite-abhaengig-wie-bedingte-formatierung…
Und hier nochmal die Fragestellung:
Ich möchte die Spaltenbreite einstellen für 30/31 Tage pro Monat und alle 12 Monate in den jeweiligen Tabellen.
Dies soll in Abhängigkeit davon passieren, ob in der einzelnen Spalte ein „S“ oder ein „F“ in der zweiten Zeile steht.
Also: WENN C2=„S“ oder „F“, dann Spaltenbreite 3cm SONST 1,5cm.
Und das dann als Schleife für alle 30/31 Tage und alle 12 Monatsblätter.
Wäre schön, wenn Du oder auch Andere mir dabei helfen könnte(st).
Grüße aus Nürnbeg
Ullrich Sander
hier der Link zu dem Thread im Archiv:
/t/spaltenbreite-abhaengig-wie-bedingte-formatierung…
Hallo Ullrich,
derzeit kann ich leider nix bei rapidshare runterladen.
Bitte stelle die Beipielmappe nochmals ein, bei http://www.file-upload.net/
o.ä.
Mir ist es gleich aber XL2007 hat nicht jeder der dir helfen könnte, wenn es nix am Problem ändert stelle sie als normale xls ein, nicht als xlsx.
Gruß
Reinhard
Hallo nochmal aus Nürnberg,
Datei steht jetzt im XLS-Format unter:
http://www.file-upload.net/download-2855778/Monats-b…
zum Download bereit.
Vielen Dank für die Mühe
Ullrich Sander
Guten Morgen Ullrich,
Ich möchte die Spaltenbreite einstellen für 30/31 Tage pro
Monat und alle 12 Monate in den jeweiligen Tabellen.
Dies soll in Abhängigkeit davon passieren, ob in der einzelnen
Spalte ein „S“ oder ein „F“ in der zweiten Zeile steht.Also: WENN C2=„S“ oder „F“, dann Spaltenbreite 3cm SONST
1,5cm.
da es sowieso auf Vba hinausläuft braucht man keine Zeile 2, Zeile $ auch nicht.
Deine Feiertagstabelle, bau die mal bitte um, sodaß das Datum links steht und der Ft-Name rechts.
Besser für SVerweis wenn du aufgrund des Datums den Namen sehen willst.
Kannst es auch so lassen, ist halt ein bisschen aufwendiger in Vba.
Blätter Grundlagen und Ft würde ich zu einem vereinen. Und die Angabe der Jahreszahl reicht in Grundlagen.
Schreib in AD3:
=WENN(AC3+1"";AD3;"")
dann beides nach rechts bis Spalte AG kopieren.
Schreib in B1:
=Grundlagen!C2
und in C3:
=DATUM(B1;VERGLEICH(A1;Grundlagen!D1:smiley:12;0);1)
In Grundlagen!D1:smiley:12 steht untereinander Januar, Februar, März usw.
Da du ja Vba benutzt, sag Bescheid, dann macht Vba auch das mit, also im Blatt sind keine Formeln mehr.
Feiertagsberechnung, ich hab jetzt nicht geschaut wie du die berechnest, das kennst du?:
http://www.excelformeln.de/suche.html
Suche da mal nach Feiertage
Da ich in deinen Tabellen keine Spalte mit F oder S entdecken konnte,
F soll wohl Ft sein?
Was ist S? Sa/So, Sonderschicht,Spezial, denn du formatierst farblich Mo-Do und Fr-So unterschiedlich.
Gruß
Reinhard
Hallo Ullrich,
nachstehend ein Makro. Schreibe es in ein Standardmodul einer Mappe, sie muß nur das Blatt FT haben, so wie es mir derzeit vorliegt.
Der Code erstellt eine neue Mappe mit den 13 Blättern.
Fehlen tut derzeit nur das mit Feiertagen und den Spaltenbreiten.
Egal, teste es erst mal.
Ich warte erst mal deine Tests ab und deine reaktion auf das andere neuere Posting von mir.
Gruß
Reinhard
Option Explicit
'
Sub Erzeuge()
Dim Eing As String, M As Integer, T As Integer
Eing = InputBox("Bitte jahr vierstellg eingeben", "Jahreseingabe", Year(Now()) + 1)
'Hier ggfs. die Variable Eing auf Gültigkeit prüfen
On Error GoTo hell
Worksheets("FT").Copy
Application.ScreenUpdating = False
With ActiveWorkbook
.Worksheets("FT").Range("B1").Value = CInt(Eing)
For M = 12 To 1 Step -1
.Worksheets.Add before:=Worksheets(1)
ActiveSheet.Name = MonthName(M)
With .Worksheets(MonthName(M))
.Rows("3:3").Select
ActiveWindow.FreezePanes = True
.Rows(3).RowHeight = 63
.Range("A1").Value = Worksheets("FT").Range("B1").Value
.Range("A2").Value = .Name
.Range("A3").Value = "Feiertag"
.Range("B1").Value = "Tag"
.Range("B2").Value = "WT"
For T = 1 To 31
If Month(DateSerial(Eing, M, T)) = M Then
.Rows(1).NumberFormat = "00"
.Rows(2).NumberFormat = "DDD"
.Cells(1, T + 2) = T
.Cells(2, T + 2) = DateSerial(Eing, M, T)
If Weekday(.Cells(2, T + 2), 2)
Hallo Reinhard,
erstmal danke für Deine Mühe!
Dein Makro zur Erzeugung der Monatsblätter lauft bei mir auf einen Fehler:
Fehler 9 Index außerhalb des gültigen Bereichs.
Bei meiner Tabelle ist die Zeile 2 jeweils ausgeblendet.
Dort frage ich ab, ob beim Wochentag als 1. Zeichen ein F oder ein S steht. Damit färbe ich mit der bed. Formatierung die Wochenenden, Freitage und Feiertage ein.
Genauso ist es gewünscht.
Anmerkung:
Die Tabelle ist nicht für mich, sondern für Lena, die hier im Forum nach einem Kalender gefragt hat, um nicht jedes Jahr einen Kalender „von Hand“ basteln zu müssen. Der Artikel ist aber auch schon im Archiv.
Grüße aus Nürnberg
Ullrich Sander
Hallo Ullrich,
Dein Makro zur Erzeugung der Monatsblätter lauft bei mir auf
einen Fehler:
Fehler 9 Index außerhalb des gültigen Bereichs.
das ist mir sehr unklar, habe mehrmals getestet. Setz mal ein Hochkomma vor „On Error got…“.
Dann sag mir die Zeile die der Debugger markiert und die Werte die in dem Moment die Variablen haben.
Bei meiner Tabelle ist die Zeile 2 jeweils ausgeblendet.
Habe ich gesehen. Zum Testen macht man das nicht.
Dort frage ich ab, ob beim Wochentag als 1. Zeichen ein F oder
ein S steht. Damit färbe ich mit der bed. Formatierung die
Wochenenden, Freitage und Feiertage ein.
? Du färbst doch Mo-Do ein?
Zeile 2 ist unnötig. Prüf gleich mit Oder() ab ob Wochentag() >4 ist oder ein Feiertag vorliegt (Zählenwenn() in der Feiertagsliste)
In Vbagenauso, da heißts weekday().
Die Tabelle ist nicht für mich, sondern für Lena, die hier im
Forum nach einem Kalender gefragt hat, um nicht jedes Jahr
einen Kalender „von Hand“ basteln zu müssen. Der Artikel ist
aber auch schon im Archiv.
Was bedeutet das nun? Projekt erledigt? Oder liest hier Lena mit?
Oder wann darf ich zur Hochzeit kommen ))
Hier eine funktionierende Mappe:
http://www.file-upload.net/download-2857481/kwullric…
Gruß
Reinhard
Hallo Reinhard,
mit dem Debugging komme ich nicht klar. Es wird keine Zeile im Code markiert.
Ich habe eine aktuelle Mappe nur mit dem Blatt „FT“ und Deinem Code.
Wenn ich das Makro starte kommt das Eingabefenster für die Jahreszahl.
Anschließend die Fehlermeldung Fehler 9 Index außerhalb des gültigen Bereichs.
Ich habe nach Ausführung 2 Mappen:
Ich habe die aktuelle Mappe (ohne Ausführung des Makros) nochmal hochgeladen:
http://www.file-upload.net/download-2858339/Monats-b…
Zu Deinen mehr persönlichen Fragen:
ich kenne Lena persönlich garnicht. Also nix mit Hochzeit, schon weil ich seit 39 Jahren glücklich verheiratet bin (doch das gibts!).
Ich weiß auch nicht, ob Lena aktuell mitliest, werd sie aber mal anmailen.
Grüße aus Nürnberg
Ullrich Sander
PS. Ich wäre Dir nicht böse, wenn Du sagst, der Aufwand wird zuviel.
Moin Ullrich,
Ich habe eine aktuelle Mappe nur mit dem Blatt „FT“ und Deinem
Code.
Nimm diese Mappe, Alt+F11, im Editor Einfügen–Modul. Dorthinein gehört mein Code.
Das meinte ich als ich schrieb „standardmodul“. Damit ist immer Modul1, Modul2 usw gemeint.
Wechseln zwischen den Modulen geschieht mit Doppelklick auf den Modulnamen.
Also wechsle ins Modul „DieseArbeitsmappe“, markiere dort den Code mit Strg+x und wechsle in Modul1 und kopiere ihn hinein.
Gruß
Reinhard
Hallo Reinhard,
Das Bessere ist der Feind des Guten…-.
Jetzt funktionierts bestens.
Der Code ist genial, weil man da die Monatstabellen bei der Entstehung beeinflussen kann.
Bestimmt auch die Spaltenbreite (If Weekday
Hallo Reinhard,
hab jetzt mal DeinenCode um 2 Zeilen ergänzt, die mir die gewünschte Spaltenbreite bringen…
Funktioniert alles bestens, nochmal vielen Dank für Deine große Hilfe!
Ullrich Sander
Option Explicit
’
Sub Erzeuge()
Dim Eing As String, M As Integer, T As Integer
Eing = InputBox(„Bitte jahr vierstellg eingeben“, „Jahreseingabe“, Year(Now()) + 1)
'Hier ggfs. die Variable Eing auf Gültigkeit prüfen
'On Error GoTo hell
Worksheets(„FT“).Copy
Application.ScreenUpdating = False
With ActiveWorkbook
.Worksheets(„FT“).Range(„B1“).Value = CInt(Eing)
For M = 12 To 1 Step -1
.Worksheets.Add before:=Worksheets(1)
ActiveSheet.Name = MonthName(M)
With .Worksheets(MonthName(M))
.Rows(„3:3“).Select
ActiveWindow.FreezePanes = True
.Rows(3).RowHeight = 63
.Range(„A1“).Value = Worksheets(„FT“).Range(„B1“).Value
.Range(„A2“).Value = .Name
.Range(„A3“).Value = „Feiertag“
.Range(„B1“).Value = „Tag“
.Range(„B2“).Value = „WT“
For T = 1 To 31
If Month(DateSerial(Eing, M, T)) = M Then
.Rows(1).NumberFormat = „00“
.Rows(2).NumberFormat = „DDD“
.Cells(1, T + 2) = T
.Cells(2, T + 2) = DateSerial(Eing, M, T)
If Weekday(.Cells(2, T + 2), 2) = 5 Then .Columns(T + 2).ColumnWidth = 25
End If
Next T
.Range(„A1“).Select
End With
Next M
End With
hell:
Application.ScreenUpdating = True
If Err.Number = 0 Then
MsgBox „Erledigt, nicht vergessen, die neue Mappe zu speichern“
Else
MsgBox „Fehler“ & Chr(10) & Err.Number & " " & Err.Description
End If
End Sub