Re: Dynamisches Spalteneinblenden
20.05.2002 18:24:57
Margot
Hallo Klaus,
zunächst "herzlichen Dank" für Deine Mühe.
Dennoch komme ich auf das Angebot zurück und stelle "eine" ergänzende Frage.
"Meine" - jetzige (und glücklicherweise funktionierende)- Lösung - siehe die beiden Macros unten.Allerdings ärgert mich daran weiterhin - und das ist die Kernfrage - dass es mir nicht gelingt, ein Array der zu bearbeitenden Tabellenblätter mit einer Schleifen-Abfrage zu bearbeiten. Die "Adress-Positionierung" bei meinen Versuchen bleibt immer auf der zuerst angegebenen Tabelle im Array.
Hast Du (oder jemand anders??) dafür eine Lösung
Nochmals - DANKE und schöne Reststunden des "Feiertags" Pfingstmontag - hoffentlich nicht nur mit EXCEL-Problemlösungen...
Margot
Sub Spalten_einblenden()
' in Abhängigkeit vom aktuellen Berichtsmonat werden nur die im Jahresablauf bereits gefüllten Monate eingeblendet
'und hier liegt das "Problem" --> die zu bearbeitenden Blätter müssen in dieser Lösung statisch einge"tippt" werden.
'Schöner (weniger wartungsaufwendig) wäre eine "Schleife" die alle in einer "Gruppe" ( Array von sheets ) definierten Blätter "automatisiert" abarbeitet.
'Das Workbook beinhaltet viel mehr als die hier zu bearbeitenden Worksheets.
Sheets("Jahr_Stamm_APE").Activate
Call Welche_Spalten_einblenden
Sheets("Jahr_Befr_APE").Activate
Call Welche_Spalten_einblenden
Sheets("Jahr_aktive_APE").Activate
Call Welche_Spalten_einblenden
Sheets("Jahr_Stamm_Koepfe").Activate
Call Welche_Spalten_einblenden
Sheets("Jahr_Befr_Kopefe").Activate
Call Welche_Spalten_einblenden
Sheets("Jahr_aktive_Koepfe").Activate
Call Welche_Spalten_einblenden
Sheets("Jahr_FAK").Activate
Call Welche_Spalten_einblenden
Sheets("Jahr_AZUBI").Activate
Call Welche_Spalten_einblenden
Sheets("Jahr_Tarif_40h").Activate
Call Welche_Spalten_einblenden
Sheets("Jahr_AT_40h ").Activate
Call Welche_Spalten_einblenden
Sheets("Jahr_Tar_u_AT_40h ").Activate
Call Welche_Spalten_einblenden
Sheets("Jahr_Mehr_40hTar").Activate
Call Welche_Spalten_einblenden
Sheets("Jahr_ATZ_ArbPh").Activate
Call Welche_Spalten_einblenden
Sheets("Jahr_Mehrarb").Activate
Call Welche_Spalten_einblenden
Sheets("Jahr_Stamm_APE").Activate
Range("A1").Select
End Sub
Sub Welche_Spalten_einblenden()
' in Abhängigkeit vom letzten Berichtsmonat werden nur die bereits gefüllten Monate eingeblendet
' Im Blatt "Jahr_Durchschnitt" ist in Zelle "A1" der gültige Berichtsmonat - als Zahl (1 - 12) - eingetragen)
Dim Letzter_Monat As Integer
Letzter_Monat = Sheets("Jahr_Durchschnitt").Range("A1").Value
'Alle anderen zu bearbeitenden worksheet sind gleich strukturiert - deshalb der Wunsch nach Verarbeitung in einer (defi-nierten) Gruppe:
'in Spalte 7 ("G") steht in den zu verarbeitenden Sheets der Vorjahres-Vergleichswert
'ab Spalte 8 ("H") sind die aktuellen Monatswerte eingetragen
'in Spalte 20 ("T") steht der - in Abhängigkeit von den im lfd. Jahr vergangenen Monate - Durchschnitt des aktuellen Jahres bis Berichtsmonat
'Spalte 27 ("AA") ist als Trennspalte zwischen Ist und Delta gedacht - "Leerspalte"
'Ab Spalte 28 werden die monatlichen Abweichungen vom Vorjahresendwert errechnet (Jan - Dez(Vorjahr), Feb - Dez(Vorjahr) ...)
'erst einmal alles ausblenden
Range(Columns(8), Columns(42)).Select
Selection.EntireColumn.Hidden = True
' nun die dem Berichtsmonat entsprechende Anzahl Spalten wieder einblenden
Range(Columns(8), Columns(7 + Letzter_Monat)).Select
Selection.EntireColumn.Hidden = False
'die Spalte mit den Durchschnittswerten immer einblenden
Columns(20).Select
Selection.EntireColumn.Hidden = False
'die Leerspalte + die dem Berichtsmonat entsprechenden Deltaspalten für die Monate bis Berichtsmonat einblenden
Range(Columns(27), Columns(27 + Letzter_Monat)).Select
Selection.EntireColumn.Hidden = False
End Sub