• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Syntaxvraagje in VBA

Status
Niet open voor verdere reacties.

reneemettrie

Terugkerende gebruiker
Lid geworden
1 aug 2006
Berichten
1.233
Ik heb een variabele ws (activesheet) en een variabele t (listobject)
Nu wil ik een slicercache invoegen.
Dit werkt:
Code:
Dim sc_country As SlicerCache, s_country As Slicer
Set sc_country = ActiveWorkbook.SlicerCaches.Add2(t, "Country")

Maar code wordt gebruikt in cursus, en daar prefereer ik benoemde argumenten bij de methods te gebruiken
Maar het volgende resulteert in de fout "Ongeldige procedure aanroep of ongeldig argument"
Code:
Dim sc_country As SlicerCache, s_country As Slicer
'Set sc_country = ActiveWorkbook.SlicerCaches.Add2(Source:=t, Sourcefield:="country")
Kan iemand met dit uitleggen?
 
Ik zie bij Slicercaches niet eens een methode Add2 staan (Excel 2010)

Jouw eerste code werkt hier dus ook niet.
 
Is jouw sourcefield country of Country :cool:
 
Ik zie bij Slicercaches niet eens een methode Add2 staan (Excel 2010)

Jouw eerste code werkt hier dus ook niet.

Ik heb hier geen 2010. Maar ik weet dat ze voor andere collecties (bvb charts) een ADD2 method hebben toegevoegd in 2016. Excel 2013 en 16 verstaan zowel add als add2 bij die charts. Maar natuurlijk verstaat 2010 "add2" niet. Geprobeerd in mijn code "Add2" door "Add" te vervangen en dat werkt. Maar Add staat in 2013 niet bij de methods. Het is in mijn geval voor mensen die met 2013 werken, dus geen probleem. Anders moet je in de code de versie nog eens gaan checken, of altijd ADD gebruiken, maar dat blijkt dus niet uit de object browser...

Leve de vooruitgang!
 
Ik ook ;)
met een kleine c werkt het niet in tegenstelling tot een hoofdletter C
 
Hoofdletter of kleine letter, het geeft alleen geen fout als je niet werkt met benoemde argumenten
 
'Sourcefield' kan ik in nergens in de objectenbibliotheek vinden. Op complete projecten zit niemand te wachten.
Begin eerst eens bij de basis. Al het gedoe met Set en weet ik veel wat is nergens voor nodig.

Code:
Sub VenA()
  With ActiveSheet
    If .ListObjects.Count > 0 Then Exit Sub
    .Columns(3).Insert
    .Cells(1).Offset(, 2).Resize(, 4) = Array("Full ID", "Result", "Name", "Country")
    .ListObjects.Add 1, .Cells(1).CurrentRegion, xlYes
    With .ListObjects(1).DataBodyRange
      .Columns(3) = "=[@[ID_Part1]]&[@[ID_Part2]]"
      .Columns(5) = "=VLOOKUP([@[Full ID]],ClientsWindEurope.xlsx!Table2[#Data],2,0)"
      .Columns(6) = "=VLOOKUP([@[Full ID]],ClientsWindEurope.xlsx!Table2[#Data],7,0)"
    End With
  End With
End Sub
 
Laatst bewerkt:
Je vroeg om de code, om die slicer in te voegen is de hele code nodig...

Jij bent duidelijk een beroepsprogrammeur, ik niet, ik geef opleidingen bureautica en en VBA Intro voor niet-programmeurs.
Ik probeer dus zo gestructureerd en zo begrijpbaar mogelijke code te tonen.

Vind die Set heel handig om de lijst van de methods in te voeren, anders zit je na een index al vast.

En ik noem voor de duidelijkheid de argumenten liefst bij naam, en mijn vraag was waarom dat hier een fout geeft (tenzij de help fout is natuurlijk)

Als je vanuit de Object browser naar de Help gaat kom je hier terecht:

https://docs.microsoft.com/nl-nl/office/vba/api/excel.slicercaches.add?f1url=https%3A%2F%2Fmsdn.microsoft.com%2Fquery%2Fdev11.query%3FappId%3DDev11IDEF1%26l%3Dnl-NL%26k%3Dk(vbaxl10.chm895078)%3Bk(TargetFrameworkMoniker-Office.Version%3Dv15)%26rd%3Dtrue

Hier wordt wel degelijk een argument "Sourcefield" vermeld.


De uitleg over die slicercaches en slicer vond ik hier het duidelijkst:

https://books.google.be/books?id=n4fiCgAAQBAJ&pg=PT153&lpg=PT153&dq=slicercaches+listobject&source=bl&ots=l4xjmMjG9V&sig=cVLLMyTsz8xtst8NU9F4VQyEhfk&hl=nl&sa=X&ved=2ahUKEwimi9GFhf_dAhXGmLQKHf-QB3wQ6AEwA3oECAEQAQ#v=onepage&q=slicercaches%20listobject&f=false
 
Laatst bewerkt:
Jij bent duidelijk een beroepsprogrammeur, ik niet, ik geef opleidingen bureautica en en VBA Intro voor niet-programmeurs.

Dan zou ik me toch verre houden van slicers in jouw geval.
 
Normaal behandel ik dit idd niet, maar voor de cursisten in kwestie (data analysten) zou het nuttig kunnen zijn. En mijn macro werkt :)
En ik leer graag zelf bij, vandaar mijn originele vraag
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan