• DİKKAT

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

Kullanıcı Tanımlı Formül Oluşturmak

Katılım
16 Şubat 2007
Mesajlar
11
Excel Vers. ve Dili
2007 Türkçe
İyi günler kendim bir makro hazirlayip, sözgelimi A1 hücresine gelip,

Kod:
=makrom(123,2)

kodunu yazınca sayıyı ikilik tabana çevirmesini istiyorum. Excel'in taban aritmatiği ile ilgili zaten halihazırda formülü olduğunu biliyorum. Aşağıdaki örnek diğer çalışmalara sadece referans olması için yazdım.

A1 hücresine hangi tabana çevirmek istediğimi yazıyorum
B1 hücresine çevirmek istediğim sayıyı yazıyorum
Makroyu çalıştırınca C1 hücresine sonucu yaziyor.

Kod:
Sub taban()

Dim sayi As Integer
Dim taban As Integer
Dim git As Integer

taban = Range("a1")
sayi = Range("b1")

Do
If sayi <= taban Then
deger = deger & sayi
Exit Do
Else
bolum = sayi \ taban
kalan = sayi - (bolum * taban)
deger = deger & kalan
sayi = bolum
End If
Loop

uzunluk = Len(deger)
git = uzunluk - 1

For i = 0 To git
sonuc = sonuc & Mid(deger, uzunluk - i, 1)
Next

Range("c1") = sonuc

End Sub


şimdi yukarıdaki kodu
Kod:
=makrom(123,2)
diyince 123 sayısını 2 lik tabanda karşılığını yazacak sekilde nasıl çevirebilirim.
 
Kod:
Function makrom(taban As Integer, sayi As Integer) As String
Dim git As Integer
Do
If sayi <= taban Then
deger = deger & sayi
Exit Do
Else
bolum = sayi \ taban
kalan = sayi - (bolum * taban)
deger = deger & kalan
sayi = bolum
End If
Loop
uzunluk = Len(deger)
git = uzunluk - 1
For i = 0 To git
sonuc = sonuc & Mid(deger, uzunluk - i, 1)
Next
makrom = sonuc
End Function
sadece uyarladım doğru sonuç veriyormu deneyin,iyi çalışmalar.
ters olmuş düzelttim.
 
Function makrom(taban As Integer, sayi As Integer) As String

burdaki as string'i kaldirdim bi de sayi as Integer, taban as Integer yapınca tam istediğim gibi oldu teşekkürler. Son hali ile

Function makrom(sayi As Integer, taban As Integer)
Dim git As Integer
Do
If sayi <= taban Then
deger = deger & sayi
Exit Do
Else
bolum = sayi \ taban
kalan = sayi - (bolum * taban)
deger = deger & kalan
sayi = bolum
End If
Loop
uzunluk = Len(deger)
git = uzunluk - 1
For i = 0 To git
sonuc = sonuc & Mid(deger, uzunluk - i, 1)
Next
makrom = sonuc
End Function
 
Geri
Üst