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

Deel van een cel opmaken in draaitabel

Status
Niet open voor verdere reacties.

Tiene91

Gebruiker
Lid geworden
21 nov 2017
Berichten
51
Hallo,

Omdat mij het niet wil lukken om het aantal verkochte vierkante meters van een factuur weer te geven als apart onderdeel van de draaitabel, wil ik het op een andere manier proberen weer te geven.
Namelijk door de omschrijving van de factuur weer te geven waar eveneens het aantal vierkante meters weergegeven wordt.

Nu is mijn vraag of ik (want anders is het een enorm gezoek) met behulp van een voorwaardelijke opmaak of iets dergelijks het deel te arceren dat "m²" bevat zodat dit deel snel naar voren schiet tijdens het evalueren van een bepaalde periode.

Het lukt mij wel om een volledige cel te arceren als de cel "m²" bevat, maar dan blijft het nog zoeken voor ons dus dat moet ik dan weer niet hebben.

Ik hoop dat dit mogelijk is?

Bekijk bijlage 317337
 
als ik de draaitabel weer openrol, dan bekom ik een bestand, dat ik hier niet kan neerzetten, dus beschrijf ik even wat ik zou doen.
In je brongegevens van je draaitabel zou ik een hulpkolom bijmaken die zoekt of er in de kolom met de toelichtingen "m²" voorkomt.
bijvoorbeeld door :
Code:
=ISGETAL(VIND.ALLES("m²";[@['[$Tabel_Query_van_Unit_4_Multivers3'].'[GROOTBOEKMUTATIES.TOELICHTING']]]))
Dan zou je met deze hulpkolom in je draaitabel kunnen verder stoeien, dan neem je enkel die records bijvoorbeeld mee, die "WAAR" zijn en krijg je het gewenste.
 
Super, ik heb nu een onderverdeling van WAAR/ONWAAR.
Als ik nu nog een hulpkolom toevoeg met "aantal m²", dat ik in die kolom wil hebben staan --> als antwoord bovenstaande formule is "WAAR", vind alles terug vanaf m² tot aan de spatie, zo niet geef dan de volledige celwaarde.
Dus als er staat "vmax 48.18m²" in de toelichting moet ik de weergave in die kolom hebben "48.18".

Probeer al wel iets met vind.alles en deel formules, maar ik weet niet precies hoe ik terug kan rekenen met deze formules en of het kan of niet.
 
er staan wat rare dingen in die kolom.
Hoeveel m2 is "vmax33.4.95m².87873", ik denk 4.95 en soms staat het met een komma, dan eens met een punt.
Hoeveel rijen staan er in je brongegevens ?
 
Klopt, het wordt niet altijd eenduidig en consistent aangegeven, maar het eerste gedeelte is de productcode en kleur en dan inderdaad 4.95m².
In gevallen dat het met een komma is, is het volgens mij een strekkende meter dus die geeft ie dan denk ik toch als ONWAAR aan.

1 keer in de zoveel tijd wijzigen de brongegevens met een nieuwe update, dus in dat geval kan ik dan beter uit gaan van de hele kolom te gebruiken dan een range denk ik?
In dit geval al 26.000 rijen, maar kan dus iedere keer oplopen.
 
Het uithalen van die m2 uit je tekst is nogal complex omdat je niet echt consequent bent, zoals je zelf aangeeft.
Ik heb er eventjes snel een UDF-je van gemaakt.
Die moet je even in een module plakken en het geheel opslaan als xlsm (dus macros toestaan)
Daarna kan je in een nieuwe hulpkolom de formule intikken
Code:
=Opp(in hier de cel waarin die m2 staan)
Dit is de UDF
Code:
Function OPP(tekst As String) As Double 'vertaal tekststring in een oppervlakte
    OPP = 0
    x1 = Split(tekst, "m²") 'splits tekst in stukken op "m²"
    If UBound(x1) <> 0 Then '"m²" komt voor
        x2 = Split(x1(0), "vmax33", , vbTextCompare) 'splits ook nog een keer op die string
        If UBound(x2) Then x3 = x2(UBound(x2)) Else x3 = x1(0) 'neem laatste stukje van je knipsels
        x3 = Replace(Replace(Trim(x3), ".", ","), " ", ",") 'spaties en punten omzetten naar kommas
        x4 = Split(x3, ",") 'splitsen op kommas
        If UBound(x4) >= 1 Then OPP = CDbl(x4(UBound(x4) - 1) & "," & x4(UBound(x4))) 'plak laatste 2 knipsels aan elkaar met een komma en maak er een getal van
   End If
End Function

mogelijks vindt er anders iemand een leukere formule zonder UDF
 
Is wat lastig nu de bijlage uit de eerste post blijkbaar ongeldig is.
 
Die UDF werkt heel mooi, maar als ik nu zelf nog een deel in wil voegen zodat hij ook zoekt op "m" en "m1". En daarnaast als er 66m² staat pakt ie die ook niet.
Ik krijg het niet voor elkaar om die waarden ook te pakken te krijgen. --> als ik de code aanpas naar "m" ipv "m²" doet ie het wel.

Is dat mogelijk door een tweede module met een andere naam toe te voegen of lukt dat niet in 1 bestand (bv. Opp1 en Opp2) en dan als formule =Opp1+Opp2(toelichting)?
 
Bedoel je verwijderd ?

Code:
Sub M_snb()
  c00="m" & Chr(178)
  sn = Blad2.ListObjects(1).DataBodyRange.Columns(7).Resize(, 2)
  
  For j = 1 To UBound(sn)
     sn(j, 2) = ""
     If InStr(sn(j, 1), c00) Then sn(j, 2) = Replace(Filter(Split(Replace(sn(j, 1), c00, c00 & " ")), c00)(0), c00, "")
  Next
  
  Blad2.ListObjects(1).DataBodyRange.Columns(7).Resize(, 2) = sn
End Sub
 
Laatst bewerkt:
Top, nu heb ik nog meer hits in mijn zoekopdracht.
Nu missen er nog een aantal, omdat er ook voorkomt "M²". Nu is het mogelijk dat er hoofdletteronafhankelijk gezocht kan worden zoals ik bij de uitleg op je site zie, maar ik heb iets te weinig kennis van VBA hoe ik dit precies door moet voeren.
En is het daarnaast ook nog mogelijk om meerdere zoekopdrachten in 1 zo'n code te verwerken? Dat hij bijvoorbeeld ook alleen de hits erbij pakt met de "m of M", omdat blijkbaar ook wel eens het ²-teken mist.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan