• DİKKAT

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

Az Kalan ürünü Gösterme

Katılım
20 Aralık 2006
Mesajlar
939
Excel Vers. ve Dili
türkçe
Kod:
Sheets("hesap").Cells(sat, "K") = Format(Now, "dd.MM.yyyy")
            
            s1 = Sheets("hesap").Cells(sat, "A")
            b1 = False
            For j = 1 To Worksheets.Count
                If Sheets(j).Name <> "hesap" And Sheets(j).Name <> "alarm" Then
                    Set r1 = Sheets(j).Range("A1:A65536").Find(s1, , xlValues, xlWhole)
                    If Not r1 Is Nothing Then
                        b1 = True
                        Exit For
                    End If
                End If
            Next j
            If Not b1 Then
                l1 = Sheets("alarm").Cells(65536, "A").End(xlUp).Row + 1
                Sheets("alarm").Cells(l1, "A") = s1
                Sheets("alarm").Cells(l1, "B") = Sheets("hesap").Cells(sat, "C")
                Sheets("alarm").Cells(l1, "C") = Format(Now, "dd.MM.yyyy")
                Sheets("alarm").Cells(l1, "D") = Sheets(i).Name
                MsgBox (s1 & " modeli stokta bulunamadi !")
            End If


Burda Sıfır Olan Ürünü Alarm Sayfasına Atıyor

Bunu 1 tane Kalınca Alarm1 Sayfasına Nasıl Yapabiliriz
 
Siteye Girmeyeli Epey Zaman Oldu Ama Baya Değişmiş
Eskiden Sorulan Sorulara En Azından Bir Yanıt Bir Tavsiye Verilirdi
4 tür Konu Açıyorum Bir Yorum Bile Yok
Excel.web.tr eski Excel.web.tr değil anlaşılan
 
Merhaba,

Küçük bir örnek dosya ekleyerek, istediklerinizi dosya üzerinde açıklarmısınız.

.
 
dosya ekte

hocam dosya ekte
olmayan ürünü gösteriyor alarm sayfasında
ama birde kritik stok uyarısı yapmak istiyorum
mesela 1 tane kalıncada uyarı versin ve alarm 1 sayfasına atsın
 

Ekli dosyalar

Konuyu anlamaya çalışıyorum.

Örnek, zippo sayfasında stokta kaç tane kaldığını nerden görmemiz gerekiyor. Sütunları inceledim fakat bulamadım.

.
 
mesela aynı üründen 5 tane girdik
arabul çalıştırıp b sütünundaki sayıyı yazınca
o satırı silip hesap sayfasına atıyor
eğer bittiyse alarm sayfasında gösteriyor

benim istediğim biten değilde mesela 1 satır varsa uyarı vermesi
 
Silme ve mesaj satırlarını eklemedim. O kısımları siz eklersniz.İnceleyip eksikleri ve olması gerekenleri yazarmısınız.

Kod:
Sub StokBul()
Dim Sayfa, S1, S2, S3 As Worksheet
Dim Sor, Sat, Sat1, Sat2 As Long, Bul As Range
Application.ScreenUpdating = False
Set S1 = Sheets("hesap"): Set S2 = Sheets("alarm"): Set S3 = Sheets("alarm1")
Sor = InputBox("Arancak Veriyi Giriniz..", "BUL")
If Sor = "" Then Exit Sub
Sat = S1.[A65536].End(3).Row + 1
    For Each Sayfa In Worksheets
        If Sayfa.Name <> "hesap" And Sayfa.Name <> "alarm" And Sayfa.Name <> "alarm1" Then
            Set Bul = Sayfa.[B:B].Find(Sor, , xlValues, xlWhole)
            If Not Bul Is Nothing Then
                S1.Range("A" & Sat & ":N" & Sat).Value = Sayfa.Range("A" & Bul.Row & ":N" & Bul.Row).Value
                S1.Cells(Sat, "K") = Format(Now, "dd.mm.yyyy")
                S1.Cells(Sat, "O") = Sayfa.Name
                Sayfa.Rows(Bul.Row).Delete
            End If
            Set Bul = Nothing
            Sat1 = 1: Sat2 = 1
            For i = 2 To Sat
                If WorksheetFunction.CountIf(Sayfa.Range("B:B"), S1.Cells(i, "B").Value) = 0 Then
                    Sat1 = Sat1 + 1
                    S2.Cells(Sat1, "A") = S1.Cells(i, "A")
                    S2.Cells(Sat1, "B") = S1.Cells(i, "C")
                    S2.Cells(Sat1, "C") = S1.Cells(i, "K")
                    S2.Cells(Sat1, "D") = S1.Cells(i, "O")
                End If
                If WorksheetFunction.CountIf(Sayfa.Range("B:B"), S1.Cells(i, "B").Value) = 1 Then
                    Sat2 = Sat2 + 1
                    S3.Cells(Sat2, "A") = S1.Cells(i, "A")
                    S3.Cells(Sat2, "B") = S1.Cells(i, "C")
                    S3.Cells(Sat2, "C") = S1.Cells(i, "K")
                    S3.Cells(Sat2, "D") = S1.Cells(i, "O")
                End If
            Next i
        End If
    Next Sayfa
Set S1 = Nothing: Set S2 = Nothing: Set S3 = Nothing
Application.ScreenUpdating = True
End Sub
 
Hocam Ekledimde Çalıştramadım Bir Sorun Var Hehalde
Stokta 1 tane kalırsa aynı üründen
Yani mesela zippo sayfasında aynı satırdan 1 tane kalırsa alarm1 e geçmesini istiyorum
yani kritik stok
bu sayfaları 2 sayfa değilde daha fazla düşünün hocam her markaya bir sayfa açıyorum
bitenler normalde alarm sayfasına atıyor
az kalanlarda kritik stok alarm1 e atması lazım ok
şimdiden çok teşekkür
 
Sayfalara sınırlama koymamıştım.

Eki inceleyin.

Humidor sayfasında 4002 de denedim bir sorun yok gibi.Aktarılan sayfalarda silme olacakmı bilmediğim için o kısımları size bırakmıştım.

.
 

Ekli dosyalar

hocam çok saolun oldu gibi ama
şöyle bir şey var mesela
bir sayfaya kafanıza göre aynı iki üründen
ikişer tane girin bir birinden
birde diğerinden düşün mesela
alarm ve alarm1 sayfasına bakarsanız
sorunu görebilirsiniz
 
Önce eklediğim tablodaki verilerden gidelim.

Humidor sayfasındaki 4002 yi aratınca Humidor sayfasında 4002 olan bir tane veri siliniyor ve hesap taplosuna yazılıyor. Daha sonra hesap tablosundaki veri sayfalarda aranıyor artık bu veri olmadığı için alarm sayfasına aktarılıyor.

Diğer işlemleri uygulamamış gibi ikinci veri girmeye örneğinden gidersek.

Humidor sayfasında 3. satırı 7. satıra kopyaladım. ( örnek olaması açısından )

Yine 4002 aratırdım Humidor sayfasında buldu ve hesap tablosuna aktardı bu arada Humidor sayfasında bulunun 4002 lerden biri silindi. Hesap tablosundaki 4002 değerini sayfalarda aradık Humidor sayfasında 1 tane kaldığı için bunu alarm1 sayfasına yazdırdık.

Benim anladığım ve yaptığım buydu.

.
 
hocam tamam
ben bir gerçek verilerle giriyim
deniyim büyük ihtimalle dediğiniz gibi
sorunsuz olması lazım deneyip gerekliy bilgiyi burdan yazıyorum
çok saolun
 
hocam olmuyor :(
sadece 1 tane kalınca alarma da atıyor bende
hem alarm hem alarm1 e atıyor sonra bitince bir daha alarm a atıyor
 
Veri girdikten sonra kodu çalıştırmadan tabloyu eklermisiniz. Hangi veriyi arattırdığınızda hata alıyorsunuz? Olan ve olmaması gerekenleride açıklarmısınız.

.
 
mesela aynı üründen 2 tane olsun herhangi
4002 kod mesela
bir tane düşün sonra
hem alarm hem alarm1 e bakar mısınız
ikisinede atıyor

stokta kalamyan
alarm
1 tane kalan
alarm1
 
Açıklamanızı tam olarak anlayamadım. Bana gönderdiğiniz dosyadamı denemem gerekiyor.? Yoksa benim eklediğim demi?

Birde konuyu tam anlamadığım için hesap, alarm ve alarm1 sayfalarına silme kodu eklemedim. O kısımlara gerekli düzeltmeyi mantığına göre siz yaparsınız diye düşündüm. Hata bundan kaynaklanıyor olabilir mi?

.
 
Son düzenleme:
Hocam ben Anlatamadım Zannedersem

Hocam Şöyle Tam Detaylı Anlatayım
Size Yolladığım gerçek dosya Hani Düzenlersek onda düzenleyelim diye yolladım

Sorumu Şöyle Net Yazıyım

1. si modul çalıştığında yazdığım ürünü tüm sayfalarda aratıp bulduğu ürünün satırını silip hesap sayfasına atacak (bu 1 satırdan fazla ise içinden birini)

2. si girdiğim ürün numarasını sayfalarda arayıp 1 tane varsa alarm1 sayfasına
eğer hiç kalmadıysa alarm sayfasına atmasını istiyorum

Alarm = biten ürünler
alarm1 = kritik Stok
Hesap = Yaptığım satışlar

Bu Prgramda yapmak istediğim budur hocam
 
Söylediğim gibi silme kodlarını ekleyince sorun çözülüyor.

Yalnız alarm ve alarm1 sayfalarına hesap sayfasından benzersiz aktarılacaksa kodu ona göre yeniden düzenlemek gerekir.

Kod:
Sub StokBul()
Dim Sayfa, S1, S2, S3 As Worksheet
Dim Sor, Sat1, Sat2, Sat3 As Long, Bul As Range
Set S1 = Sheets("hesap"): Set S2 = Sheets("alarm"): Set S3 = Sheets("alarm1")
Application.ScreenUpdating = False
Sor = InputBox("Arancak Veriyi Giriniz..", "BUL")
If Sor = "" Then Exit Sub
S2.Range("A2:D65536").ClearContents
S3.Range("A2:D65536").ClearContents
Sat1 = S1.[A65536].End(3).Row + 1
    For Each Sayfa In Worksheets
        If Sayfa.Name <> "hesap" And Sayfa.Name <> "alarm" And Sayfa.Name <> "alarm1" Then
            Set Bul = Sayfa.[B:B].Find(Sor, , xlValues, xlWhole)
            If Not Bul Is Nothing Then
                S1.Range("A" & Sat1 & ":N" & Sat1).Value = Sayfa.Range("A" & Bul.Row & ":N" & Bul.Row).Value
                S1.Cells(Sat1, "K") = Format(Now, "dd.mm.yyyy")
                S1.Cells(Sat1, "O") = Sayfa.Name
                Sayfa.Rows(Bul.Row).Delete
            End If
            Set Bul = Nothing
            Sat2 = 1: Sat3 = 1
            For i = 2 To Sat1
                If WorksheetFunction.CountIf(Sayfa.Range("B:B"), S1.Cells(i, "B").Value) = 0 Then
                    Sat2 = Sat2 + 1
                    S2.Cells(Sat2, "A") = S1.Cells(i, "A")
                    S2.Cells(Sat2, "B") = S1.Cells(i, "C")
                    S2.Cells(Sat2, "C") = S1.Cells(i, "K")
                    S2.Cells(Sat2, "D") = S1.Cells(i, "O")
                End If
                If WorksheetFunction.CountIf(Sayfa.Range("B:B"), S1.Cells(i, "B").Value) = 1 Then
                    Sat3 = Sat3 + 1
                    S3.Cells(Sat3, "A") = S1.Cells(i, "A")
                    S3.Cells(Sat3, "B") = S1.Cells(i, "C")
                    S3.Cells(Sat3, "C") = S1.Cells(i, "K")
                    S3.Cells(Sat3, "D") = S1.Cells(i, "O")
                End If
            Next i
        End If
    Next Sayfa
Set S1 = Nothing: Set S2 = Nothing: Set S3 = Nothing
Application.ScreenUpdating = True
End Sub

.
 
hocam her seferinde alarm alarm1 sayfasını temizleyip işlem yaparsak sorun kalmaz kanımca
çok teşekkür ettim ellerinize sağlık
 
Geri
Üst