• DİKKAT

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

Kurala Göre Kod Oluşturmak

Kodları deneyebilir misiniz?
Kod:
Sub kodOlustur()

    oncKod = "": oncP1 = ""
    For i = 2 To [b65536].End(3).Row
        p1 = Left(Cells(i, 2), 1)
        kod = Cells(i, 1)
        If oncKod <> kod Then
            onNmb = 100: sonNmb = 1
            oncKod = kod: oncP1 = p1
        Else
            If p1 <> oncP1 Or p1 = "M" Then
                onNmb = onNmb + 100
                sonNmb = 1
            Else
                sonNmb = sonNmb + 1
            End If
        End If
        oncP1 = p1
        nmb = onNmb + sonNmb
        Cells(i, 3) = nmb
    Next i

    For i = 2 To [b65536].End(3).Row
        nmbSon = (Right(Cells(i, 3), 1))
        If nmbSon = 1 Then
            anhtr = "ZP01"
        Else
            anhtr = "ZP00"
        End If

        If Cells(i, 1) <> Cells(i + 1, 1) Then
            If kodSay > 1 Then anhtr = "ZP03"
            kodSay = 0
        Else
            kodSay = kodSay + 1
        End If

        Cells(i, 4) = anhtr
    Next i

End Sub
 
Son düzenleme:
yoğunluktan 2.kez gitmiş iptal
 
Son düzenleme:
Kodları deneyebilir misiniz?
Kod:
Sub kodOlustur()

    oncKod = "": oncP1 = ""
    For i = 2 To [b65536].End(3).Row
        p1 = Left(Cells(i, 2), 1)
        kod = Cells(i, 1)
        If oncKod <> kod Then
            onNmb = 100: sonNmb = 1
            oncKod = kod: oncP1 = p1
        Else
            If p1 <> oncP1 Or p1 = "M" Then
                onNmb = onNmb + 100
                sonNmb = 1
            Else
                sonNmb = sonNmb + 1
            End If
        End If
        oncP1 = p1
        nmb = onNmb + sonNmb
        Cells(i, 3) = nmb
    Next i

    For i = 2 To [b65536].End(3).Row
        nmbSon = (Right(Cells(i, 3), 1))
        If nmbSon = 1 Then
            anhtr = "ZP01"
        Else
            anhtr = "ZP00"
        End If

        If Cells(i, 1) <> Cells(i + 1, 1) Then
            If kodSay > 1 Then anhtr = "ZP03"
            kodSay = 0
        Else
            kodSay = kodSay + 1
        End If

        Cells(i, 4) = anhtr
    Next i

End Sub


Veysel bey merhaba,

Yazmış olduğunuz makro içersinde şu koşulu revize edebilir misiniz.

- A sütunundaki bir kodun B sütunundaki son operasyonu, sondan bir önceki operasyonun alternatifi ise son operasyonu anhtr = ZP00, bu alternatif operasyonun ilk operasyonu anhtr = ZP03 olacak.

ekteki dosyada a sütunundaki KOD3 satırlarında son operasyon D2 idi sondan bir önceki operasyon D1 idi. Sizin yazmış olduğunuz mevcut kod D2 sütununu anhtr = ZP03 yapıyor. D1 i ZP01 yapıyor. Olması gereken D1 ZP03, D2 ZP00 olacak. Yardımlarınızı rica ederim.
 
Son düzenleme:
Veysel bey merhaba,

Yazmış olduğunuz makro içersinde şu koşulu revize edebilir misiniz.

- A sütunundaki bir kodun B sütunundaki son operasyonu, sondan bir önceki operasyonun alternatifi ise son operasyonu anhtr = ZP00, bu alternatif operasyonun ilk operasyonu anhtr = ZP03 olacak.

ekteki dosyada a sütunundaki KOD3 satırlarında son operasyon D2 idi sondan bir önceki operasyon D1 idi. Sizin yazmış olduğunuz mevcut kod D2 sütununu anhtr = ZP03 yapıyor. D1 i ZP01 yapıyor. Olması gereken D1 ZP03, D2 ZP00 olacak. Yardımlarınızı rica ederim.

Aşağıdaki soruları netleştirip, örnek sayısı çoğaltılmış net bir örnek ekleyin, yeniden düzenleyelim.

1-A sütunundaki Kod türünün sonu ise ZP03 olacak dediniz.
A sütununda KOD türü tek ise aynı zamanda son olacağı için anahtar ne olacak? Mesela örnekteki KOD2 ve KOD5; ZP01 mi ZP03 mü olacak?

2-A sütunundaki Kod türünün sonu ve OP KOD üsttekinin alternatifi ise ZP00 üstteki ZP03;
Örnekte KOD3 ün sonu için Olması gereken D1 ZP03, D2 ZP00 olacak dediniz Ok
Peki KOD6 için durum nasıl olacak TEK1 ve TEK2 onlarda ZP03 ve ZP00 mı olacak

Bunların dışında önceki söylediğiniz kurallar geçerli.
 
Aşağıdaki soruları netleştirip, örnek sayısı çoğaltılmış net bir örnek ekleyin, yeniden düzenleyelim.

1-A sütunundaki Kod türünün sonu ise ZP03 olacak dediniz.
A sütununda KOD türü tek ise aynı zamanda son olacağı için anahtar ne olacak? Mesela örnekteki KOD2 ve KOD5; ZP01 mi ZP03 mü olacak?

2-A sütunundaki Kod türünün sonu ve OP KOD üsttekinin alternatifi ise ZP00 üstteki ZP03;
Örnekte KOD3 ün sonu için Olması gereken D1 ZP03, D2 ZP00 olacak dediniz Ok
Peki KOD6 için durum nasıl olacak TEK1 ve TEK2 onlarda ZP03 ve ZP00 mı olacak

Bunların dışında önceki söylediğiniz kurallar geçerli.

Merhaba,

Aşağıdaki bağlantıda ilgili sorularınıza örnekler vererek mevcut çalışmamı yeniledim.

Sorularınıza cevaben;

1- Evet. A sütunundaki kod türü tek ise anahtar kodu : zp03
2- Evet. Son operasyon kodları bir önceki operasyonları alternatifi ise ilk alternatif operasyonun anahatar kodu : zp03, diğerleri zp00 olacaktır.
örnek olarak son operasyon d3 diyelim. bu d3 ün d2 ve d1 alternatifleri var. anahatr kodları d1: zp03, d2:zp00 ve d3:zp00 olacaktır.
3- kod 6 içinde tek1 anahatar kodu : zp03, tek2 : zp00 olacaktır.

** Bilgi. son operasyon bir önceki operasyonun alternatifi olabilir ve bu son operasyon 2 alternatifli olabilir 3 alternatifli de olabilir. yani d1,d2, d3 olabilir. Bu durumda anahatr kodları d1:zp03, d2:zp00, d3:zp00 olacaktır.

** operasyonların alternatif sayılarını vermek istedim gerekebilir.

P ile başlayan p1,p2,p3,p4,p5
Kİ ile başlayan ki1,ki2,k3,k4
D ile başlayan d1,d2,d3,d4,d5,d6
TEK ile başlayan tek1,tek2
ALT ile başlayan alt1,alt2,alt3,alt4,alt5


https://drive.google.com/file/d/0B3wJKQcxKCV4QzgxY1FFRVA1WGM/view?usp=sharing

Şimdiden teşekkür ederim.
 
Kodu deneyiniz.
Kod:
Sub kodOlustur()
    [c2:d65336].ClearContents
    oncKod = "": oncP1 = ""
    For i = 2 To [b65536].End(3).Row
        p1 = Left(Cells(i, 2), 1)
        kod = Cells(i, 1)
        If oncKod <> kod Then
            onNmb = 100: sonNmb = 1
            oncKod = kod: oncP1 = p1
        Else
            If p1 <> oncP1 Or p1 = "M" Then
                onNmb = onNmb + 100
                sonNmb = 1
            Else
                sonNmb = sonNmb + 1
            End If
        End If
        oncP1 = p1
        nmb = onNmb + sonNmb
        Cells(i, 3) = nmb
    Next i

    'Anahtar kodu hesapla
    For i = 2 To [b65536].End(3).Row
        If Cells(i, 1) <> Cells(i + 1, 1) Then
            p1 = Left(Cells(i, 2), 1)
            say = 0
            For ii = i - 1 To 2 Step -1
                p2 = Left(Cells(ii, 2), 1)
                If p1 = p2 And p1 <> "M" Then
                    say = say + 1
                    Cells(ii, 4) = "son-" & say
                Else
                    If say >= 1 Then
                        Cells(i - say, 4) = "ZP03"
                        Range(Cells(i - say + 1, 4), Cells(i, 4)).Value = "ZP00"
                    Else
                        Cells(i, 4) = "ZP03"
                    End If
                    GoTo atla
                End If
            Next ii
        End If
atla:
        If Cells(i, 4) = "" Then
            If Right(Cells(i, 3), 1) = 1 Then
                Cells(i, 4) = "ZP01"
            Else
                Cells(i, 4) = "ZP00"
            End If
        End If
    Next i
 End Sub
 
Kodu deneyiniz.
Kod:
Sub kodOlustur()
    [c2:d65336].ClearContents
    oncKod = "": oncP1 = ""
    For i = 2 To [b65536].End(3).Row
        p1 = Left(Cells(i, 2), 1)
        kod = Cells(i, 1)
        If oncKod <> kod Then
            onNmb = 100: sonNmb = 1
            oncKod = kod: oncP1 = p1
        Else
            If p1 <> oncP1 Or p1 = "M" Then
                onNmb = onNmb + 100
                sonNmb = 1
            Else
                sonNmb = sonNmb + 1
            End If
        End If
        oncP1 = p1
        nmb = onNmb + sonNmb
        Cells(i, 3) = nmb
    Next i

    'Anahtar kodu hesapla
    For i = 2 To [b65536].End(3).Row
        If Cells(i, 1) <> Cells(i + 1, 1) Then
            p1 = Left(Cells(i, 2), 1)
            say = 0
            For ii = i - 1 To 2 Step -1
                p2 = Left(Cells(ii, 2), 1)
                If p1 = p2 And p1 <> "M" Then
                    say = say + 1
                    Cells(ii, 4) = "son-" & say
                Else
                    If say >= 1 Then
                        Cells(i - say, 4) = "ZP03"
                        Range(Cells(i - say + 1, 4), Cells(i, 4)).Value = "ZP00"
                    Else
                        Cells(i, 4) = "ZP03"
                    End If
                    GoTo atla
                End If
            Next ii
        End If
atla:
        If Cells(i, 4) = "" Then
            If Right(Cells(i, 3), 1) = 1 Then
                Cells(i, 4) = "ZP01"
            Else
                Cells(i, 4) = "ZP00"
            End If
        End If
    Next i
 End Sub

Sorum çözülmüştür. Yardımlarınız ve emeğiniz için Allah razı olsun.
 
Geri
Üst