/ Forside/ Teknologi / Udvikling / VB/Basic / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Autofilter i Excel 2003
Fra : Flemming_Clausen
Vist : 1077 gange
200 point
Dato : 06-10-12 20:16

Hjælp

Jeg skal have et autofilter til "pakke" nogle sider sammen. Men jeg er ikke så stærk i løkker.

Problemet er at jeg ved ikke hvor mange S-ark der kommer dog max 20. Det er kun det ark S der er fra start, derefter bliver ark S2 kopieret.

Denne virker indtil jeg kommer ned FOR kommandoen

ActiveWindow.ScrollWorkbookTabs Position:=xlLast
Sheets("Forside").Select
Selection.AutoFilter Field:=1, Criteria1:="<>"
Sheets("S").Select
Selection.AutoFilter Field:=1, Criteria1:="<>"

For Z = 1 To Sheets.Count
Q = Sheets(Z).Name
If Mid(Q, 1, 1) = "S" And IsNumeric(Mid(Q, 2)) Then
Sheets(Z).Selection.AutoFilter Field:=1, Criteria1:="<>"
End If
Next


 
 
Accepteret svar
Fra : ajuul

Modtaget 200 point
Dato : 07-10-12 08:49

Hej Flemming.
Du mangler at lave en Select før du sætter filtreret.
Ellers vil du blot udføre filtreringen på det ark du stod på, da du datter makroen i gang:
Kode
If Mid(Q, 1, 1) = "S" And IsNumeric(Mid(Q, 2)) Then 
Sheets(Z).Select
Sheets(Z).Selection.AutoFilter Field:=1, Criteria1:="<>" 
End If

I øvrigt kan du bruge Q i stedet for Z, når du bruger funktionen Sheets(), men det er underordnet.
Sidst men ikke mindst kan du spare et gennemløb i din FOR-sætning ved at skrive
Kode
For Z=2 to Sheets.Count

Det kræver dog at arkene ligger i rækkefølgen Forside, S, S1, S2 ...
Årsagen er, at arket »Forside« har nummer nul, og ark »S« har nummer ét, og den har du allerede sat inden For-løkken.

/ajuul



Godkendelse af svar
Fra : Flemming_Clausen


Dato : 07-10-12 20:50

Tak for svaret ajuul.

Det er rart med en ledetråd, Sheets(Z) skulle heller ikke være i linien med autofilter.

For Z = 1 To Sheets.Count
Q = Sheets(Z).Name
If Mid(Q, 1, 1) = "S" And IsNumeric(Mid(Q, 2)) Then
Sheets(Z).Select
Selection.AutoFilter Field:=1, Criteria1:="<>"
End If
Next

NU virker det

Kommentar
Fra : ajuul


Dato : 08-10-12 08:17

Hej Flemming.
Nej, det er korrekt - Sheets(Z) og Selection går ikke her.

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177564
Tips : 31968
Nyheder : 719565
Indlæg : 6408988
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste