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

Aanpassingen in draaitabel worden niet ververst!!

Status
Niet open voor verdere reacties.

DJ.Funny

Gebruiker
Lid geworden
17 jan 2006
Berichten
113
Beste allemaal,

Ik heb een draaitabel, en als ik nu handmatig wat in die tabel aanpas en daarna de draaitabel ververs handmatig, of met deze macro:

Draaitabellen verversen gebaseerd op query van ander worksheet

Code:
For Each Worksheet In Workbook.Worksheets

For Each pivotTable In Worksheet.PivotTables

pivotTable.RefreshTable

Next pivotTable

Next Worksheet

Dan wordt de handmatige tekst niet meer ververst maar gewoon zo weergegeven zoals deze handmatig veranderd was. Het verversen gaat dus niet helemaal goed!!



Dirk
 
Laatst bewerkt door een moderator:
Hmmmm als ik het nalees denk ik is dit wel duidelijk?? Ik zal het proberen duidelijker te maken :p

Draaitabel wordt opgemaakt vanuit een groten reeks gegevens (deze worden middels ODBC uit een database van een logistiek pakket gehaald)

De draaitabel maakt de gegevens overzichtelijk!!

Maar stel dat bij een artikel per stuk staat en iemand veranderd dit in per doos (in de draaitabel dus) Als deze persoon later op verversen klikt, dan blijft er per doos staan ipv dat per stuk weer wordt teruggezet.

Ik heb geprobeerd het werkblad te beveiligen, maar dan kan de draaitabel niet meer verversen!!


Groeten nogmaals Dirk
 
Geen expert op draaitabellen gebied, maar je sub aanpassen om je tabel te refreshen op een beveiligd blad:
Code:
Sub ververs()
Dim ws As Worksheet
Dim pt As PivotTable
For Each ws In ThisWorkbook.Worksheets
For Each pt In ws.PivotTables
ws.Unprotect Password:="wachtwoord"
pt.RefreshTable
pt.Update
ws.Protect Password:="wachtwoord", userinterfaceonly:=True
Next
Next
End Sub
 
Het verversen met een macro kan makkelijker
password optie zelf toevoegen

Code:
 ActiveWorkbook.RefreshAll

Niels
 
Hmmm wat aanpassingen gedaan zie code

Code:
Option Explicit
Sub Ververs()

Dim listObject As listObject
Dim pivotTable As pivotTable
Dim pivotCache As pivotCache
Dim conn As WorkbookConnection
Dim value As ODBCConnection
Dim sAdmi As String
Dim sODBCString
Dim Workbook As Workbook
Dim ws As Worksheet
Dim pt As pivotTable

Set Workbook = ThisWorkbook


'Administratie ophalen
    Sheets("Blad1").Activate
    Range("A1").Select
    sAdmi = Sheets("Blad1").Range("AM1")
    
    If sAdmi = "" Or sAdmi = "Selecteer" Then
        MsgBox "Geen administratie geselecteerd, het verversen wordt afgebroken.", vbExclamation + vbOKOnly, "Openstaande posten verversen"
        Sheets("Gegevens").Range("B1").Select
        Exit Sub
    'Else
    '    Application.ActiveWorkbook.Sheets("Invoice I").Range("A1").Value = "'000" & retVal
    End If

sODBCString = "ODBC;DSN=XXXXXXXXXXXXXXX;DB=" & sAdmi & ";SRVR=MVSERV;UID=XXXX;PWD=XXXX;"

'Querys verversen
For Each ws In Workbook.Worksheets

    For Each listObject In ws.ListObjects
    
        listObject.QueryTable.Connection = sODBCString
        listObject.Refresh
        'check
        'MsgBox ("Ververst " & listObject.Name)
    
    Next listObject

Next ws

'Draaitabellen verversen gebaseerd op query van ander worksheet

For Each ws In ThisWorkbook.Worksheets
For Each pt In ws.PivotTables
ws.Unprotect Password:="dirk"
pt.RefreshTable
pt.Update
ws.Protect Password:="dirk", userinterfaceonly:=True

Next ws

Sheets("Blad4").Activate
Range("A1").Activate

MsgBox "Overzicht is ververst"


End Sub


Maar krijg nu de begevoegde fout!!

helpmij.jpg

Groeten Dirk
 
Code:
Sub Ververs()

Dim listObject As listObject
Dim pivotTable As pivotTable
Dim pivotCache As pivotCache
Dim conn As WorkbookConnection
Dim value As ODBCConnection
Dim sAdmi As String
Dim sODBCString
Dim Workbook As Workbook
Dim ws As Worksheet
Dim pt As pivotTable

Set Workbook = ThisWorkbook


'Administratie ophalen
    Sheets("Blad1").Activate
    Range("A1").Select
    sAdmi = Sheets("Blad1").Range("AM1")
    
    If sAdmi = "" Or sAdmi = "Selecteer" Then
        MsgBox "Geen administratie geselecteerd, het verversen wordt afgebroken.", vbExclamation + vbOKOnly, "Openstaande posten verversen"
        Sheets("Gegevens").Range("B1").Select
        Exit Sub
    'Else
    '    Application.ActiveWorkbook.Sheets("Invoice I").Range("A1").Value = "'000" & retVal
    End If

sODBCString = "ODBC;DSN=XXXXXXXXXXXXXXX;DB=" & sAdmi & ";SRVR=MVSERV;UID=XXXX;PWD=XXXX;"

For Each ws In ThisWorkbook.Worksheets
For Each pt In ws.PivotTables
ws.Unprotect Password:="dirk"
pt.RefreshTable
pt.Update
ws.Protect Password:="dirk", userinterfaceonly:=True

Next
Next

Sheets("Blad4").Activate
Range("A1").Activate

MsgBox "Overzicht is ververst"


End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan