Sub Skjulmaaneder() Dim iSheet As Integer Dim oSheet As Worksheet Dim iCol As Integer
' Loop igennem alle faner For iSheet = 1 To ActiveWorkbook.Sheets.Count
' Sæt oSheet til aktuel fane Set oSheet = ActiveWorkbook.Sheets(iSheet)
' Fanen standata springes over If Not oSheet.Name = "standata" Then
' Løb i gennem de første 3200 kolonner (bør ændres til hvad der er relevant) For iCol = 1 To 3200
' Vær sikker på at kolonnen ikke er skjult uden at skulle være det oSheet.Cells(1, iCol).EntireColumn.Hidden = False
' Kun når det er et kvartal er det relevant at skjule kolonner If Range("standata!B2").Value = "kvartal" Then ' Nedenstående if ændres til hvad der afgør om det er en månedskolonne ' I dette eksempel testes på om teksten i række 2 er "Måned" If oSheet.Cells(2, iCol).Value = "Måned" Then oSheet.Cells(2, iCol).EntireColumn.Hidden = True End If End If Next iCol End If Next iSheet
Kan man lave det sådan at den "kører" makroen automatisk så snart man vælger "Kvartal" i Stamdataarket ? Og selvfølge skal den vise kolonerne igen så snart man vælger "Måned".
Jeg ved også lige præcis hvilke kolonner der skal skjules i de forskellige ark (der skal ikke stå noget i række to e.l.), kan man ikke definere kolonnerne i makroen ?
For at køre makroen automatisk: I Visual Basic editoren (Alt+F11): dobbeltklik til venstre i billedet på "Sheet1 (standata)" (Sheet1 kan godt hedde noget andet i dit tilfælde) For oven til højre i billedet vælg "Worksheet" i den venstre valgliste og "Change" i den højre valgliste. Skriv følgende stump kode:
Private Sub Worksheet_Change(ByVal Target As Range) Dim isect As Range
' Er Kvartal/måned ændret, så kald funktionen SkjulMaaneder Set isect = Application.Intersect(Target, Range("B2")) If Not isect Is Nothing Then Skjulmaaneder Set isect = Nothing End Sub
For selv at udpege de kolonner der skal skjules/vises, ændrer du makroen Skjulmaaneder til følgende:
Sub Skjulmaaneder() Dim ErKvartal As Boolean
If Range("standata!B2").Value = "Kvartal" Then ErKvartal = True Else ErKvartal = False End If
' Nedenstående er eksempler, der skal rettes til! ' Ret i hver linje navnet på fanen og kolonnenummeret ' Eksemplerne skjuler/viser kolonne 5 i arket Østdanmark og kolonne 6 i arket Vestdanmark ActiveWorkbook.Sheets("Østdanmark").Cells(1, 5).EntireColumn.Hidden = ErKvartal ActiveWorkbook.Sheets("Vestdanmark").Cells(1, 6).EntireColumn.Hidden = ErKvartal
End Sub
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.