• 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.

brondata draaitabel vullen met VBA??

Status
Niet open voor verdere reacties.

erikfranssen

Gebruiker
Lid geworden
11 okt 2016
Berichten
39
Beste forum leden,

Via een macro laat ik bepalen wat de laatste rij, voor verschillende doeleinden. Nu wilde ik deze waarde gebruiken om in te vullen in "SourceData" van een draaitabel. zie onderstaand. Helaas levert dit steeds foutmeldingen op. Ik zie zelf niet meer wat er fout gaat. Kan iemand hier eens een blik op werpen? Alvast bedankt voor de tijd en reactie!

orginele code:
'ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
'"Memo bewerkt!R1C1:R5525C12", Version:=6).CreatePivotTable TableDestination _
':="Memo bewerkt!R10000C5", TableName:="Draaitabel1", DefaultVersion:=6

aangepaste code:
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Memo bewerkt!R1C1:R" & LaatsteRij & "C12", Version:=6).CreatePivotTable TableDestination _
:="Memo bewerkt!R10000C5", TableName:="Draaitabel1", DefaultVersion:=6
 
werkt dit?
Code:
gegevensbereik="Memo bewerkt!R1C1:R" & LaatsteRij & "C12"
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
gegevensbereik, Version:=6).CreatePivotTable TableDestination _
:="Memo bewerkt!R10000C5", TableName:="Draaitabel1", DefaultVersion:=6
 
en anders zo?

Code:
Sub T2()
Dim myrange As Range

LaatsteRij = 19
Set myrange = Sheets("Memo bewerkt").Range("A1:L" & LaatsteRij)


ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
myrange, Version:=6).CreatePivotTable TableDestination _
:="Memo bewerkt!R10000C5", TableName:="Draaitabel1", DefaultVersion:=6

End Sub
 
Beste Haije,

Bedankt voor je reactie, maar helaas krijg een foutmelding:

Ongeldige procedure-aanroep of ongeldig argument

gegevensbereik = "Memo bewerkt!R1C1:R" & LaatsteRij & "C12"
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
gegevensbereik, Version:=6).CreatePivotTable TableDestination _
:="Memo bewerkt!R10000C5", TableName:="Draaitabel1", DefaultVersion:=6
 
Beste Lam201,

Ook jij bedankt voor je reactie, maar ook hier weer een foutmelding

Door de toepassing of door object gedefinieerde fout

'Draaitabel

Dim myrange As Range

Set myrange = Sheets("Memo bewerkt").Range("A1:L" & LaatsteRij)

ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
myrange, Version:=6).CreatePivotTable TableDestination _
:="Memo bewerkt!R10000C5", TableName:="Draaitabel1", DefaultVersion:=6
 
krijg je de fout op deze oranje regel?
welke waarde heeft LaatsteRij?
 
Hallo Lam201,

inderdaad de foutmelding verschijnt op de oranje regel. De waarde van LaatsteRij is 5527.

De reden waarom ik de gegevensrange via VBA wil vullen is dat de basis c.q. bron steeds een wisselend aantal regels is. Dus deze maand is dit 5527 regels en volgende maand kan dit 1000 zijn of zelf meer.
 
Hebben ze daarvoor dan geen gedefinieerde namen of tabellen uitgevonden ?
Die passen zich vanzelf aan aan de situatie en hoe je niets te doen aan de kant van de draaitabel.
 
Hallo Cow18,

dat zou inderdaad ook kunnen. Ik zal eens kijken of mijn probleem daarmee wordt opgelost.
Bedankt voor het meedenken!
 
Hallo Cow18,

bedankt voor de verwijzing, maar als ik het goed begrijp, maakt dit voorbeeld gebruik van een vaste range. Ik denk niet dat voor mij gaat werken, immer mijn "bron" heeft steeds een wisselend aantal regels. Of ik moet een dusdanig grote range gebruiken, waardoor ik steeds een (flink) aantal blanco regels heb.

Ik ben nog bezig met jouw optie om gebruik te maken van een tabel, maar denk dat ik dan met hetzelfde zit als bovenstaande, de blanco regels.
 
mijn gedefinieerde naam is "MijnBrondata".

* die telt vanaf A1 tot A10.000 hoeveel cellen er gevuld zijn (er van uitgaande dat er altijd iets staat in de A-kolom) om de laatste regel te bepalen.
Kan A toch lege cellen bevatten, dan kan een andere formule.
* die is vast 3 kolommen breed.

Die gebruik je dan om je draaitabel aan te maken.

Later mag je stoeien zoveel je wil, via "MijnBrondata" gaat de draaitabel altijd met het juiste aantal rijen aan de slag.
Het aantal rijen (inclusief de koprij) heb ik even in F1 gezet.
 

Bijlagen

  • Erikfransen.xlsx
    Erikfransen.xlsx
    22 KB · Weergaven: 9
  • Schermafbeelding 2021-11-17 080100.png
    Schermafbeelding 2021-11-17 080100.png
    24,9 KB · Weergaven: 27
  • Schermafbeelding 2021-11-17 080156.png
    Schermafbeelding 2021-11-17 080156.png
    8 KB · Weergaven: 15
Hallo Cow18,

Super, deze functie was mij onbekend in Excel. Weer wat geleerd van de meester!

Ik ga er meteen mee aan de slag. Dit lijkt inderdaad de oplossing van mijn probleem!

Nogmaals bedankt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan