Çözüldü Otomatik Stok Kodu Oluşturma Kodu

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

arabixmami1998

Yeni Üye
Katılım
23 Haz 2018
Mesajlar
5
Puanları
1
Yaş
21
Konum
istanbul
Bu forum sitesine yeni katıldım umarım yardımcı olacak bir kişi çıkar.
Örnek EXCEL dosyasında görüldüğü gibi “A” Sütununda stok kodunun açılımı var. “B” Sütununda ise 2 ila 4 haneli kodlar yer almaktadır. Harflerin hepsi büyük ve sadece harflerden oluşmaktadır.

Olmasını İstediğim

“A” Sütununa herhangi bir ürün adı gireceğim. Oda bana bunu 3 – 4 haneli olacak şekilde otomatik olarak “B” sütununda bir kod oluşturarak vermesini istiyorum. Elimde 4.000 civarı bu şekilde isim var. Ve bu kodların her biri bir birinden bağımsız olmasını istiyorum. Yardımcı olacak olan arkadaşa şimdiden çok teşekkürler.
 

Ekli dosyalar

Admin

Yönetici
Site Yöneticisi
Katılım
25 May 2018
Mesajlar
1,077
Puanları
113
Konum
İstanbul
Web sitesi
www.excelarsivi.com
Ad Soyad
Excel Arşivi
Merhaba hoş geldiniz. (y)

Bu kodları bir deneyiniz..
VBA:
Sub ExcelTurkey()
    Dim i&, uz%, bul%, kod$
    Columns(3).ClearContents
    For i = 2 To Cells(Rows.Count, "A").End(3).Row
        uz = Len(Cells(i, 1).Value)
        bul = InStr(1, Cells(i, 1).Value, ",")
        If bul = 0 Then
            bul = InStr(1, Cells(i, 1).Value, " ")
        End If
        If bul = 0 Then
            kod = UCase(Left(Cells(i, 1).Value, 4))
                Else
            kod = UCase(Left(Left(Cells(i, 1).Value, bul - 1), 4))
        End If
        If WorksheetFunction.CountIf(Range("C:C"), kod) > 0 Then
            kod = UCase(Left(Cells(i, 1).Value, 3))
        End If
        If uz < 4 Then
            Cells(i, 3).Value = kod
                Else
            Cells(i, 3).Value = kod
        End If
    Next i
    kod = vbNullString: bul = Empty: uz = Empty: i = Empty
End Sub
 

arabixmami1998

Yeni Üye
Katılım
23 Haz 2018
Mesajlar
5
Puanları
1
Yaş
21
Konum
istanbul
Vermiş olduğunuz bilgi için çok teşekkürler. İnternette araştırdım ama bir türlü bulamadım. Bu kodu nasıl kullanabilirim?Excel içeriğine nasıl yerleştireceğimi bilmiyorum. Ya da siz bana yerleştirilmiş bir şekilde verebilir misiniz. Şimdiden teşekkürler.
 
Moderatör tarafında düzenlendi:

Admin

Yönetici
Site Yöneticisi
Katılım
25 May 2018
Mesajlar
1,077
Puanları
113
Konum
İstanbul
Web sitesi
www.excelarsivi.com
Ad Soyad
Excel Arşivi
Excel sayfasındayken ALT + F11 tuşlarına basın.
Açılan pencerede üstte bulunan Menülerden Insert’i tıklayın açılan menüden Module seçin ve verdiğim kodları açılan boş beyaz pencereye yapıştırın.
Kodda herhangi bir yeri tıklayın ve F5’e basın.
 

arabixmami1998

Yeni Üye
Katılım
23 Haz 2018
Mesajlar
5
Puanları
1
Yaş
21
Konum
istanbul
Excel sayfasındayken ALT + F11 tuşlarına basın.
Açılan pencerede üstte bulunan Menülerden Insert’i tıklayın açılan menüden Module seçin ve verdiğim kodları açılan boş beyaz pencereye yapıştırın.
Kodda herhangi bir yeri tıklayın ve F5’e basın.
Vermiş olduğunuz kod tamda istediğim gibi çalışıyor. Ancak sorun şu ki bir birine benzer çok fazla kod üretiyor. Bunun nedenide baştaki kelimeyi ilk 3 yada 4 kelimesini alıyor. Benim istediğimse bir birinden bağımsız olmasıdır. Ben size örnek olarak dosyamı da gönderiyorum. içeriğine bakarsanız ne demek istediğimi anlarsınız. Ayrıcada yarıdımınız için çok teşekkürler. Bu konuyu çözebilirsek çok iyi olur. Şimdiden teşekkürler.
 

Ekli dosyalar

Admin

Yönetici
Site Yöneticisi
Katılım
25 May 2018
Mesajlar
1,077
Puanları
113
Konum
İstanbul
Web sitesi
www.excelarsivi.com
Ad Soyad
Excel Arşivi
Vermiş olduğunuz kod tamda istediğim gibi çalışıyor.
Dedikten sonra istediğiniz gibi çalışmadığını belirtiyorsunuz.
Çok fazla kod üretiyor, nedeni de baştaki kelimeyi ilk 3 ya da 4 kelime (harf demek istediniz sanırım) alıyor dediniz, ilk mesajda 3-4 haneli olacak dediniz. Birbirinden bağımsız olmasını istediğiniz belirtiyorsunuz.

Eklediğiniz dosyada Accessories kelimesinden listenizde 31 tane var.
3-4 haneli olacak şekilde nasıl 31 tane kod oluşturulabilir sizce?

İstediğinizi bir toparlayıp net olarak iletirseniz yardımcı olmaya çalışırım.

Hoşça kalın.
 

arabixmami1998

Yeni Üye
Katılım
23 Haz 2018
Mesajlar
5
Puanları
1
Yaş
21
Konum
istanbul
"Accessories" İsimli kelimeden 31 adet mevcut olduğunu fark ettim bundan yana problem yok. Bu tip birebir aynı olan ve tekrarlayan kelimelerin stok kodlarını kendim manüel olarak değiştiririm. Şu şekilde olabilir mi?

Bazı kelimeler 2 kelimeden veya 3 kelimeden oluşmaktadır. Ancak 1. kelimede bir birine benzer çok fazla kelime mevcut. Aynı aşağıdaki örnekte de görmüş olduğunuz gibi, Bu kelimeleri stok kodları bir birinden bağımsız yapmak mümkün müdür? Örneğin 1 veya 2 harf 1.kelimeden 3 ile 4. harfi de 2. kelimeden alsa bu şekilde yapıla bilinmesi mümkün müdür?

Örneğin: "Baby Foods" "Baby Care" "Baby Shower"
 

Admin

Yönetici
Site Yöneticisi
Katılım
25 May 2018
Mesajlar
1,077
Puanları
113
Konum
İstanbul
Web sitesi
www.excelarsivi.com
Ad Soyad
Excel Arşivi
Rastgele random benzersiz bir numara verilse daha uygun olmaz mı?
İsterseniz 1. ve 2. kelimenin de birinin baş harfi alınıp benzersiz, istediğiniz hanede bir kod üretilebilir.
Örnek; A453247 - B5678797 vs. gibi benzersiz stok kodlarını daha kolay elde edebilirsiniz.
 

arabixmami1998

Yeni Üye
Katılım
23 Haz 2018
Mesajlar
5
Puanları
1
Yaş
21
Konum
istanbul
Elbette olabilir ancak kodların sadece harflerden oluşmasını istiyorum. Rakam olmaması gerek. Bu şekilde bir çalışma yapabilirsek çok memnun olurum.
 

Admin

Yönetici
Site Yöneticisi
Katılım
25 May 2018
Mesajlar
1,077
Puanları
113
Konum
İstanbul
Web sitesi
www.excelarsivi.com
Ad Soyad
Excel Arşivi
Bu kodları kullanabilirsiniz..
VBA:
Sub Kod_Olustur()
    Dim kod$, i%, j%
    For i = 1 To 4000
        Randomize
10      For j = 1 To 4
            kod = Chr(Int((90 - 65 + 1) * Rnd + 65)) & kod
        Next j
        If WorksheetFunction.CountIf(Range("C1:C4000"), kod) = 0 Then
            Cells(i, "C") = kod
                Else
            kod = ""
            GoTo 10
        End If
        kod = ""
    Next i
    j = Empty: i = Empty: kod = vbNullString
End Sub
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst Alt