VBA Spalten ausblenden nach Kalenderwoche

Moderator: ModerationP

VBA Spalten ausblenden nach Kalenderwoche

Beitragvon Robert Nesta » 14. Feb 2019, 11:07

Hallo liebe Excel Profis!

Ich bin auf der Suche nach einem VBA Code für folgendes Thema:

Ich habe eine Arbeitseinteilungsliste erstellt in der die Kalendertage mit Datum und
Kalenderwoche ersichtlich sind.
In Spalte 4 (ab Zelle F4) werden die entsprechenden Kalenderwochen angezeigt.
In der Zelle C3 wird die aktuelle Kalenderwoche eingetragen.

Nun zu meinem Problem:

ich möchte dass beim ausdrucken der Tabelle nur ein bestimmter Bereich angezeigt
wird und nicht die ganze Tabelle. Also bräuchte ich ein Code der folgendes kann

- Es soll nur ein Bereich von 4 Wochen angezeigt werden - jeweils ab einer Woche vor,
und 2 Wochen nach der gewählten Kalenderwoche aus Zelle C3.
- alle Spalten die sich nicht in dem entsprechenden Bereich befinden sollen ausgeblendet werden.
- Steht in Zelle C3 "alles anzeigen" sollen alle Spalten wieder eingeblendet werden.
- Makro soll wenn möglich beim öffnen der Excel automatisch starten.

Der Datei Entwurf habe ich mal angehängt.


Ich weiss das ist keine Leichte Aufgabe - da ich aber bis jetzt hier immer auf kompetente
Excel Profis gestoßen bin versuche ich es mal... :-)
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Robert Nesta
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 12
Registriert: 19. Jul 2018, 07:29

Re: VBA Spalten ausblenden nach Kalenderwoche

Beitragvon Flotter Feger » 14. Feb 2019, 12:09

Hallo,

setzt doch ganz einfach vor dem Ausdruck die PrintArea. Warum willst du da lang rumtun, mit ausblenden.

Wenn du die beiden fehlenden Tage der KW1 in den Spalten F und G ergänzt, ist das ein ganz einfaches Abzählen der Zellen, um den String für die PrintArea zusammenzusetzen.

Der Startpunkt der gewählten KW wäre dann einfach C3*7-1 ... dementsprechend eben die Zellen abziehen und/oder addieren ...
VG Sabina

bei mir läuft Win 7 32-Bit - Office 2010 Pro Plus 32-Bit und Office 2016 Pro Plus 32-Bit
Wer auch weiter Hilfe erwartet, sollte sich nicht zu schade sein, ein kurzes Feedback zu geben.
Benutzeravatar
Flotter Feger
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 2012
Registriert: 24. Okt 2016, 16:40

Re: VBA Spalten ausblenden nach Kalenderwoche

Beitragvon MisterBurns » 14. Feb 2019, 12:35

Mach dir einen Druckbutton, das ist der einfachere Weg

Code: Alles auswählen
Sub drucken()
Dim S As Integer, KW As Integer, Woche As Integer
Application.ScreenUpdating = False

With Sheets("Einteilung MA")
    For S = 6 To 371
        Woche = .Range("C3")
        KW = Format(CDate(.Cells(5, S)), "ww", vbUseSystemDayOfWeek, vbUseSystem)
        If KW < Woche - 1 Or KW > Woche + 2 Then
            .Columns(S).Hidden = True
        End If
    Next S
    .PrintOut copies:=1
    .Columns("F:NG").Hidden = False
End With

Application.ScreenUpdating = True

End Sub
Schöne Grüße
Berni
MisterBurns
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1124
Registriert: 28. Mär 2018, 13:13

Re: VBA Spalten ausblenden nach Kalenderwoche

Beitragvon Robert Nesta » 15. Feb 2019, 12:04

OK. Danke für eure Antworten.

Nur den Druckbereich zu definieren hatte ich auch schon als Möglichkeit - allerdings
möchte ich zu Besprechungszwecken die entsprechenden Spalten nicht sehen.

deswegen suche ich nach einer Lösung in der ich die Spalten komplett ausblenden
kann die gerade nicht im aktuellen Zeitfenster sind...
Robert Nesta
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 12
Registriert: 19. Jul 2018, 07:29

Re: VBA Spalten ausblenden nach Kalenderwoche

Beitragvon MisterBurns » 15. Feb 2019, 14:16

Ja und was ist mit meinem Vorschlag?
Schöne Grüße
Berni
MisterBurns
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1124
Registriert: 28. Mär 2018, 13:13

Re: VBA Spalten ausblenden nach Kalenderwoche

Beitragvon Robert Nesta » 20. Feb 2019, 13:05

MisterBurns hat geschrieben:Ja und was ist mit meinem Vorschlag?


Sorry - war einige Tage nicht im Büro...

Ja dein Code habe ich eingepflegt - funktioniert zum drucken super! Vielen Dank.

Ich würde mich trotzdem freuen wenn ich einen Code finden könnte der mir
die Spalten direkt in der Arbeitsmappe ausblendet - so dass ich bei Besprechungen
direkt nur einen gewählten Bereich sichtbar mache...

Aber mit dem Druckbutton ist schon vieles gewonnen... :-)
Robert Nesta
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 12
Registriert: 19. Jul 2018, 07:29

Re: VBA Spalten ausblenden nach Kalenderwoche

Beitragvon MisterBurns » 20. Feb 2019, 13:28

Dann nimm einfach den gleichen Code nur etwas umgebaut:
Code: Alles auswählen
Sub ausblenden()
Dim S As Integer, KW As Integer, Woche As Integer
Application.ScreenUpdating = False

With Sheets("Einteilung MA")
    .Columns("F:NG").Hidden = False
   
    For S = 6 To 371
        Woche = .Range("C3")
        KW = Format(CDate(.Cells(5, S)), "ww", vbUseSystemDayOfWeek, vbUseSystem)
        If KW < Woche - 1 Or KW > Woche + 2 Then
            .Columns(S).Hidden = True
        End If
    Next S
End With

Application.ScreenUpdating = True

End Sub


Und zum Einblenden aller Spalten nimmst du nur
Code: Alles auswählen
Sub einblenden()
Sheets("Einteilung MA").Columns("F:NG").Hidden = False
End Sub
Schöne Grüße
Berni
MisterBurns
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1124
Registriert: 28. Mär 2018, 13:13

Re: VBA Spalten ausblenden nach Kalenderwoche

Beitragvon snb » 20. Feb 2019, 13:32

Keep it simple:

Code: Alles auswählen
Sub M_snb()
    Tabelle1.PageSetup.PrintArea = Tabelle1.Cells(5, Application.Match(Tabelle1.Cells(3, 3), Tabelle1.Rows(4), 0)).Resize(20, 28).Address
    MsgBox Tabelle1.PageSetup.PrintArea
End Sub


Verwende weeknum(today(),21) für ISO-weeknumbers.
snb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 6428
Registriert: 25. Sep 2014, 16:37

Re: VBA Spalten ausblenden nach Kalenderwoche

Beitragvon Robert Nesta » 20. Feb 2019, 15:09

Super - danke für die schnelle Antworten...
ich werde es heute abend gleich mal durchtesten....

:-)Vielen Dank...
Robert Nesta
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 12
Registriert: 19. Jul 2018, 07:29

Re: VBA Spalten ausblenden nach Kalenderwoche

Beitragvon Robert Nesta » 21. Feb 2019, 13:26

Yeah - ich habe die Excel nun genau so wie
ich wollte!
Vielen Dank Berni!

Deine Codes haben mir sehr geholfen!


Den Code von snb habe ich leider nicht verstanden -
zu einfach ist halt manchmal doch kompliziert... ;-)
Robert Nesta
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 12
Registriert: 19. Jul 2018, 07:29


Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: Maddin7, Mpro70, Trama und 37 Gäste