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

Gedeeltelijk dubbele waarden cellen filteren

@peter59
De UDF wordt gebruikt in voorwaardelijke opmaak.

@snb
Er is toch iets mis met je functie, dubbele waarden worden niet goed gesignaleerd.
 
Het spijt me.
Macro's zijn ingeschakeld, nergens in de module of waar dan ook staat "option explicit", etc., etc.
Af en toe kleurt de tekst rood en is dan meteen weer weg en dan krijg ik het geheel niet meer op een fatsoenlijke afgesloten.
Lang leve VBA maar ik heb er helaas geen vertrouwen in.
Waarom niet? Ik heb er de ballen verstand van.
Voor mij hoort het hierbij dus op, helaas.
 

Bijlagen

  • Kopie van __CF_&_UDF.xlsb
    22,9 KB · Weergaven: 3
weinig spannend
 

Bijlagen

  • weinig_spannend.PNG
    weinig_spannend.PNG
    22,1 KB · Weergaven: 7
Voor mij wel want het werkt bij mij gewoonweg niet.
Ik vind het wel goed zo. VBA is voor mij onbekend dus onbemind.
 
De dubbele worden bij mij ongeveer twee seconden rood, daarna blijft alleen A2 rood. Toch raar.
 
@AHulpje
Ik had even met de ogen geknipperd en alles was weer in de "originele" toestand.
Maar bij Snb is het niet spannend. Zie de bijlage #24.
Heel vreemd!!!
 
Zoek de verschillen.
 

Bijlagen

  • Kopie van __CF_&_UDF.xlsb
    25 KB · Weergaven: 4
Voor de fijnproevers:

CSS:
Function F_snb(c00, c01)
   sn = Split(Replace(c00, "-", ""))
   For j = 0 To UBound(sn)
      If Val(sn(j)) > 0 Then Exit For
   Next
 
   F_snb = UBound(Filter(Split(Replace(Join(Application.Transpose(c01)), "-", "")), Val(sn(j)))) > 0
End Function
 
Als een hulpkolom met het serienummer erin acceptabel is, hierbij ook nog een formule-optie voor Excel 2016 (zie bijlage).

Voor Excel 365 kan het in één formule:
Code:
=LET(
c;SUBSTITUEREN(C2:C13;"-";"");
d;TEKST.COMBINEREN("";1;c);
x;XML.FILTEREN("<t><s>"&SUBSTITUEREN(c;" ";"</s><s>")&"</s></t>";"//s[number()=.]");
y;BYROW(x;LAMBDA(x;(LENGTE(d)-LENGTE(SUBSTITUEREN(d;x;"")))/LENGTE(x)));
ALS(y>1;"dubbel";""))
 

Bijlagen

  • TEST SERIENUMMERS (AC2).xlsx
    10,4 KB · Weergaven: 2
Laatst bewerkt:
@snb
Dat rare gedrag van jouw spitsvondige oplossing liet mij toch niet los. Deze fijnproever constateerde met behulp van een Debug.Print c00 dat jouw functie in een oneindige loop terecht komt. Na verloop van tijd crasht Excel zelfs.
Microsoft Office Professional Plus 2021.
 
Leuk/attent dat je dit uitzoekt.
Dan heeft jouw, blijkbaar instabiele Excel-versie een gebeurtenisprocedure die afvuurt wanneer de opmaak in een cel veranderd wordt.
In de stabiele versie van Excel (2010) heeft een werkblad alleen een workbook_Change event, dat louter op de inhoud van het werkblad slaat.
In jouw versie kun je het wellicht oplossen met
Application.enableevents =False aan het begin van de funktie en Application.enableevents =true aan het einde.
 
Nog even getest in Microsoft Office Professional Plus 2013, maar ook daar triggert een opmaakwijziging via voorwaardelijke opmaak een event. Met EnableFormatConditionsCalculation = False van het betreffende werkblad wordt alleen de gewijzigde waarde opgemaakt. Maar 12345 wordt wel gezien als een dubbele van 123456, een eigenschap van functie FILTER.
 
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan