Ürün Listesi İçin On Harfli Stok Kodları Hazırlama
Stok Kodu Oluşturma çalışma kitabı, bir ürün veya ürün grubu listesinin yanına harflerden oluşan örnek kodlar yazdırmak için hazırlanmış bir Excel dosyasıdır. Tek görünür sayfada A sütunu stok adlarını, B sütunu ise bunlara karşılık gelen kodları taşır. Dosyanın güncel örneğinde yirmi beş ad ve her biri on büyük harften oluşan yirmi beş kod bulunmaktadır. Kodların oluşturulması hücre formülüne değil, dosyada bulunan StokKoduOlusturma adlı VBA makrosuna bağlıdır. Bu nedenle dosya uzantısı XLSM'dir. İndirme öncesinde bu ayrımın bilinmesi, örneğin nasıl çalıştırılacağını ve hangi amaçlarla kullanılmaması gerektiğini doğru değerlendirmeye yardımcı olur.Dosyanın Düzeni ve Örnek Veriler
Çalışma kitabında yalnız Sayfa1 görünür durumdadır. Kullanılan hücre aralığı A1:B26'dır. A1 hücresindeki STOK ADI başlığı altında ürün veya kategori adları, B1 hücresindeki STOK KODU başlığı altında kodlar yer alır. İlk veri satırı A2 ve B2'dir. Son örnek satırı yirmi altıncı satırdır. Örnek adlar arasında Bebek, Kitaplar, Bilgisayar, Elektronik, Yazılım ve Oyuncak ve Oyunlar gibi kayıtlar vardır. Bu adlar gerçek bir işletmenin stok kartları, barkodları veya ürün kimlikleri olarak doğrulanmış veriler değildir; makronun iki sütunlu bir liste üzerinde nasıl davrandığını gösterir.Dosyada Excel tablosu nesnesi, grafik, veri doğrulama kuralı veya hücre formülü bulunmaz. Sayfa korumalı değildir. Dolayısıyla A sütununa yeni adlar yazmak, hazır bir veri giriş formundaki zorunlu alanları doldurmakla aynı şey değildir. Listeyi değiştiren kişinin başlık satırını, ürün satırlarını ve kod sütununu bilinçli biçimde yönetmesi gerekir. Kodlar başlangıçta B sütununda hazır olarak görülür; makro çalıştırılmadan da dosya mevcut örnek değerleri gösterir. Bu durum yeni bir ürün için kod üretildiği anlamına gelmez: indirilen dosyanın içindeki mevcut kodlar son kaydedilen örnek durumdur.
VBA Makrosu Nasıl Çalışır
StokKoduOlusturma yordamı Sayfa1 üzerindeki A2 hücresinden başlayıp A sütunundaki son dolu hücreye kadar ilerler. Her satır için büyük Latin harfleri arasından on karakter seçer. Seçim VBA'nın Rnd işleviyle yapılır; seçilen karakterler bir metin içinde birleştirilir ve aynı satırın B sütununa yazılır. Makro, aday metni yazmadan önce ilgili B sütunu aralığında aynı metnin bulunup bulunmadığını EĞERSAY (CountIf) ile kontrol eder. Eşleşme varsa yeni aday üretmeyi dener. Böylece tek çalıştırmada oluşturduğu kodların listedeki diğer kodlarla çakışmaması amaçlanır.Kodlar rakam veya tire içermez; test edilen güncel dosyada üretilen bütün değerler tam on karakter ve büyük harftir. Kodların ürün adından türetilmesi söz konusu değildir. Örneğin Kitaplar satırının kodu kitabın adının kısaltması değildir; rastgele harf dizisidir. Ürün sınıfı, tedarikçi, tarih, depo yeri veya fiyat da kodun içine yerleştirilmez. Bu nedenle koddan ürün bilgisini geri okumak mümkün değildir. Ürün adı ile kod arasındaki ilişki, aynı satırdaki iki hücrenin birlikte tutulmasına dayanır.
Makro kodunda son satır A sütunundan saptanır. A sütununa alta yeni bir kayıt eklenirse sonraki çalıştırmada o satır da dolaşılır. Bununla birlikte yordam yalnız yeni satırları doldurmaz; aralıktaki bütün satırlar için yeniden kod üretir. Var olan bir ürünün B sütunundaki kodu yeniden çalıştırma sonrasında değişebilir. Dosya, değişmeyen ürün kimliği gerektiren gerçek bir stok sistemine doğrudan bağlanmadan önce bu davranışın hesaba katılması gerekir. Daha önce fatura, sipariş veya depo hareketinde kullanılan bir kodun sessizce değişmesi, kayıtların eşleştirilmesini güçleştirebilir.
Denetlenmiş İşlev ve Sınırlar
Güncel dosyanın özgün kopyası, ayrı bir Excel test klasöründe açıldı. Excel bağlantı sorgusunda dış çalışma kitabı bağlantısı ve veri bağlantısı bulunmadı. Sayfa ve VBA projesi açıldı; StokKoduOlusturma yordamı izole test kopyasında çalıştırıldı. Yirmi beş örnek satırın tamamında on büyük harfli kodlar oluştu ve test edilen çalıştırmada bu yirmi beş kod birbirinden farklıydı. Yordam ikinci kez çalıştırıldığında da aynı kapsamda yirmi beş farklı kod üretildi. Bu gözlem dosyanın örnek listede çalıştığını gösterir; daha büyük veya farklı yapıdaki her listede çakışmasız kimlik yönetimi için bir garanti oluşturmaz.EĞERSAY (CountIf) denetimi aynı çalışma sayfasındaki mevcut B aralığıyla sınırlıdır. Ayrı bir dosyada, önceki bir sürümde veya başka bir depoda kullanılmış kodların envanterini tutmaz. Rnd tarafından üretilen değerler güvenlik anahtarı ya da değiştirilemez resmî kimlik olarak değerlendirilmemelidir. Makroda boş stok adı için ayrı bir durdurma veya uyarı denetimi de yoktur: A sütununun son dolu satırına kadarki satırlar dolaşılır. Arada boş bir A hücresi bırakılması, o satıra kod yazılması ihtimalini ortadan kaldırmaz. Kullanıma alınacak listede boş satırlar, mükerrer ürün adları ve mevcut B kodlarının anlamı ayrıca kontrol edilmelidir.
Yordamın içindeki kod üretimi Sayfa1 adına bağlıdır. Kodları başka bir sayfaya kopyalamak ya da sayfa adını değiştirmek makronun çalışma varsayımını etkileyebilir. Makro ayrıca B sütununa değer yazar; B sütunundaki mevcut kodlar korunarak yalnız eksik kayıtların tamamlanması hedefleniyorsa mevcut yordam bu ihtiyaca göre uyarlanmadan çalıştırılmamalıdır. Dosyada kod değişiklikleri için işlem günlüğü, eski kod arşivi veya geri alma tablosu bulunmaz. Bu nedenle çalışma öncesinde dosyanın ayrı bir kopyasının saklanması, özellikle kodlar başka kayıtlarla eşleştirilecekse önemlidir.
Nasıl Kullanılır
Dosya Excel'de açıldıktan sonra önce Sayfa1'deki iki başlık ve altındaki örnek satırlar incelenir. A sütununa konulacak adların gerçekten tek tek tanımlanacak ürünleri mi, yoksa kategori başlıklarını mı temsil ettiği belirlenir. Gerekirse örnek satırlar ayrı bir kopyada gerçek listeyle değiştirilir. B sütununda başka bir sistemde kullanılan ve korunması gereken kodlar varsa, makro çalıştırılmadan önce o kodların yedeği alınır. Kullanıcı, makroların çalıştırılmasına ilişkin Excel güvenlik uyarısını dosyanın kaynağını değerlendirerek kendisi onaylar. Makro etkin değilse mevcut örnek kodlar görüntülenir, ancak yeni kod üretimi yapılmaz.StokKoduOlusturma yordamı çalıştırıldığında A2'den son dolu A satırına kadar her kaydın yanındaki B hücresi güncellenir. İşlem sonrasında B sütunundaki karakter uzunluğu, boş kod olup olmadığı ve aynı kodun iki satırda bulunup bulunmadığı gözden geçirilir. Özellikle listeye yeni bir satır eklendiyse son satırın kapsandığı ve başlık satırına dokunulmadığı doğrulanır. Kodlar dışarıya aktarılacaksa ürün adı ile kodun birlikte aktarılması gerekir; yalnız kod sütunu, hangi kodun hangi ada ait olduğunu açıklamaz. Ürün listesinin gerçek veri kaynağına geçirilmesi ayrıca planlanmalıdır; bu dosya otomatik senkronizasyon kurmaz.
Hangi İhtiyaçlar İçin Uygundur
Dosya, VBA'nın satır satır gezinme, karakter üretme ve aynı listede tekrar kontrolü kurma biçimini görmek isteyen Excel kullanıcıları için somut bir örnektir. Eğitimde, bir ürün adının yanına geçici harf kodu yazdırma akışını göstermek veya küçük bir örnek listeyle makro davranışını sınamak için kullanılabilir. Tek sayfa ve iki sütunlu düzen, kodların hangi satıra yazıldığını izlemeyi kolaylaştırır. Makronun çıktısı formülle hesaplanan bir hücre olmadığı için kod üretildikten sonra B sütunundaki değerler normal metin olarak saklanır. Bu da verinin kopyalanmasını kolaylaştırır; buna karşılık sonraki makro çalıştırmasında bütün değerlerin yeniden yazılacağı unutulmamalıdır.Sürekli kullanılacak stok takip uygulamalarında kalıcı benzersiz kimlik, farklı dosyalar arasında çakışma denetimi, ürün geçmişi, barkod standardı, yetki kaydı veya işlem günlüğü gibi gereksinimler olabilir. Bu dosyada bunlar yoktur. Bu özelliklere ihtiyaç duyuluyorsa örnek makro doğrudan üretim sisteminin yerine konmamalı; beklenen iş akışı ve veri saklama kuralları ayrıca tasarlanmalıdır. Kitap internetten bilgi çekmez, dış veritabanına yazmaz ve barkod görseli üretmez. Çıktı yalnız B sütunundaki on harfli metinlerdir.