Avatar billede psychoPETE Nybegynder
21. september 2009 - 20:10 Der er 1 løsning

Datavalidering / Makro

Mit spørgsmål er en opfølgning på denne tråd: http://www.eksperten.dk/spm/353554

Jeg har lavet en datavalidering/dropdown menu med månederne januar til december, altså i alt 12 måneder.

Dernæst skal den valgte måned sortere efter datofiltret.

Jeg kan godt få det til at virke hvis jeg optager en makro, men jeg ved ikke hvordan man ændre makroen i henhold til indholdet i dropdown feltet/target.

Jeg har prøvet dette baseret på den angivne tråd, men har aldrig før prøvet VBA så har ingen ide om hvordan jeg kommer videre.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("h4")) Is Nothing Then
ActiveSheet.ListObjects("Tabel_FOL").Range.AutoFilter Field:=8, Criteria1:= _
        xlFilterAllDatesInPeriod("h4""), Operator:=xlFilterDynamic
End If
End Sub

Hvor jeg selv har forsøgt at indsætte ("h4"") efter sætningen xlFilterAllDatesInPeriod, som ville hedde følgende hvis jeg havde valgt marts i min dropdown xlFilterAllDatesInPeriodMarch.

Håber Eksperterne kan hjælpe og helst med noget copy/past.

Hilsen Peter
Avatar billede psychoPETE Nybegynder
24. september 2009 - 11:28 #1
Ingen har svaret selvom det jo burde være til at overkomme, men har selv fundet løsningen, så her er den. Kan være det kan gøres smartere men har aldrig anvendt VBA før.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range("f2"), Target) Is Nothing Then
Select Case Target.Value
Case "Januar": Call Januar
Case "Februar": Call Februar
Case "Marts": Call Marts
Case "April": Call April
Case "Maj": Call Maj
Case "Juni": Call Juni
Case "Juli": Call Juli
Case "August": Call August
Case "September": Call September
Case "Oktober": Call Oktober
Case "November": Call November
Case "December": Call December
End Select
End If
End Sub

Sub Februar()
    ActiveSheet.ListObjects("Tabel_Kontrakt").Range.AutoFilter Field:=6, Criteria1:= _
        xlFilterAllDatesInPeriodFebruray, Operator:=xlFilterDynamic
End Sub
Sub Marts()
    ActiveSheet.ListObjects("Tabel_Kontrakt").Range.AutoFilter Field:=6, Criteria1:= _
        xlFilterAllDatesInPeriodMarch, Operator:=xlFilterDynamic
End Sub
Sub April()
    ActiveSheet.ListObjects("Tabel_Kontrakt").Range.AutoFilter Field:=6, Criteria1:= _
        xlFilterAllDatesInPeriodApril, Operator:=xlFilterDynamic
End Sub
Sub Maj()
    ActiveSheet.ListObjects("Tabel_Kontrakt").Range.AutoFilter Field:=6, Criteria1:= _
        xlFilterAllDatesInPeriodMay, Operator:=xlFilterDynamic
End Sub
Sub Juni()
    ActiveSheet.ListObjects("Tabel_Kontrakt").Range.AutoFilter Field:=6, Criteria1:= _
        xlFilterAllDatesInPeriodJune, Operator:=xlFilterDynamic
End Sub
Sub Juli()
    ActiveSheet.ListObjects("Tabel_Kontrakt").Range.AutoFilter Field:=6, Criteria1:= _
        xlFilterAllDatesInPeriodJuly, Operator:=xlFilterDynamic
End Sub
Sub August()
    ActiveSheet.ListObjects("Tabel_Kontrakt").Range.AutoFilter Field:=6, Criteria1:= _
        xlFilterAllDatesInPeriodAugust, Operator:=xlFilterDynamic
End Sub
Sub September()
    ActiveSheet.ListObjects("Tabel_Kontrakt").Range.AutoFilter Field:=6, Criteria1:= _
        xlFilterAllDatesInPeriodSeptember, Operator:=xlFilterDynamic
End Sub
Sub Oktober()
    ActiveSheet.ListObjects("Tabel_Kontrakt").Range.AutoFilter Field:=6, Criteria1:= _
        xlFilterAllDatesInPeriodOctober, Operator:=xlFilterDynamic
End Sub
Sub November()
    ActiveSheet.ListObjects("Tabel_Kontrakt").Range.AutoFilter Field:=6, Criteria1:= _
        xlFilterAllDatesInPeriodNovember, Operator:=xlFilterDynamic
End Sub
Sub Januar()
    ActiveSheet.ListObjects("Tabel_Kontrakt").Range.AutoFilter Field:=6, Criteria1:= _
        xlFilterAllDatesInPeriodJanuary, Operator:=xlFilterDynamic
End Sub
Sub December()
    ActiveSheet.ListObjects("Tabel_Kontrakt").Range.AutoFilter Field:=6, Criteria1:= _
        xlFilterAllDatesInPeriodDecember, Operator:=xlFilterDynamic
End Sub
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester