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

de eerste hoofdletter in een tekst vinden

Status
Niet open voor verdere reacties.
Alvast bedankt,

Mag ik een ander probleem voorleggen.
Er is 1 groot ledenbestand en daarnaast een aantal kleinere bestanden waarvan de regels ook in het grote bestand staan.
Alle eerste (A) kolommen hebben een ledennummer.
Hoe kan ik in het hoofdbestand een veld (met datum) vullen van de leden uit het 2e bestand?

Met vriendelijke groet,

Gerard
 
Via VBA macro zou de andere bestanden geopend kunnen worden om te zoeken op de betreffende nummers om zo de juiste datums te achterhalen.
Ik heb morgen weinig tot geen tijd maar vrijdag wel.

Met vriendelijke groet,


Roncancio
 
Laatst bewerkt:
Op blad 3 staat het resultaat van de aangepaste macro.

Met vriendelijke groet,


Roncancio
 

Bijlagen

Hartelijk dank Roncancio,

Da's mooi gelukt, maar ik zie toch nog dezefde namen met hetzelfde adres.
Er wordt kennerlijk maar 1 maal gezocht naar dezelfde naam/adres, wil je eens voor mij kijken?
Zie blad 4 waarin onderaan de originele lijst staat.
met vriendelijke groet,

Gerard
 

Bijlagen

De computer kijkt naar het adres en naar de volledige naam van de aanwezige personen.
Dus dan is het logisch dat de namen in de gele cellen opnieuw worden getoond.
Overigens zijn Jansen en Janssen op hetzelfde adres niet hetzelfde.:p

Met vriendelijke groet,


Roncancio
 
Hartelijk dank Roncancio voor je scripts, ik ben daar erg blij mee.
Kunt je mij misschien aangeven wat ik in het laaste script moet wijzigen om dubbele adressen ook gedeelte's van dezelfde namen mee te nemen
inde procedure's?
Dus van Janssen en Janssen-de Bruin moet er 1 vervallen.

Met vriendelijke groet,

Gerard
 
Het probleem is dat dubbele namen op verschillende manieren worden weergegeven.
Bijv:
-Janssen-de Bruin
-Janssen de Bruin

Maar er zijn ook mannen met dubbele namen.

Waar ik nu aan zit te denken is om dmv VBA tijdelijk een aparte kolom toe te voegen met 1e achternamen (Janssen in dit geval) en daar een filtering op maken.

Met vriendelijke groet,


Roncancio
 
Hartelijk dank voor je reactie.
Lijkt me een prima idee, zou je dit voor me willen maken?
Alvast bedankt,

Gerard
 
Volgens mij klopt het zo.

Code:
Sub Namen()
Dim lRij As Long
Dim lLRij As Long
Dim rB As Range
Dim iPos As Integer
Dim sVN As String
Dim iBG As Integer
Dim iLng As Integer
    
    Rows(1).Insert
    lLRij = Range("A" & Rows.Count).End(xlUp).Row
    
    With Range("B1:B" & lLRij)
        .Replace " VAN ", " van "
        .Replace " DE ", " de "
        .Replace " DEN ", " den "
        .Replace " DER ", " der "
    
    End With
    Range("C:E").Insert
    lRij = 2
    While lRij <= lLRij
        Set rB = Range("B" & lRij)
        iBG = InStr(1, rB, " ")
        For iLng = iBG To Len(Range("B" & lRij).Value)
            If Mid(rB, iLng, 1) Like "[A-Z]" Then
                Range("C" & lRij).Value = WorksheetFunction.Proper(Mid(rB, iLng, Len(rB)))
                If Mid(rB, 2, 1) <> "." Then
                    For iPos = 1 To iBG
                        sVN = sVN & Mid(rB, iPos, 1) & "."
                    Next
                    Range("D" & lRij).Value = Left(sVN, Len(sVN) - 1)
                    sVN = ""
                Else
                    Range("D" & lRij).Value = Left(rB, iBG)
                End If
                Range("E" & lRij).Value = Mid(rB, iBG + 1, iLng - iBG - 1)
                iLng = Len(rB)
            End If

        Next
        lRij = lRij + 1
        Application.StatusBar = "Rij " & lRij & " van " & lLRij
    Wend
    Range("H:H").Insert
    Range("G1:G" & lLRij).Copy Range("H1")
    
    With Range("G:G")
        .Replace "Man", "Dhr."
        .Replace "Vrouw", "Mevr."
    End With
    With Range("H:H")
        .Replace "Man", "heer"
        .Replace "Vrouw", "mevrouw"
        .Replace "Fam.", "familie"
    End With
    Range("C:C").Copy Range("J:J")
    For Each rB In Range("J2:J" & lLRij)
        If InStr(1, rB.Value, " ") > 0 Then
            rB.Value = Left(rB.Value, InStr(1, rB.Value, " ") - 1)
        End If
        If InStr(1, rB.Value, "-") > 0 Then
            rB.Value = Left(rB.Value, InStr(1, rB.Value, "-") - 1)
        End If
    Next
    
    Range("I1:J" & lRij).AdvancedFilter Action:=xlFilterInPlace, Unique:=True
    Application.StatusBar = False
    
    Dim rNaam As Range
    Dim rAdres As Range

    Set rNaam = Range("J2:J" & lLRij)
    Set rAdres = Range("I2:I" & lLRij)


    For Each rB In Range("I2:I" & lLRij).SpecialCells(xlCellTypeVisible)
        sNaam = rB.Offset(0, 1).Value
        sAdres = rB.Value
        If Evaluate("SumProduct(((" & rAdres.Address & ") = """ & rB.Value & _
        """) * " & "((" & rNaam.Address & ") = """ & rB.Offset(0, 1).Value & """) )") > 1 Then
            rB.Offset(0, -1).Value = "familie"
        End If
    Next
    
    Range("J:J").Clear
End Sub

Met vriendelijke groet,


Roncancio
 
Roncancio,

Dit is het helemaal, hardstikke bedankt, ben er erg blij mee.

Heb eerder een vraag neergelegd maar tot op heden geen reactie op gekregen, misschien heb jij een oplossing:

In een bestand (klanten) komen in 1 kolom een getal en in 4 kolommen teksten voor welke ik wil vergelijken met een getal in 1 kolom en een gelijkluidende tekst in een van 4 kolommenBekijk bijlage Vergelijken4.xlsx van een 2e bestand (status). Voor alle duidelijkheid die teksten kunnen dus in 4 kolommen voorkomen.

Als dit waar is moet een waarde uit de 2e bestand in het eerste gevuld worden.
Heb je hier in VBA een oplossing voor?
Voorbeeld hierbij gevoegd,

Met vriendelijke groet,

Gerard
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan