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

verwijzing VBA aanpassen naar ander werkblad

Status
Niet open voor verdere reacties.

kraalie

Gebruiker
Lid geworden
27 okt 2021
Berichten
9
Goedemiddag,

Ik ben bezig met een VBA die ik op internet heb gevonden.
De VBA werkt wel maar niet naar mijn wens
Ik moet de verwijzing aanpassen vanuit een ander werkblad om het perfect te maken.
Op dit moment wordt er naar "H6" verwezen binnen hetzelfde werkblad maar er moet naar "B3" op werkblad "Dashboard" komen.

Ik heb gezien dat er al een gelijkwaardige topic is aangemaakt over dit onderwerp maar hoe ik het ook probeer ik kom er zelf niet uit.

De VBA string die ik gebruikt is als volgt:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)'Update by Extendoffice 20180702
    Dim xPTable As PivotTable
    Dim xPFile As PivotField
    Dim xStr As String
    On Error Resume Next
    If Intersect(Target, [B]Range("H6"))[/B] Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    Set xPTable = Worksheets("pivot_clients").PivotTables("Draaitabel13")
    Set xPFile = xPTable.PivotFields("Client debtor")
    xStr = Target.Text
    xPFile.ClearAllFilters
    xPFile.CurrentPage = xStr
    Application.ScreenUpdating = True
End Sub

Gr.

Kraalie
 
een voorbeeldbestanje kan nog altijd veel duidelijkheid brengen
 
Intersect kijkt met Target alleen op het huidige werkblad.
Welke vergelijking wil je doen?
 
Ik heb nu een extract van mijn eigen bestand gedaan en de verwijzing ook goed gezet. De VBA werkt dus in het voorbeeld bestand.
Nu nog de verwijzing van hetzelfde werkblad "B1" vervangen met een ander werkblad namelijk; "Dashboard" Cel "B3" vervangen
 

Bijlagen

Je verteld niet wat je precies wilt bereiken.
Intersect is bedoeld om te kijken of de opgegeven cel, Target in dit geval, in een bepaalde range valt.
Dat heeft dus niks met een ander werkblad te maken.
 
Ik heb de VBA zoals eerder gezegd gekopieerd van internet zonder verdere bewerking. (mijn kennis met VBA is nagenoeg nihil)
Ik heb alleen de parameters aangepast naar mijn bestand.
De VBA werkt wel alleen niet naar mijn wensen.
De verwijzing moet niet binnen hetzelfde werkblad plaats vinden maar naar een ander werkblad in dezelfde werkmap.
Het feit dat je Target en Intersect ziet, is omdat dat er al zo in stond.
Dit mag helemaal aangepast worden als het resultaat maar het volgende is.

Ik schrijf het nog een keer uit maar dan op een andere manier uit.

Ik wil een debtor nummer invoeren op werkblad "Dashboard" "B3". Vervolgens moet de filter (debtor nummer) in de draaitabel worden aangepast naar de waarde uit "Dasbhoard" "B3".
Vervolgens laat de draaitabel alleen de bestemmingen zien van de debtor die ik heb ingevoerd.
Dit schijnt de enige manier te zijn om filters in draaitabellen te laten verwijzen naar andere cel(len).

Ik hoop dat het zo meer is verduidelijkt.:D

Gr.

Kraalie
 
In werkbladmodule van Dashboard.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Address(0, 0) = "B3" Then
   With Sheets("pivot_clients").PivotTables("Draaitabel3").PivotFields("Client debtor")
     .ClearAllFilters
     .CurrentPage = Target.Value
  End With
 End If
End Sub
En maak van cel B3 een validatielijst om fouten in de code te voorkomen.
 
Hi HSV,

Top thanks! Dit werkt!
Ik heb validatielijst gemaakt in B3 en een foutmelding opgesteld.

Bedankt voor je hulp!

Gr.

Kraalie
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan