fonksiyonu makroya çevirme

Katılım
9 Eylül 2004
Mesajlar
243
Excel Vers. ve Dili
Office2003Trk
=EĞER(D13="Kahverengi";"1";EĞER(D13="Kırmızı";"2";EĞER(D13="Turuncu";"3";EĞER(D13="Sarı";"4";EĞER(D13="Yeşil";"5";EĞER(D13="Mavi";"6";EĞER(D13="Mor";"7";EĞER(D13="Siyah";"0"))))))))

bu fonksiyona 2 tane daha eğer le başlayan renk eklemek istiyorum ancak fonksiyonla 8 tane eğer den sonrasını kabul etmiyor. mecburen makro ile yapmak zorundayım ama nasıl yapacam bilmiyorum
 

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,897
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
B1 hücrenize yazacağınız değere göre D13 değişeceğini varsayarak yazdım siz gerekli kodları

Case Is = "Siyah"
Range("B1").Value = "0" altına yazarak devam edersiniz



Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Select Case Range("D13").Value
Case Is = "Kahverengi"
Range("B1").Value = " 1"
Case Is = "Kırmızı"
Range("B1").Value = " 2"
Case Is = "Turuncu"
Range("B1").Value = " 3"
Case Is = "Sarı"
Range("B1").Value = " 4"
Case Is = "Yeşil"
Range("B1").Value = "5"
Case Is = "Mavi"
Range("B1").Value = "6"
Case Is = "Mor"
Range("B1").Value = "7"
Case Is = "Siyah"
Range("B1").Value = "0"
.
.
.
Sizin ekleyeceğiniz kodlar
.
.

End Select
End Sub
 

ik

Katılım
1 Ekim 2005
Mesajlar
53
Altın Üyelik Bitiş Tarihi
25.04.2022
Option Explicit

Function Renk(No As String)
Dim Sayi As String
Select Case No
Case 1: Sayi = "Kahverengi"
Case 2: Sayi = "Kırmızı"
Case 3: Sayi = "Turuncu"
Case 4: Sayi = "Sarı"
Case 5: Sayi = "Yeşil"
Case 6: Sayi = "Mavi"
Case 7: Sayi = "Mor"
Case 8: Sayi = "Siyah"
'Case 9: Sayi = "......."
'Case 10: Sayi = "......."
'Case 11: Sayi = "......."
'Case 12: Sayi = "......."

End Select
Renk = Sayi
End Function

bunu bir deneyin

Bunu VBA da bir modüle yazın daha sonra istediğiniz bir hücreye =Renk(A1 "hücre adresi") yazarsanız ilgili renkleri verir.

renkleri çoğaltmak için "......" alanına istediğiniz rengi yazın ve başındaki tırnak işaretini kaldırın
 
Katılım
9 Eylül 2004
Mesajlar
243
Excel Vers. ve Dili
Office2003Trk
bir sorun var d13 hücresine fare ile tıkladığımda sonuç veriyor. istiyorumki b1 hücresine renk yazdığımda d13 hücresindeki sonuç direk gözüksün
 

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,897
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
Sorununuz benim verdiğim kodlarlamı ilgili orasını anlamadım kusura bakmayın

Hangi sayfada bu özelliğin olmasını istiyorsanız o sayfa sekmesini sağ tuş ile tıklayıp kod görüntüle kısmını kodları yapıştırmanız gerekecek

b1 hücresine renk yazdığımda d13 hücresindeki sonuç direk gözüksün

B1 e Kırmızı yazdığıınızda D13 de sonucu görmek istiyorsanızda kodları
aşağıdaki gibi değiştirmeniz gereklidir.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Select Case Range("B1").Value
Case Is = "Kahverengi"
Range("D13").Value = " 1"
Case Is = "Kırmızı"
Range("D13").Value = " 2"
Case Is = "Turuncu"
Range("D13").Value = " 3"
Case Is = "Sarı"
Range("D13").Value = " 4"
Case Is = "Yeşil"
Range("D13").Value = "5"
Case Is = "Mavi"
Range("D13").Value = "6"
Case Is = "Mor"
Range("D13").Value = "7"
Case Is = "Siyah"
Range("D13").Value = "0"
....
....
Ekleyeceğiniz diğer veriler
....
....

End Select
End Sub

Bu şekilde sonuçlar zaten direk gözükecektir
 
Katılım
17 Şubat 2006
Mesajlar
981
Excel Vers. ve Dili
M.Office Excel 2003 Tr.
renk başka sayfada ise kodu nasıl değiştirmemiz gerekli?
 

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,897
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
Sn kombo, hangi sayfada istiyorsanız yukarıdaki kodu yapıştırmanız yeterlidir ekstra olarak kodları değiştirmeye gerek yok. Çünkü ilgili sayfanın hücrelerine göre işlem yapmaktadır
 
Katılım
17 Şubat 2006
Mesajlar
981
Excel Vers. ve Dili
M.Office Excel 2003 Tr.
Teşekkür ederim sn. fructose
 
Katılım
9 Eylül 2004
Mesajlar
243
Excel Vers. ve Dili
Office2003Trk
sayın fructose makrolar için teşekkür ederim ancak bir sorunum daha var çözebilirseniz sevinirim.
Select Case Range("B1").Value
Case Is = "Kahverengi"
Range("D13").Value = " 1"
.....
.....
.....
Select Case Range("C1").Value
Case Is = "Kahverengi"
Range("E13").Value = " 1"
.....
....
.....
Select Case Range("D1").Value
Case Is = "Kahverengi"
Range("F13").Value = " 1"

YUKARIDA 3 FARKLI YERE DEĞERLER GİRDİĞİMDE YİNE 3 FARKLI YERDE DEĞERLERİN GÖZÜKMESİNİ İSTİYORUM AMA YAPAMADIM
 
Üst