• 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 naam terug zoeken in een ander bestand

  • Onderwerp starter Onderwerp starter HWV
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.
Toch nog niet helemaal

Als ik bv de naam "henk & de vries" en hij staat in beide lijsten dan wordt hij aangemerkt als neer, terwijl dit een ja had moeten zijn.
Zal dit dan liggen aan de & die er tussen staat ?

Ik hoop dat ook hier weer wat voor te maken is dat dit uitgeloten gaat worden.

Alvast weer bedankt

Henk
 
Op welk reactie is je vraag van toepassing?

Plaats het bestand eens waarin het fout gaat.
 
Honderd procent waterdicht zal het waarschijnlijk nooit worden, maar test deze UDF eens.
 

Bijlagen

Beste HSV,

Dank voor je bijdrage, ik ga deze bekijken en zal hier nog een aanvullende reactie op geven

Henk
 
Laatst bewerkt:
Beste,

In beide bestanden, krijg je het onmogelijk water dicht wat HSV eigenlijk al aangaf.
Maar is het ook mogelijk om i.p.v. ja/nee of waar/onwaar de waarde (de naam) waar hij aan match neer te zetten.
Zo kan ik er ook nog een extra controle op doen, of dit wel de jusit combinatie is van namen.

Tot zover ben ik al een heel eind gekomen :thumb:, maar dit zou de bonus zijn :d

Groet Henk
 
Bv.
Code:
Function Aanwezig(Naam) As String
Dim sv, sq, j As Long
Application.Volatile
sv = Split(Naam)
   For j = 0 To UBound(sv)
       Naam = sv(UBound(sv)) & " " & Trim(Replace(Naam, sv(UBound(sv)), ""))
       If InStr(1, Join(Application.Transpose(Sheets("adressen 2").ListObjects(1).ListColumns(4).DataBodyRange), ""), Split(Naam)(j), vbTextCompare) Then
          Aanwezig = Split(Naam)(j)
          Exit Function
        Else
          sv = Split(Naam)
       End If
   Next j
End Function

Ander variant:
Code:
Function Aanwezig(Naam) As String
Dim sv, j As Long
Application.Volatile
If InStr(1, Join(Application.Transpose(Sheets("adressen 2").ListObjects(1).ListColumns(4).DataBodyRange), ""), Naam, vbTextCompare) Then
   Aanwezig = Naam
   Exit Function
 Else
sv = Split(Naam)
   For j = 0 To UBound(sv)
       Naam = sv(UBound(sv)) & " " & Trim(Replace(Naam, sv(UBound(sv)), ""))
       If InStr(1, Join(Application.Transpose(Sheets("adressen 2").ListObjects(1).ListColumns(4).DataBodyRange), ""), Split(Naam)(j), vbTextCompare) Then
          Aanwezig = Split(Naam)(j)
          Exit Function
        Else
          sv = Split(Naam)
       End If
   Next j
 End If
End Function
 
Laatst bewerkt:
Geweldig HSV,

En dan zeker voor optie twee, die laat het duidelijk zien en is makelijk te vergelijken

Dank voor zover

Henk
 
De variant even snel en simpel in elkaar geflanst.
Het zal vast niet zo moeilijk zijn om nog wat varianten te bedenken, ik ben alleen benieuwd waar het nog mis gaat.
Als ik me verveel kan ik er eens naar kijken
 
Op uw verzoek

HSV,

Ik heb het bestand over mijn eigen bestand gelegd en kom (op uw verzoek) wel een paar uitdagingen tegen die meerdere malen voorkomen.
In kolom B heb ik even aangeven wat de uitkomst van je formule zou zijn op mijn orginele bestand, die ik hier niet kan plaatsen natuurlijk.
Daar zie je dat hij soms wel wat vreemde informatie toont.

Zie bijlage

Groet henk :thumb:
 

Bijlagen

De (lid)woorden en leestekens zoals (de, het,een, B.V., Bv, Co, &, enz.) heb ik eruit gefilterd.

Bekijk het maar eens.
Code:
Function Aanwezig(Naam) As String
Dim sv, j As Long
Application.Volatile
If InStr(1, Join(Application.Transpose(Sheets("adressen 2").ListObjects(1).ListColumns(4).DataBodyRange), ""), Naam, vbTextCompare) Then
   Aanwezig = Naam
   Exit Function
 Else
sv = Split(Naam)
   For j = 0 To UBound(sv)
       Naam = sv(UBound(sv)) & " " & Trim(Replace(Naam, sv(UBound(sv)), ""))
     If InStr(1, "deheteenBVB.V.CO&GMBH", Split(Naam)(j), 1) = 0 Then
         If InStr(1, Replace(Join(Application.Transpose(Sheets("adressen 2").ListObjects(1).ListColumns(4).DataBodyRange), "|") & "|", " ", "|"), "|" & Split(Naam)(j) & "|", vbTextCompare) Then
          Aanwezig = Split(Naam)(j)
          Exit Function
         End If
        Else
          sv = Split(Naam)
       End If
      'End If
   Next j
 End If
End Function
 
Dank weer voor je inzet HSV.
Ik ga het verder uitwerken, en zonodig dat ik me weer meld.
Voorals nu erg bedankt voor de ondersteuning

Henk
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan