Rengi kullananların isimlerini bulmak

Katılım
22 Kasım 2008
Mesajlar
50
Excel Vers. ve Dili
excel 2003
Ekteki dosyada işaret ettiğim hücreye bu renk numaralarını kimlerin kullandığını yanyana olacak şekilde nasıl yazdırabilirim? Yardımcı olursanız çok sevinirim.
 

Ekli dosyalar

Son düzenleme:
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Ekteki örnek dosyayı inceleyiniz.

Kullanıcı Tanımlı bir fonksiyon geliştirilmiştir ...

Fonksiyon'un kullanımını hücrelerde gösterdim ... Kodlama şu şekildedir.

Kod:
Function KimKullanmış(Renk As Range) As String
    
    Dim wks As Worksheet
    Dim sKimKullanmis As String
    
    Application.Volatile
    
    If TypeOf Renk Is Range Then
        
        For Each wks In ThisWorkbook.Worksheets
            If wks.Range("B8") = Renk Then
                sKimKullanmis = sKimKullanmis & ", " & wks.Name
            End If
        Next
        
        KimKullanmış = Mid(sKimKullanmis, 3, Len(sKimKullanmis))
    
    Else
        
        KimKullanmış = Empty
    
    End If
        
End Function
 

Ekli dosyalar

Katılım
22 Kasım 2008
Mesajlar
50
Excel Vers. ve Dili
excel 2003
Ekteki örnek dosyayı inceleyiniz.

Kullanıcı Tanımlı bir fonksiyon geliştirilmiştir ...

Fonksiyon'un kullanımını hücrelerde gösterdim ... Kodlama şu şekildedir.

Kod:
Function KimKullanmış(Renk As Range) As String
    
    Dim wks As Worksheet
    Dim sKimKullanmis As String
    
    Application.Volatile
    
    If TypeOf Renk Is Range Then
        
        For Each wks In ThisWorkbook.Worksheets
            If wks.Range("B8") = Renk Then
                sKimKullanmis = sKimKullanmis & ", " & wks.Name
            End If
        Next
        
        KimKullanmış = Mid(sKimKullanmis, 3, Len(sKimKullanmis))
    
    Else
        
        KimKullanmış = Empty
    
    End If
        
End Function
İlginiz için teşekkürler. Bunun formülle bi yolu yok mudur acaba?
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
"...formülle..." den kastınız, Excel'in standart fonskiyonlarını kullanmaksa, dosyanızdaki veri organizasyonuza göre YOKTUR ...



.
 
Katılım
22 Kasım 2008
Mesajlar
50
Excel Vers. ve Dili
excel 2003
Ekteki örnek dosyayı inceleyiniz.

Kullanıcı Tanımlı bir fonksiyon geliştirilmiştir ...

Fonksiyon'un kullanımını hücrelerde gösterdim ... Kodlama şu şekildedir.

Kod:
Function KimKullanmış(Renk As Range) As String
    
    Dim wks As Worksheet
    Dim sKimKullanmis As String
    
    Application.Volatile
    
    If TypeOf Renk Is Range Then
        
        For Each wks In ThisWorkbook.Worksheets
            If wks.Range("B8") = Renk Then
                sKimKullanmis = sKimKullanmis & ", " & wks.Name
            End If
        Next
        
        KimKullanmış = Mid(sKimKullanmis, 3, Len(sKimKullanmis))
    
    Else
        
        KimKullanmış = Empty
    
    End If
        
End Function
Öneriniz çok güzeldi ama işime yaramadı. Çünkü ben sorunu tam anlatamamışım. Bütün suç benim. Gönderdiğiniz kod yanlızca bir kullanıcı için, bir renk yazıyor. Oysa ben bir kullanıcı farklı renklerde kullanmışsa yada kullanacaksa(yanlızca B8 i değilde sütuna eklenecek diğer renkleride) onlarıda yazdırmak istiyorum. Yani Ali hem kırmızı, hem mavi; Ayşe hem kırmızı ,hem yeşil vb gibi ...kullanırsa KOD NASIL OLUR? Bu soru sizin için basit olabilir ama benim için çok zor ve mühim. Tekrar yardımlarınızı bekliyorum.
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Kodu aşağıda verdiğim şekliyle değiştiriniz ...

Kitap içinde rengi kullanan kim varsa bulup getirecektir.

Kod:
Function KimKullanmış(Renk As String) As String
    
    Dim wks As Worksheet
    Dim sKimKullanmis As String
    Dim rngBul As Range
    
    Application.Volatile
    
    For Each wks In ThisWorkbook.Worksheets
        If wks.Name <> "RENKLER" Then
            If wks.Name <> "Hangi Rengi Kim Kullanmış" Then
                Set rngBul = wks.Range("B:B").Find(What:=Renk)
                If Not rngBul Is Nothing Then
                    sKimKullanmis = sKimKullanmis & ", " & wks.Name
                End If
            End If
        End If
    Next
    
    If Len(sKimKullanmis) = 0 Then
        KimKullanmış = Empty
    Else
        KimKullanmış = Mid(sKimKullanmis, 3, Len(sKimKullanmis))
    End If
Set rngBul = Nothing

End Function
 
Katılım
22 Kasım 2008
Mesajlar
50
Excel Vers. ve Dili
excel 2003
Tekrar Merhaba!
Evet haklısınız son kodu yazınca oldu. Ancak bu defada verdiğiniz kodda birşeyi gözardı etmişsiniz galiba.Oda şu; kullanıcılara renkleri(B8 leri) tek tek yazmak gerekiyor. Oysa B8 lere veri formülle geliyordu. Örneğin; "Ali" çalışma sayfasında: A8 e rengin kodunu yazınca geliyordu. Şimdi A8 e rengin kodunu(örneğin: 1 ) yazıyorum, B8 e renk adı(kırmızı) geliyor. Ancak "Hangi Rengi Kim Kullanmış" sayfasına bakınca B8 e renk yazdığı halde o kişi o rengi kullanmış görünmüyor. Çok oldum biliyorum, ama benim işimi görmesi için bu sorunu düzeltmem lazım. Peki bu sorunu nasıl düzeltebiliriz, kodu yazarsanız sorun tamamen çözülmüş olacak. Ve duacınız olacağım.
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Tekrar Merhaba!
Evet haklısınız son kodu yazınca oldu. Ancak bu defada verdiğiniz kodda birşeyi gözardı etmişsiniz galiba.Oda şu; kullanıcılara renkleri(B8 leri) tek tek yazmak gerekiyor. Oysa B8 lere veri formülle geliyordu. Örneğin; "Ali" çalışma sayfasında: A8 e rengin kodunu yazınca geliyordu. Şimdi A8 e rengin kodunu(örneğin: 1 ) yazıyorum, B8 e renk adı(kırmızı) geliyor. Ancak "Hangi Rengi Kim Kullanmış" sayfasına bakınca B8 e renk yazdığı halde o kişi o rengi kullanmış görünmüyor. Çok oldum biliyorum, ama benim işimi görmesi için bu sorunu düzeltmem lazım. Peki bu sorunu nasıl düzeltebiliriz, kodu yazarsanız sorun tamamen çözülmüş olacak. Ve duacınız olacağım.
Bu kısmı sorun değil... Kodu şu şekilde revize ediniz. Sadece, kırmızı ile belirttiğim parametre, koda ilave edilmiştir.


Kod:
Function KimKullanmış(Renk As String) As String
    
    Dim wks As Worksheet
    Dim sKimKullanmis As String
    Dim rngBul As Range
    
    Application.Volatile
    
    For Each wks In ThisWorkbook.Worksheets
        If wks.Name <> "RENKLER" Then
            If wks.Name <> "Hangi Rengi Kim Kullanmış" Then
                Set rngBul = wks.Range("B:B").Find(What:=Renk, [COLOR=red]LookIn:=xlValues[/COLOR])
                If Not rngBul Is Nothing Then
                    sKimKullanmis = sKimKullanmis & ", " & wks.Name
                End If
            End If
        End If
    Next
    
    If Len(sKimKullanmis) = 0 Then
        KimKullanmış = Empty
    Else
        KimKullanmış = Mid(sKimKullanmis, 3, Len(sKimKullanmis))
    End If
    
    Set rngBul = Nothing
End Function
 
Katılım
22 Kasım 2008
Mesajlar
50
Excel Vers. ve Dili
excel 2003
Yardımlarınız sayesinde. hiç bir sorunum kalmadı. Minnettarlığımı nasıl ifade edeyim bilemiyorum. Sabaha kadar "sağol", "sağol" yazsam yinede hakkınızı ödeyemem. 12 yıldır bana sorun olan bir işimi sayenizde artık elle değilde. bilgisayarda sizin yardımlarınızla yaptığım basit bir excel programı ile çok çabuk yapabileceğim. Bu Forum bir harika. Emeğinize sağlık. SONSUZ TEŞEKKÜRLER....
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Yardımlarınız sayesinde. hiç bir sorunum kalmadı. Minnettarlığımı nasıl ifade edeyim bilemiyorum. Sabaha kadar "sağol", "sağol" yazsam yinede hakkınızı ödeyemem. 12 yıldır bana sorun olan bir işimi sayenizde artık elle değilde. bilgisayarda sizin yardımlarınızla yaptığım basit bir excel programı ile çok çabuk yapabileceğim. Bu Forum bir harika. Emeğinize sağlık. SONSUZ TEŞEKKÜRLER....
Keşke daha önceki yıllarda söyleseydiniz ... :)

İşinize yaradığına sevindim ...



.
 
Üst