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

Lijngrafiek onderbreken bij #NB-waarde ipv 0 weergeven

Status
Niet open voor verdere reacties.

HappyFaceNL

Nieuwe gebruiker
Lid geworden
18 nov 2015
Berichten
4
In een grafiek wil ik het verschil tonen tussen een meetwaarde nul en het ontbreken van een meetwaarde.

Wanneer ik data uit een draaitabel ophaal met de formule:
=ALS.FOUT(DRAAITABEL.OPHALEN("aantal";Sheet2!$B$15;"week";B5;"OK/NOK";"OK");"")

creëer ik weliswaar een lege cel, deze wordt echter als nul waarde in de lijngrafiek weergegeven.

Wanneer ik echter de formule delete, wordt de grafiek onderbroken (het effect wat ik wil zien).
Ik ben benieuwd op iemand hiervoor een oplossing weet.

Alvast bedankt,

Dirk
 

Bijlagen

Als je je formule aanpast naar:

Code:
=ALS.FOUT(DRAAITABEL.OPHALEN("aantal";Sheet2!$B$15;"week";B5;"OK/NOK";"OK");[B]NB()[/B])

Gaat je grafiek niet naar 0 maar trekt een lijn tussen week 44 en 46 zonder datapunt in week 45. Niet helemaal waar je naar op zoek was maar wellicht beter dan een grafiek die naar 0 gaat.
 
Hoi Hans,

super bedankt, oplossing is zelfs mooier dan die ik in gedachten had.

Top !!!
 
Sorry dat ik "inbreek" maar mijn vraag is identiek aan die van HappyFaceNL met dat verschil dat ik de grafiek onderbroken of afgebroken wil zien.
Achterliggende gedachte: Variaties in waarde van de afgelopen tijd (tot vandaag) als vast lijn opmaak en de prognoses voor de toekomst (vanaf morgen) als gestippelde lijn. Dit is dus een voortschrijdende basis. VBA heeft in deze niet mijn 1e keuze.
 
Ik denk dat ik dicht bij een mogelijke oplossing ben, maar mis nog 1 stap in de benodigde VBA code = een cellenbereik selecteren waarvan de rij/kolom gegevens in cellen van het werkblad staan. Zie bijlage voor voorbeeld en meer details
 

Bijlagen

Kijk hier 'ns naar:

Code:
Sub Bereik()
 Range("E" & Range("E6").Value & ":E" & Range("E7").Value).Select
End Sub

Greetz/Excelbat
 
Tjakka, da was um :thumb:
Bedankt Excelbat. Morgen zal ik een bijgewerkt model plaatsen zodat andere geïnteresseerden een totaaloplossing hebben.
 
Kijk hier 'ns naar:

Code:
Sub Bereik()
 Range("E" & Range("E6").Value & ":E" & Range("E7").Value).Select
End Sub

Greetz/Excelbat

Voor een verdere stap in de optimalisatie van de code zoek ik nog een aanpassing van de geqoute code waarbij de & Range("E6") met 1 rij hoger geselecteerd moet worden, dus iets als & Range("E6")-1. Maar ik kom niet achter de juiste syntax (?)
 
Code:
Sub Bereik()
 Range("E" & (Range("E6").Value - 1) & ":E" & Range("E7").Value).Select
End Sub

Greetz/Excelbat
 
Ik ben tevreden, met dank aan Excelbat. Zie map2.xlsm

Varianten hierop wil ik nog wel eens verder onderzoeken.
Optie 1. Geen gebruik maken van de hulpkolommen G en H en met eenzelfde methodiek als het kopiëren/plakken speciaal de cellen in kolommen E en F die geen getallen weergeven leeg te maken. Bij het runnen van de macro moeten dan wel de formules in alle cellen gekopieerd worden. Haalbaar ?

Optie 2. De gegevensbereiken van de reeksen variabel maken en alleen de cellen toepassen met getallen. Haalbaar ?

PS. Aangezien ik geen eigenaar ben van dit topic kan ik hem niet als "Opgelost" markeren.
 

Bijlagen

Na wat stoeiwerk hierbij de optie met:
A Reekslijnen volgen dynamisch de datagegevens.
B Macro start bij openen van het werkblad.
C Macro starten bij het wijzigen van X-as (hier wijzigingen van cel B8 - met formule) is me nog niet gelukt, ook niet na het afstruinen van allerlei tips.. Wie kan helpen ?
 

Bijlagen

In antwoord op C. Plak deze code in je werkblad:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B9:B25")) Is Nothing Then
        MsgBox "Hello"
End If
End Sub

Bekijk bijlage ExcelbatMapA1.xlsm

En vervang dan Msgbox "Hello" door de naam van de macro die uitgevoerd moet worden.

Greetz/Excelbat
 
Laatst bewerkt:
Hi Excelbat, je bent er weer snel bij. Met dank.
Jouw code ben ik ook tegengekomen maar geeft een probleem.
Als je de Msgbox vervangt door call macro_R komt deze in een loop en stopt niet.
Of je code ook werkt op een cel met een formule (B8) heb ik daarom ook nog niet kunnen testen.
 
O.K., probeer dit:

Begin je Macro_R met:
(Code in #13 iets aangepast)

Code:
Application.EnableEvents = False

en beëindig deze macro met:

Code:
Application.EnableEvents = True

Greetz/Excelbat
 
Laatst bewerkt:
Zo werkt hij m.i. perfect. Dank je wel !
Voor belangstellenden het aangepaste bestand toegevoegd.

Nu naar mijn volgende optie
Een diagram (grafiek) met macrogestuurde data. :d
 

Bijlagen

@Excelbat,
Testen geven een onverwachte reactie. De actie (Msgbox of macro) starten bij een wijziging van een willekeurige cel van het hele tabblad en niet zoals verwacht alleen agv de targetcellen (bereik).
 
OK, de regel < Set Target = Range("B9:B25") > verwijderd ?
Helaas, de MSgBox verschijnt niet in dat geval.
 
Effe excel helemaal afsluiten, en dan opnieuw opstarten.

Greetz/Excelbat
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan