Excel Forum
ALTIN ÜYELİK Hakkında Bilgi


Geri Git   Excel Forum > Diğer Yazılımlar > WEB Tasarım&Programlama > JavaScript
Atatürk
Şifremi Unuttum

DUYURU SİSTEMİ / REKLAM PANOSU

Özel Arama


Yanıtla
 
Paylaş Konu Araçları Görünüm Modları
Eski 06-01-2008, 20:44   #1
pcman
 
Giriş: 23/11/2007
Şehir: İstanbul
Mesaj: 245
Excel Vers. ve Dili:
2003
Varsayılan Formül hesabı

Bir sitede kullanılan birsistemi projemde kullanmam gerikiyor

sitenin linki
http://www.meeberg.com/checkdigit.htm

Burda Yazılan Tank numarası doğrulanıyor ve son karekter veriliyor

Örneğin bu bir tank numarası burda tireden sonraki rakam verdiğim likte oluşuyor
ALTU 123 056-0
GESU 801 863-3
PCVU 125 684-0

verdiğim linkkin kaynak kodlarını bir yerekarar çözdüğümüzannediyorum

Harfler sayılara tanımlanıyor

Array("a",10,"b",12,"c",13,"d",14,"e",15,"f",16,"g ",17,"h",18,"i",19,"j",20,"k",21,"l",23,"m",24,"n" ,25,"o",26,"p",27,"q",28,"r",29,"s",30,"t",31,"u", 32,"v",34,"w",35,"x",36,"y",37,"z",38);


script bilmediğim için function çezemedim

Yardımcı olanan arkadaşlara şimdiden teşekkürler
pcman Çevrimdışı   Alıntı Yaparak Cevapla
Eski 07-01-2008, 02:47   #2
modalı
Uzman
 
modalı kullanıcısının avatarı
 
Giriş: 25/12/2005
Şehir: İstanbul
Mesaj: 4,162
Excel Vers. ve Dili:
MS Office 2010 Pro Türkçe
Varsayılan

Sayın pcman,

Tam olarak ne istediğinizi anlayamadım. Ancak ilgili uygulamayı Access e uyguladım. VBA kodlarından takip edebilirsiniz sanırım.

İyi çalışmalar
Eklenmiş Dosyalar
Dosya Türü: rar C H E C K - D I G I T.rar (17.7 KB, 12 Görüntülenme)
modalı Çevrimdışı   Alıntı Yaparak Cevapla
Eski 07-01-2008, 07:23   #3
omerceri
 
omerceri kullanıcısının avatarı
 
Giriş: 06/02/2005
Şehir: Gökova/Akyaka
Mesaj: 1,474
Varsayılan

Projeniz Excel'de ise aşağıdaki fonksiyonu kullanabilirsiniz
Kontenyer Numarasını tek hücreye boşluk vermeden giriniz.
Function deger(harf)
If Asc(harf) = 65 Then
deger = 10
ElseIf Asc(harf) > 65 And Asc(harf) < 76 Then
deger = Asc(harf) - 54
ElseIf Asc(harf) > 75 And Asc(harf) < 86 Then
deger = Asc(harf) - 53
ElseIf Asc(harf) > 85 And Asc(harf) <= 90 Then
deger = Asc(harf) - 52
End If
End Function
Function KonteynerKontNo(KonteynerNo)
For i = 1 To 10
If Not IsNumeric(Mid(KonteynerNo, i, 1)) Then
a = Application.Power(2, i - 1) * deger(Mid(KonteynerNo, i, 1))
Else
a = Application.Power(2, i - 1) * Mid(KonteynerNo, i, 1)
End If
b = b + a
Next
c = b Mod 11
If c = 10 Then
KonteynerKontNo = 0
Else
KonteynerKontNo = c
End If
End Function
__________________
(Excel 2003 - Türkçe)
omerceri Çevrimdışı   Alıntı Yaparak Cevapla
Eski 07-01-2008, 09:25   #4
pcman
 
Giriş: 23/11/2007
Şehir: İstanbul
Mesaj: 245
Excel Vers. ve Dili:
2003
Varsayılan

Sn Modalı ve omerceri Çok teşekkür ederim

Sizin gibi Paylaşımcılarla excel.web.tr dahada keyifli bir ortam haline geliyor.
pcman Çevrimdışı   Alıntı Yaparak Cevapla
Eski 07-01-2008, 11:46   #5
modalı
Uzman
 
modalı kullanıcısının avatarı
 
Giriş: 25/12/2005
Şehir: İstanbul
Mesaj: 4,162
Excel Vers. ve Dili:
MS Office 2010 Pro Türkçe
Varsayılan

Benim eklediğim uygulamada ufak bir hata var. hesaplanan sayı 10 ise 0 olma ihtimalini eklememiştim.
calc fonksiyonunu şöyle değiştitin:

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
 
Public Function calc(testTal1 As Variant, testTal2 As Variant)
Dim inputStr
Dim sum, currentLetter, delsum, multiplier
inputStr = testTal1 & testTal2
sum = 0
multiplier = 1
For i = 1 To 10
    currentLetter = Mid(inputStr, i, 1)
    
        If Not IsNumeric(currentLetter) Then
            delsum = getLetterValue(currentLetter)
        Else
            delsum = Val(currentLetter)
        End If
        
            sum = sum + (delsum * multiplier)
            multiplier = multiplier * 2
Next i
    calc = sum Mod 11
    If sum Mod 11 = 10 Then
        calc = 0
    End If
End Function
Kırmızı olan kısım eklenecek.

İyi çalışmalar
modalı Çevrimdışı   Alıntı Yaparak Cevapla
Eski 07-01-2008, 14:11   #6
pcman
 
Giriş: 23/11/2007
Şehir: İstanbul
Mesaj: 245
Excel Vers. ve Dili:
2003
Varsayılan

teşekkürler
pcman Çevrimdışı   Alıntı Yaparak Cevapla
Eski 07-01-2008, 14:23   #7
pcman
 
Giriş: 23/11/2007
Şehir: İstanbul
Mesaj: 245
Excel Vers. ve Dili:
2003
Varsayılan

Sn Modalı zamanınız olunca Kobaca Bu kodların açıklamasını yaparmısınız

ör.. Tankno ilk 4 karekter harftir ve sayıya çevrilir a=10 başlar 4işlemler falan

İyi çalışmalar
pcman Çevrimdışı   Alıntı Yaparak Cevapla
Eski 07-01-2008, 16:08   #8
omerceri
 
omerceri kullanıcısının avatarı
 
Giriş: 06/02/2005
Şehir: Gökova/Akyaka
Mesaj: 1,474
Varsayılan

Sn pcman
İlk dört hanesi Konteyner Sahibinin kodları olup harflerle gösterilir ve son harfi U dur.
Sonraki 6 rakkam seri numarasıdır. 6 haneden küçük gösterilmişse başına 0 eklenerek 6'ya tamamlanır.
Harfler bir sabit sayıya denk gelir.
A 10
B 12
C 13
D 14
E 15
F 16
G 17
H 18
I 19
J 20
K 21
L 23
M 24
N 25
O 26
P 27
Q 28
R 29
S 30
T 31
U 32
V 34
W 35
X 36
Y 37
Z 38
Harflerin karşılığı bu sayılar ile seri numarasının rakamları,
sırası ile 2 üst 0'dan başlanarak, 2 üstü 9 kadar çarpılır.
örneğin

ALTU123056 numaralı konteyner

(A = 10) (2 Üst 0 = 1) 10 x 1= 10
(L = 23) (2 üst 1 = 2) 23 x 2 = 46
(T = 31) (2 üst 2 = 4) 31 x 4 = 124
(U = 32) (2 üst 3 = 8) 32 x 8 = 256
(1 = 1) (2 üst 4 = 16) 1 x 16 = 16
(2 = 2) (2 üst 5 = 32) 2 x 32 = 64
(3 = 3) (2 üst 6 = 64) 6 x 64 = 192
(0 = 0) (2 üst 7 = 128) 0 x 128 = 0
(5 = 5) (2 üst 8 = 256) 5 x 256 = 1280
(6 = 6) (2 üst 8 = 512) 6 x 512= 3072
__________
5060
sonra bu çıkan çarpım sonuçları toplanır.
bulunan sayı 11'e tam sayı kalana kadar bölünür. KALAN kontrol rakamıdir.
örnekte tam bölündüğü için kontrol rakkamı 0
Not
kalan 10 olduğu taktirde 0 kabul edilecek.

bu heplama için çok değişik biçimlerde kod yazılabilinir
__________________
(Excel 2003 - Türkçe)

Bu mesaj en son " 07-01-2008 " tarihinde saat 16:14 itibariyle omerceri tarafından düzenlenmiştir....
omerceri Çevrimdışı   Alıntı Yaparak Cevapla
Eski 07-01-2008, 16:12   #9
modalı
Uzman
 
modalı kullanıcısının avatarı
 
Giriş: 25/12/2005
Şehir: İstanbul
Mesaj: 4,162
Excel Vers. ve Dili:
MS Office 2010 Pro Türkçe
Varsayılan

Sayın pcman,

Bu işin algoritması çok basit:

1.Harf alanı ile sayı alanını birleştiriyoruz.
2. Yeni elde ettiğimiz metinin harflerini teker teker alıyoruz ve soruda verdiğiniz Array a göre numaralandırıyoruz. a=10, m=24 vs. Aynı zamanda da topluyoruz.
3.Sayısal alanlar direkt olarak toplama giriyor.
4. En sonunda genel toplamı 11 bölüp kalanı alıyoruz.
5. Bu kalan 0-9 arası ise hesaplanan kalan, yok 10 ise bu kez 0 olarak son digiti hesaplamış oluyoruz.

Başka soracağınız var ise memnuniyetle cevaplandırabilirim.

İyi çalışmalar
modalı Çevrimdışı   Alıntı Yaparak Cevapla
Eski 07-01-2008, 16:21   #10
omerceri
 
omerceri kullanıcısının avatarı
 
Giriş: 06/02/2005
Şehir: Gökova/Akyaka
Mesaj: 1,474
Varsayılan

Sn Modalı
Sayıların kendi değerlerinin toplamı değil, sayıların sırası ile 2 üst 0 den 2 üst 9'a kadar çarpımının toplamı
__________________
(Excel 2003 - Türkçe)
omerceri Çevrimdışı   Alıntı Yaparak Cevapla
Yanıtla


Konu Araçları
Görünüm Modları

Gönderme Kuralları
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
SimgelerAçık
[IMG] kodu Açık
HTML kodu Kapalı


Saat 11:57


Bu forum Elit NET - www.elitnet.com.tr tarafından sunulmaktadır.

Excel Eğitimi - Mobil Uygulama - Çorlu - Çorlu Web Tasarım - Tarot Falı - invest in turkey - Lingerie - Dyeing Machine - Karton Bardak- Çorlu Özel Eğitim- Site Yönetimi- Led Aydınlatma- Pronet Tekirdağ- Çorlu Kamera- Pronet Edirne- Pronet Kırklareli- Pronet Çerkezköy- Pronet Çorlu- Pronet Lüleburgaz- Pronet Keşan- Çorlu Araç Takip- Çorlu Su Arıtma- Boru Profil- Gebze Emlak- Beylikdüzü Temizlik- İstanbul Burun Estetiği- Bakır Sülfat- Rampa- Rotary- Çorlu İnternet Sitesi- youngblood- Çorlu Palet- Çerkezköy Palet- Çorlu Prefabrik- Çorlu Sürücü Kursu- Çorlu Sandviç Panel- Şişli Avukat- Korona Test Kalemi- Çorlu Vinç- Çorlu Pimapen Tamiri-
Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Advertisement System V2.6 By   Branden