• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Sayıları kodlama

  • Konbuyu başlatan Konbuyu başlatan raaroka
  • Başlangıç tarihi Başlangıç tarihi
Katılım
26 Haziran 2009
Mesajlar
107
Excel Vers. ve Dili
2007
Merhabalar,

Ben A1hücresine 2145 yazdım. Bunun B1 hücresine rakkamları benim kodlayarak verdiğim harflerin gelmesini istiyorum.
Yani;
0 = aa
1= bb
2=cc
3=dd

gibi 9 a kadar bütün rakkamlara gelen harfleri tanımlayacağım.

A1 e 2145 yazdığımda A2 ye "ccbbeeff" yazmasını istiyorum. yardımlarınızı bekliyorum.
Teşekkürler,
 
Merhaba,

Makro isterseniz aşağıdaki Fonksiyonu deneyiniz.

Kullanımı =Harf(A1)

Kod:
Function Harf(Deger)

    Dim i As Integer, _
        s As String, _
        d
    
    d = Array("aa", "bb", "cc", "dd", "ee", "ff", "gg", "hh", "ii", "jj", "kk")
    
    For i = 1 To Len(Deger)
        If IsNumeric(Mid(Deger, i, 1)) = True Then s = s & d(Mid(Deger, i, 1))
    Next i
    
    Harf = Trim(s)
    
End Function
 
Sayın NEcdet Bey'in kodlarından yararlanarak oluşturduğum şu kodu da inceleyiniz. Bu kod çalıştırıldığında A1:A100 aralığındaki sayıların kodlu halini B sütununa yazar
Kod:
Sub kodlama()
 Dim i As Integer, _
        kod As String, _
        d
    
d = Array("aa", "bb", "cc", "dd", "ee", "ff", "gg", "hh", "ii", "jj", "kk")
For i = 1 To 100
    If IsNumeric(Cells(i, "A")) Then
        For j = 1 To Len(Cells(i, "A"))
            kod = kod & d(Mid(Cells(i, "A"), j, 1))
        Next
        Cells(i, "B") = kod
        kod = ""
    End If
Next
End Sub
 
Merhabalar;
yukarıdaki kodları kendime uyarlamaya çalıştım ama yapamadım:)

mesela A1 hücresine 1 yazınca
B1 hücresine K1
C1 hücresine K2
D1 hücresine K3
E1 hücresine K4
nasıl yapabilirim?

örnek dosya ektedir.
 

Ekli dosyalar

Kod:
Sub kod() 
if isnumeric([A1]) =True Then
a=[A1]
For i = 2 to 5
cells(1,i) = "K" & a
a=a+1
next
End if 
End sub

Şeklinde deneyiniz.
 
Kod:
Sub kod() 
if isnumeric([A1]) =True Then
a=[A1]
For i = 2 to 5
cells(1,i) = "K" & a
a=a+1
next
End if 
End sub

Şeklinde deneyiniz.

cevabınız için çok teşekkür ederim,
Örnekte A1 hücresi ve karşısına gelecekler yazılmıştı, cevabınızdaki kod tam istediğim gibi olmuş, ancak ekteki dosyada A1 haricinden A47 hücresine kadar devam eden rakamlar ve karşısına gelmesi gereken kodlar var. Bunlar için de bir yol gösterebilir misiniz.
Saygılarımla.
 
Örnek dosyanızı dünkü cevabımdan sonra gördüm. Satırlar arasında düzenli bir mantık kuramadığımdan çözüm üretemedim. Hangi satırlara hangi kodun geleceğinin kuralı nedir?
 
A kolonunda 1 den 47 ye kadar rakamlar ve karşısına gelmesi gereken kodlar sıralamaya göre artarak yazıldı.
Mesela 1 rakamı yazılan yerin karşısına K1-K2-K3-K4 kodları gelmesi lazım.
Mesela 2 rakamı yazılan yerin karşısına K5-K6-K7-K8 kodları gelmesi lazım.
Mesela 15 rakamı yazılan yerin karşısına S13-S14-S15-S16 kodları gelmesi lazım.
Ayrıca A kolonunda sıralama aşağıya doğru 1 den 47 ye sırasıyla gitmiş ama ben kodlama yaparken bu rakamlar karışık olabilecek. Yani 1-2-3-4-5 gibi artarak gideceğine 4-1-30-22-3 gibi karışık yazılacak. Önemli olan yazdığım rakamın yanına gelmesi gereken kodlardır.
biraz karışık oldu ama :)
 
NEden 2'nin karşısına K5 geliyor da 15'in karşısına S13 geliyor? Excel hangi kodun karşısına hangi kodun geleceğini nasıl anlayacak?
 
NEden 2'nin karşısına K5 geliyor da 15'in karşısına S13 geliyor? Excel hangi kodun karşısına hangi kodun geleceğini nasıl anlayacak?

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
 
    Dim c As Range
 
    If Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub
 
    Target.Offset(0, 1).Clear
 
    With Sheets("Sayfa1")
        Set c = .[A:A].Find(Target, , xlValues, xlWhole)
        If Not c Is Nothing Then
            .Cells(c.Row, "B").Resize(1, 4).Copy Target.Offset(0, 1)
        End If
    End With
 
End Sub

bu kodlar ile sorun çözüldü, tam da istediğim gibi oldu:)
ilginiz için teşekkürler,
Saygılarımla.
 
Geri
Üst