Meerdere errors in 1 code

Status
Niet open voor verdere reacties.

gelderke

Gebruiker
Lid geworden
19 jul 2016
Berichten
26
Kan iemand mij helpen?
Ik wil verschillende draaitabellen automatisch filteren op 1 debiteurnummer.
Soms bestaat de debiteurnummer in één van de draaitabellen niet.
Op dit moment wil ik dus het stukje code overslaan.
Ik heb dit nu gedaan door On Error GoTo.
Dit gaat goed als ik dit maar bij 1 draaitabel aangeef.
Wanneer ik de tweede toevoeg. Krijg ik alsnog foutmeldingen.
Ik heb hieronder een klein stukje van mijn code weergegeven.
Weet iemand waarom dit niet werkt? Of heeft er iemand een andere oplossing om dit te omzeilen??





PHP:
On Error GoTo ErrorHandler1

    ActiveSheet.PivotTables("Draaitabel7").PivotFields("Debiteurnummer2"). _
        CurrentPage = a
Exit Sub

ErrorHandler1:
        
    ActiveSheet.PivotTables("Draaitabel10").PivotFields("Debiteurnummer2"). _
        ClearAllFilters
        
On Error GoTo ErrorHandler2

    ActiveSheet.PivotTables("Draaitabel10").PivotFields("Debiteurnummer2"). _
        CurrentPage = a
Exit Sub

ErrorHandler2:
    ActiveSheet.PivotTables("Draaitabel2").PivotFields("Debiteurnummer2"). _
        ClearAllFilters
 
't is allemaal wat. Speciaal gemaakt voor de helderzienden hier? Halve code en geen bestand gaat het niet echt worden denk ik. En verder heb je nogal wat vragen open staan waar je niet op reageert.
 
Laatst bewerkt:
Ik vind het jammer dat er op zo'n manier gereageerd wordt.
Als ik het hele bestand op internet kon zetten had ik dat heus wel gedaan.
Maar we hebben ook te maken met privacy redenen.
Ik heb het zo goed mogelijk proberen uit te leggen. Als er nog vragen zijn of er iets onduidelijk is kan dat ook gewoon gevraagd worden.
In ieder geval hartelijk dank voor uw hulp....
 
Halve codes hebben we inderdaad niet veel aan omdat andere factoren in dezelfde sub mee kunnen spelen. Als je zegt foutmeldingen te krijgen vertel er dan ook bij welke dat zijn.
 
Ik ben eigenlijk opzoek naar een manier waarop je foutmeldingen kan 'omzeilen'. Het is logisch dat er een foutmelding wordt gegeven want de debiteur kan niet gevonden worden. daarom wil ik stukjes code kunnen overslaan wanneer er een foutmelding wordt gegeven. Dit werkt wel bij 1 fout 'omzeilen', maar niet als ik 2 stukken los van elkaar wil omzeilen als er een foutmelding wordt weergegeven. bij het 2e stukje geeft hij alsnog de foutmelding dat die debiteur niet gevonden kan worden.
 
Als je On Error Resume Next gebruikt kan je na iedere opdracht de Err.Number en/of Err.Description controleren en daarop reageren. Je kan dat weer opheffen met On Error Goto 0
 
Laatst bewerkt:
En verder heb je nogal wat vragen open staan waar je niet op reageert.

Ook hierop heb je niet gereageerd.
Jij vindt het misschien jammer hoe hier door belangeloze vrijwilligers wordt gereageerd (je bent echt niet verplicht hier je vragen te stellen hoor); het is goed je er rekenschap van te geven dat helpers het onaangenaam/ondankbaar/onbeleefd vinden als op gratis suggesties niet wordt gereageerd.
Als je niet tegen commentaar kunt, kun je je beter niet in het openbare domein van een forum begeven.

Als gegevens te gevoelig zijn om hier te plaatsen en een geanonimiseerd bestand maken teveel werk is kun je het beste een te betalen opdracht aan een dienstverlener verstrekken.
 
Laatst bewerkt:
Goede reactie Snb, ik doe zelf ook diverse vrijwilligerswerk en de reacties af en toe. Mensen snappen vaak niet dat je dat in je vrije tijd en onbetaald doet. Ik waardeer jullie werk in ieder geval wel heel erg.
 
Het is gelukt, bedankt voor de hulp Edmoor!

PHP:
    Sheets("Gegevens Klant").Select
    
    ActiveSheet.PivotTables("Draaitabel6").PivotFields("Debiteurnummer2"). _
        ClearAllFilters
        
On Error Resume Next
    ActiveSheet.PivotTables("Draaitabel6").PivotFields("Debiteurnummer2"). _
        CurrentPage = a
On Error GoTo 0

    ActiveSheet.PivotTables("Draaitabel7").PivotFields("Debiteurnummer2"). _
        ClearAllFilters
        
On Error Resume Next
    ActiveSheet.PivotTables("Draaitabel7").PivotFields("Debiteurnummer2"). _
        CurrentPage = a
On Error GoTo 0

        
    ActiveSheet.PivotTables("Draaitabel10").PivotFields("Debiteurnummer2"). _
        ClearAllFilters
        

On Error Resume Next
    ActiveSheet.PivotTables("Draaitabel10").PivotFields("Debiteurnummer2"). _
        CurrentPage = a
On Error GoTo 0


    ActiveSheet.PivotTables("Draaitabel2").PivotFields("Debiteurnummer2"). _
        ClearAllFilters
        
On Error Resume Next

    ActiveSheet.PivotTables("Draaitabel2").PivotFields("Debiteurnummer2"). _
        CurrentPage = a
On Error GoTo 0
 
In VBA zal het er waarschijnlijk zo uitzien

Code:
Sub VenA()
  With Sheets("Gegevens Klant")
    For Each pt In .PivotTables
      On Error Resume Next
      If pt.Name = "Draaitabel2" Or pt.Name = "Draaitabel6" Or pt.Name = "Draaitabel7" Or pt.Name = "Draaitabel10" Then
        With pt.PivotFields("Debiteurnummer2")
          .ClearAllFilters
          .CurrentPage = a
        End With
      End If
    Next pt
  End With
End Sub
 
waarom niet ?

Code:
Sub VenA()
  for each pt in Sheets("Gegevens Klant").PivotTables
 

  next
End Sub
 
Omdat er mogelijk nog wat moet gebeuren in 'Sheets("Gegevens Klant")' (select, activate, nog een on error of weet ik veel wat):d

Eigenlijk ben ik wel benieuwd naar wat er in de variabele a staat. Maar dat zullen we wel nooit te weten komen.
 
If debugging is the process of removing software bugs, then programming must be the process of putting them in. (Edsger Dijkstra)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan