Avatar billede PBChristensen Juniormester
20. september 2012 - 19:57 Der er 3 kommentarer og
1 løsning

Autofilter kan ikke adskille "1" fra "10"

Hej,

Jeg har en række data, som bliver styret af et autofilter fra vba. F.eks. har nogle af rækkerne følgende data:

10
1,3,7,10
3,7,10

Når jeg så bruger følgende kode, så kommer alle 3 linier (month=1)

With Sheets("Kundeliste")
.Range("A:ad").AutoFilter Field:=8, Criteria1:=Array("*" & month & "*", "="), Operator:=xlFilterValues
end with

Men bruger jeg følgende kode, så kommer der ingen resultater, for så vælger autofilteret med 10 helt fra:

With Sheets("Kundeliste")
.Range("A:ad").AutoFilter Field:=8, Criteria1:=Array("*" & month & "*", "=", "*" & "<>11" & "*", "*" & "<>12" & "*", "*" & "<>10" & "*"), Operator:=xlFilterValues
End With

Har tænkt på at lave variablen month om fra "1" til "1," - men det kan godt risikere at 1 står alene på en linie.

Hvad kan jeg gøre, for at få det til at virke?

På forhånd tak
Avatar billede PBChristensen Juniormester
20. september 2012 - 20:37 #1
Har også prøvet med format - men også her kommer alle linierne frem:

.Range("A:ad").AutoFilter Field:=8, Criteria1:=Array("*" & Format(month, "0") & "*", "="), Operator:=xlFilterValues
Avatar billede PBChristensen Juniormester
24. september 2012 - 11:26 #2
Jeg er blevet nød til at ændre mine data, og så bruge en lidt ændret kode....

10.
1.3.7.10.
3.7.10.

If Months = "Januar" Then month = "1."
.Range("A:ad").AutoFilter Field:=8, Criteria1:=Array("*" & month & "*", "="), Operator:=xlFilterValues
end with

...men ville helst have den anden løsning, så lader lige tråden være åben lidt endnu...
Avatar billede PBChristensen Juniormester
24. september 2012 - 11:40 #3
Nej.... virker faktisk heller ikke, for februar og december kan godt drille noget...

f.eks:

2.5.8.11.
1.3.4.6.7.9.10.12.
2.5.8.11.


så kommer alle 3 linier ved "2."
Avatar billede PBChristensen Juniormester
25. september 2012 - 14:31 #4
Jeg indsatte en falsk kolonne, og fik dermed filtreret korrekt.

I kolonne AE skrev jeg følgende funktion:

=HVIS(H3="";"(1)(2)(3)(4)(5)(6)(7)(8)(9)(10)(11)(12)";HVIS(H3="Pause";"";HVIS(H3="Lige måned";"(2)(4)(6)(8)(10)(12)";HVIS(H3="Ulige måned";"(1)(3)(5)(7)(9)(11)";SAMMENKÆDNING("(";UDSKIFT(H3;"-";")(");")")))))

...hvilket gør, at både blanke celler, celler med tekst, og celler med tal bliver konverteret til enslydende værdier (specielt delen med UDSKIFT)

Så ser ovenstående kolonner sådan ud: (efter en mindre søg/erstat!)

(2)(5)(8)(11)
(1)(3)(4)(6)(7)(9)(10)(12)
(2)(5)(8)(11)

...og i VBA skrev jeg følgende kode:

If Months = "Januar" Then month = 1
If Months = "Februar" Then month = 2
'etc
.Range("A:ae").AutoFilter Field:=31, Criteria1:=Array("*(" & month & ")*"), Operator:=xlFilterValues
end with

Tusind tak for Jeres tid :)
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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