PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerExcelExcelVal vid pivottabellVal vid pivottabell
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2021-11-18 06:27
 

 Om man i kod vill göra ett val i en pivottabell ser koden ut så här:

Jag vill dock kunna i programet kunna räkna ut vilka items jag vill välja och försökte då med koden:

Detta gick inte utan gav följande fel:

Jag undrar nu om det finns något sätt som gör det möjligt att under körning av programmet räkna ut vilka items jag vill välja.

Nytt inlägg
 2021-11-18 08:28
 
 Ändrad av Christian  på 2021-11-18 08:46:28

Hej Nordstjärna

Antar att det är ett filter du vill använda för detta?

I pivottabellfilter så måste alltid ett filter vara synligt, annars så får du körfel. Detta gör det svårt att kunna släcka alla andra item i filtret, jag valde att lösa detta med att först sortera din lista, därefter göra sista föremålet i ditt index synligt, för att på slutet, släcka det igen. 

Att du fick körfel tidigare har dock inte med ovan att göra, utan troligtvis för att du försökte hämta Item med en integer. Detta innebär att du försöker hämta med index och inte med namn. Har du inte 43 eller fler items i ditt filter så finns inte index 43. Vill du jämföra med itemets namn så måste du först typkonvertera veckonummer till en sträng.

a = cstr(43)

Nedan kod filtrerar enligt ditt önskemål om jag förstått dig korrekt, läs kommentarerna i koden och åtgärda dem.

mvh

Christian

Sub test()

 

    Dim PF As PivotField

    'Byt ut allt inom citationstecken så att det stämmer med din data

    Set PF = Sheets("blad2").PivotTables("Pivottabell1").PivotFields("1")

    Dim PI As PivotItem

    

    Dim a As String, b As String

    'byt ut hund6 och 1 så att det stämmer med det du har,

    'Använd varianten för variabeln b

    a = CStr("hund6")

    b = CStr(1)    

    PF.AutoSort 1, PF.Name

    PF.PivotItems(PF.PivotItems.Count).Visible = True    

    For Each PI In PF.PivotItems

        If PI.Name = a Or PI.Name = b Then

            PI.Visible = True

        Else

           PI.Visible = False

        End If

    Next PI

End Sub

 

 

Nytt inlägg
 2021-11-18 08:40
 

 Sedan undrar jag om du känner till slicers/utsnitt. Detta låter dig filtrera på ett lite snyggare sätt än med filter i pivottabellen. FInns att lägga till på fliken infoga, om du har ställt dig i valfri cell i pivottabellen först.

mvh

Christian

Nytt inlägg
 2021-11-18 11:11
 

 Jodå jag känner till utsnitt (Excels doldis) men det fungerade fint med typkonverteringen. TACK!

Nytt inlägg
 2021-11-19 09:18
 
 Ändrad av Nordstjärna  på 2021-12-15 15:39:17

 j

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerExcelExcelVal vid pivottabellVal vid pivottabell

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter