- Katılım
- 27 Ocak 2010
- Mesajlar
- 230
- Excel Vers. ve Dili
- Türkçe Microsoft Office Professional Plus 2019
- Altın Üyelik Bitiş Tarihi
- 05-10-2020
	DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
	Altın Üyelik Hakkında Bilgi
=LEFT(C1;1) & REPT("*";LEN(MID(C1;1;SEARCH(" ";C1;1)-1))-2) & MID(C1;SEARCH(" ";C1;1)-1;1) & " " & IF(ISERR(SEARCH(" ";MID(C1;SEARCH(" ";C1;1)+1;LEN(C1))));LEFT(MID(C1;SEARCH(" ";C1;1)+1;LEN(C1));1) & REPT("*";LEN(MID(C1;SEARCH(" ";C1;1)+1;LEN(C1)))-2) & RIGHT(C1;1);LEFT(MID(C1;SEARCH(" ";C1;SEARCH(" ";C1;1)+1)+1;LEN(C1));1) & REPT("*";LEN(MID(C1;SEARCH(" ";C1;SEARCH(" ";C1;1)+1);LEN(C1)))-2) & RIGHT(C1;1))'=SOLDAN(C1;1) & YİNELE("*";UZUNLUK(PARÇAAL(C1;1;MBUL(" ";C1;1)-1))-2) & PARÇAAL(C1;MBUL(" ";C1;1)-1;1) & " " & EĞER(EHATA(MBUL(" ";PARÇAAL(C1;MBUL(" ";C1;1)+1;UZUNLUK(C1))));SOLDAN(PARÇAAL(C1;MBUL(" ";C1;1)+1;UZUNLUK(C1));1) & YİNELE("*";UZUNLUK(PARÇAAL(C1;MBUL(" ";C1;1)+1;UZUNLUK(C1)))-2) & SAĞDAN(C1;1);SOLDAN(PARÇAAL(C1;MBUL(" ";C1;MBUL(" ";C1;1)+1)+1;UZUNLUK(C1));1) & YİNELE("*";UZUNLUK(PARÇAAL(C1;MBUL(" ";C1;MBUL(" ";C1;1)+1);UZUNLUK(C1)))-2) & SAĞDAN(C1;1))Function YILDIZYAP(X As Range) As String
    If X.Cells.Count = 1 Then
        Dim isimler() As String
        Dim i As Byte, j As Byte, k As Byte
        
        isimler = Split(X.value)
        For i = LBound(isimler) To UBound(isimler)
            j = Len(isimler(i)) - 1
            isimler(i) = Left(isimler(i), 1)
            For k = 1 To j
                isimler(i) = isimler(i) & "*"
            Next k
            YILDIZYAP = YILDIZYAP & " " & isimler(i)
        Next i
       Else
        MsgBox "Sadece bir hücre seçiniz."
    End If
    
End FunctionFormül işlerinden pek anlamam.
D1 e yapıştırıp aşağı çekin.
İki isimli şahıslarda 2. ismi dikkate almaz.
Türkçe office kullanmıyorum. Ancak formül çeviri programım aşağıdaki şekilde çevirdi.Kod:=LEFT(C1;1) & REPT("*";LEN(MID(C1;1;SEARCH(" ";C1;1)-1))-2) & MID(C1;SEARCH(" ";C1;1)-1;1) & " " & IF(ISERR(SEARCH(" ";MID(C1;SEARCH(" ";C1;1)+1;LEN(C1))));LEFT(MID(C1;SEARCH(" ";C1;1)+1;LEN(C1));1) & REPT("*";LEN(MID(C1;SEARCH(" ";C1;1)+1;LEN(C1)))-2) & RIGHT(C1;1);LEFT(MID(C1;SEARCH(" ";C1;SEARCH(" ";C1;1)+1)+1;LEN(C1));1) & REPT("*";LEN(MID(C1;SEARCH(" ";C1;SEARCH(" ";C1;1)+1);LEN(C1)))-2) & RIGHT(C1;1))
Büyük ihtimal ile uyacaktır. Belki ; leri , yapmak gerekebilir.
Kod:'=SOLDAN(C1;1) & YİNELE("*";UZUNLUK(PARÇAAL(C1;1;MBUL(" ";C1;1)-1))-2) & PARÇAAL(C1;MBUL(" ";C1;1)-1;1) & " " & EĞER(EHATA(MBUL(" ";PARÇAAL(C1;MBUL(" ";C1;1)+1;UZUNLUK(C1))));SOLDAN(PARÇAAL(C1;MBUL(" ";C1;1)+1;UZUNLUK(C1));1) & YİNELE("*";UZUNLUK(PARÇAAL(C1;MBUL(" ";C1;1)+1;UZUNLUK(C1)))-2) & SAĞDAN(C1;1);SOLDAN(PARÇAAL(C1;MBUL(" ";C1;MBUL(" ";C1;1)+1)+1;UZUNLUK(C1));1) & YİNELE("*";UZUNLUK(PARÇAAL(C1;MBUL(" ";C1;MBUL(" ";C1;1)+1);UZUNLUK(C1)))-2) & SAĞDAN(C1;1))
Sub Yıldız_Yap()
    Dim i   As Long, _
        j   As Integer
        
    Application.ScreenUpdating = False
    
    For i = 1 To Cells(Rows.Count, "A").End(3).Row
    
        Cells(i, "B") = Cells(i, "A")
        
        For j = 2 To Len(Cells(i, "A")) - 1
            If Mid(Cells(i, "B"), j, 1) = " " Then j = j + 2
            If Not j = Len(Cells(i, "A")) Then
                If Mid(Cells(i, "B"), j + 1, 1) <> " " And Mid(Cells(i, "B"), j, 1) <> " " Then Range("B" & i).Characters(j, 1).Insert "*"
            End If
        Next j
                
    Next i
       
    Application.ScreenUpdating = True
    
End SubÖzel geliştirdiğim bir program olduğu için ücretsiz değil ve kodları açık değil.Teşekkür ederim.
Formül çeviri programı dediğiniz hangisidir. İncelemek isterim.

Alternatif;@Asri Bey makro ile nasıl yapabiliriz.
Function YILDIZLA(veristr As Range) As String
    veri = Trim(veristr.Value)
    For j = 2 To Len(veri) - 1
        If Mid(veri, j - 1, 1) <> " " And Mid(veri, j + 1, 1) <> " " And Mid(veri, j, 1) <> " " Then
           Mid(veri, j, 1) = "*"
        End If
    Next j
    YILDIZLA = veri
End Function
Sub yildizla_dongu()
   For i = 1 To Cells(Rows.Count, "A").End(3).Row
       veri = Trim(Cells(i, "A").Value)
       For j = 2 To Len(veri) - 1
           If Mid(veri, j - 1, 1) <> " " And Mid(veri, j + 1, 1) <> " " And Mid(veri, j, 1) <> " " Then
              Mid(veri, j, 1) = "*"
           End If
       Next j
       Cells(i, "B").Value = veri
    Next i
End Sub=KODLA(Hücre_Adresi;Karakter;Kriter)Option Explicit
Function KODLA(Veri As Variant, Optional Karakter As String = "*", Optional Kriter As Byte = 0)
    Dim Kelime As Variant, X As Byte, Metin As String, Say As Byte
    
    Application.Volatile True
    
    If IsNumeric(Veri) Then
        KODLA = Veri
        Exit Function
    End If
    
    If Kriter = 0 Then
        With CreateObject("VBScript.RegExp")
            .Pattern = "[a-zçıiğöşü]"
            .Global = True
            KODLA = .Replace(Application.Proper(WorksheetFunction.Trim(Veri)), Karakter)
        End With
    ElseIf Kriter = 1 Then
        ReDim Dizi(1 To 1)
        Kelime = Split(WorksheetFunction.Trim(Veri), " ")
        For X = 0 To UBound(Kelime)
            Say = Say + 1
            ReDim Preserve Dizi(1 To Say)
            If Len(Kelime(X)) > 2 Then
                Metin = Mid(Kelime(X), 2, Len(Kelime(X)) - 2)
                Metin = String(Len(Metin), Karakter)
                Dizi(Say) = Left(Kelime(X), 1) & Metin & Right(Kelime(X), 1)
            Else
                Dizi(Say) = Kelime(X)
            End If
        Next
        KODLA = Join(Dizi, " ")
    Else
        KODLA = "Uygun parametre giriniz!"
    End If
End FunctionFunction YILDIZLA(veristr As Range, Optional kriter As Byte = 0) As String
    veri = Trim(veristr.Value)
    For j = 2 To Len(veri) - 1
        If kriter = 0 Then
            If Mid(veri, j - 1, 1) <> " " And Mid(veri, j, 1) <> " " Then
               Mid(veri, j, 1) = "*"
            End If
        Else
            If Mid(veri, j - 1, 1) <> " " And Mid(veri, j + 1, 1) <> " " And Mid(veri, j, 1) <> " " Then
               Mid(veri, j, 1) = "*"
            End If
        End If
    Next j
    If kriter = 0 Then Mid(veri, j, 1) = "*"
    YILDIZLA = veri
End Function'   Haluk - 19/05/2020
'   sa4truss@gmail.com
Sub Test()
    MsgBox encryptString("Ali Rıza Binboğa", True)
    MsgBox encryptString("Ali Rıza Binboğa", False)
    
    MsgBox encryptString("Korkut Ekin", True)
    MsgBox encryptString("Korkut Ekin", False)
    
    MsgBox encryptString("Sarı Çizmeli Mehmet Ağa", True)
    MsgBox encryptString("Sarı Çizmeli Mehmet Ağa", False)
End Sub
'
Function encryptString(strText As String, LastChar As Boolean) As String
    Dim regExp As Object, objMatches As Object, tempStr As String, j As Byte, x As Byte
    
    Set regExp = CreateObject("VBScript.RegExp")
    
    regExp.IgnoreCase = True
    regExp.Global = True
    regExp.Pattern = "([A-Za-zIĞÜŞİÖÇıüşöç]+)"
    
    If regExp.Test(strText) Then
        Set objMatches = regExp.Execute(strText)
        For j = 0 To objMatches.Count - 1
            tempStr = objMatches.Item(j).Submatches(0)
            x = Len(tempStr)
            If LastChar = True Then
                myStr = myStr & " " & Left(tempStr, 1) & WorksheetFunction.Rept("*", x - 2) & Right(tempStr, 1)
            Else
                myStr = myStr & " " & Left(tempStr, 1) & WorksheetFunction.Rept("*", x - 1)
            End If
        Next
    End If
        
    encryptString = Trim(myStr)
    Set objMatches = Nothing
    Set regExp = Nothing
End FunctionExcelde sorun yokmuş ama google etablolarda bu sorunu yaşıyorum. Sadece büyük İ harfi olursa formül sonucu karışıyor.Bu formül çalışıyor ama büyük İ harfinde karıştırıyor. Sorun nasıl düzelebilir acaba?
=SOLDAN(C1;1) & YİNELE("*";UZUNLUK(PARÇAAL(C1;1;MBUL(" ";C1;1)-1))-2) & PARÇAAL(C1;MBUL(" ";C1;1)-1;1) & " " & EĞER(EHATA(MBUL(" ";PARÇAAL(C1;MBUL(" ";C1;1)+1;UZUNLUK(C1))));SOLDAN(PARÇAAL(C1;MBUL(" ";C1;1)+1;UZUNLUK(C1));1) & YİNELE("*";UZUNLUK(PARÇAAL(C1;MBUL(" ";C1;1)+1;UZUNLUK(C1)))-2) & SAĞDAN(C1;1);SOLDAN(PARÇAAL(C1;MBUL(" ";C1;MBUL(" ";C1;1)+1)+1;UZUNLUK(C1));1) & YİNELE("*";UZUNLUK(PARÇAAL(C1;MBUL(" ";C1;MBUL(" ";C1;1)+1);UZUNLUK(C1)))-2) & SAĞDAN(C1;1))Elinize sağlık, Öneri olarak seçeneklere aşağıdakiler parametrik olarak eklenebilir.Günlük olarak tiryakisi olduğum excel.web.tr ailesinin çok değerli hocaları bu konuda yorumlarını yazmışlar.
Yine bir hocamızın videosunu izleyerek hazırladığım belki çözüm olmayabilir ama severek yaptığım bir çalışma dosyasını excel.web.tr ailesinin çok değerli hoca, moderatörleri ve üyeleri ile misafir kullanıcıları için ekliyorum.
Hatamız ve eksiğimiz varsa öncelikle özür dilerim.
İyi günler.
