Soru USERFORM ile STOK

Katılım
16 Ağustos 2021
Mesajlar
13
Excel Vers. ve Dili
Office 2016-32 Bit
Merhabalar, benim 6 ayrı fabrikadan gelen bir hammaddem var ve günlük gelen miktarı, işlenen miktarı ve mevcut durumunu yapmak istiyorum. Sütun olarak oluşturduğumda ya ayrı ayrı hepsini topluyor ya da çıkarıyor. Mevcut sayfamda gelen ve işlenen hammaddeleri tarihine göre raporlamak istemekteyim. Yardımcı olur musunuz? Anasayfa da bulunan butondan veri girişi yapılmaktadır. Acil şimdiden teşekkürler.
fabrika.xlsm - 60 KB
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Ayın 30 unda, Fabrika 1 için 5 birim gelmiş, 2 birim işlenmiş
Mevcut isimli sayfanızda B2 hücresinde ne yazacak?

Edit: Moderatör arkadaşlar ya bu başlığı ya diğerini silebilirler. Konuya nerede cevap verileceği karışıyor.
Lütfen konuya yeni başlık açmayın
 
Katılım
16 Ağustos 2021
Mesajlar
13
Excel Vers. ve Dili
Office 2016-32 Bit
Ayın 30 unda, Fabrika 1 için 5 birim gelmiş, 2 birim işlenmiş
Mevcut isimli sayfanızda B2 hücresinde ne yazacak?

Edit: Moderatör arkadaşlar ya bu başlığı ya diğerini silebilirler. Konuya nerede cevap verileceği karışıyor.
Lütfen konuya yeni başlık açmayın
Ayın 30 u için 3 yazılacak. 5-2 'den 3 . Tamamdır dikkate alacağım.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Mevcut sayfanız B2 hücresine yapıştırıp, sütununa kadar sürükleyerek çoğaltabilirisin.
H ve I sütunu önce ilgili sayfalarda her satırda toplama işleviyle G sütunlarını doldur
Sonra aşağıdaki formüle benzer şekilde onları da alabilirsin. Formülün ilk kısmındaki Topla Çarpım kısmını H sütunu için, "-" işaretinden sonra olan ToplaÇarpım formülü I sütunu için kullan
J sütununda sanırım H dan I yı çıkarınca olacak

=EĞER($A2="";"";TOPLA.ÇARPIM(($A2=KAYDIR(gelenhammadde!$A$2;;;BAĞ_DEĞ_DOLU_SAY(gelenhammadde!A:A)))*(KAYDIR(gelenhammadde!B$2;;;BAĞ_DEĞ_DOLU_SAY(gelenhammadde!A:A))))-TOPLA.ÇARPIM(($A2=KAYDIR(islenenhammadde!$A$2;;;BAĞ_DEĞ_DOLU_SAY(islenenhammadde!A:A)))*(KAYDIR(islenenhammadde!B$2;;;BAĞ_DEĞ_DOLU_SAY(islenenhammadde!A:A)))))
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Ya da hepsini yazayım karışacak.

B2 hücresine yaz, G sütununa kadar kopyala
=EĞER($A2="";"";TOPLA.ÇARPIM(($A2=KAYDIR(gelenhammadde!$A$2;;;BAĞ_DEĞ_DOLU_SAY(gelenhammadde!$A:$A)))*(KAYDIR(gelenhammadde!B$2;;;BAĞ_DEĞ_DOLU_SAY(gelenhammadde!$A:$A))))-TOPLA.ÇARPIM(($A2=KAYDIR(islenenhammadde!$A$2;;;BAĞ_DEĞ_DOLU_SAY(islenenhammadde!$A:$A)))*(KAYDIR(islenenhammadde!B$2;;;BAĞ_DEĞ_DOLU_SAY(islenenhammadde!$A:$A)))))

H2 için
=EĞER($A2="";"";TOPLA.ÇARPIM(($A2=KAYDIR(gelenhammadde!$A$2;;;BAĞ_DEĞ_DOLU_SAY(gelenhammadde!$A:$A)))*(KAYDIR(gelenhammadde!H$2;;;BAĞ_DEĞ_DOLU_SAY(gelenhammadde!$A:$A)))))

I2 için
=EĞER($A2="";"";TOPLA.ÇARPIM(($A2=KAYDIR(islenenhammadde!$A$2;;;BAĞ_DEĞ_DOLU_SAY(islenenhammadde!$A:$A)))*(KAYDIR(islenenhammadde!H$2;;;BAĞ_DEĞ_DOLU_SAY(islenenhammadde!$A:$A)))))

J2 için
=H2-I2
 
Katılım
16 Ağustos 2021
Mesajlar
13
Excel Vers. ve Dili
Office 2016-32 Bit
Ya da hepsini yazayım karışacak.

B2 hücresine yaz, G sütununa kadar kopyala
=EĞER($A2="";"";TOPLA.ÇARPIM(($A2=KAYDIR(gelenhammadde!$A$2;;;BAĞ_DEĞ_DOLU_SAY(gelenhammadde!$A:$A)))*(KAYDIR(gelenhammadde!B$2;;;BAĞ_DEĞ_DOLU_SAY(gelenhammadde!$A:$A))))-TOPLA.ÇARPIM(($A2=KAYDIR(islenenhammadde!$A$2;;;BAĞ_DEĞ_DOLU_SAY(islenenhammadde!$A:$A)))*(KAYDIR(islenenhammadde!B$2;;;BAĞ_DEĞ_DOLU_SAY(islenenhammadde!$A:$A)))))

H2 için
=EĞER($A2="";"";TOPLA.ÇARPIM(($A2=KAYDIR(gelenhammadde!$A$2;;;BAĞ_DEĞ_DOLU_SAY(gelenhammadde!$A:$A)))*(KAYDIR(gelenhammadde!H$2;;;BAĞ_DEĞ_DOLU_SAY(gelenhammadde!$A:$A)))))

I2 için
=EĞER($A2="";"";TOPLA.ÇARPIM(($A2=KAYDIR(islenenhammadde!$A$2;;;BAĞ_DEĞ_DOLU_SAY(islenenhammadde!$A:$A)))*(KAYDIR(islenenhammadde!H$2;;;BAĞ_DEĞ_DOLU_SAY(islenenhammadde!$A:$A)))))

J2 için
=H2-I2
Şuan deneyemiyorum ama yazdığım kodlarımı silmeyeceğim o zaman değil mi onlar kalacak ben bunları sayfada söylediğiniz hücrelere geçireceğim.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Ben hepsi için formül yazmıştım. Kodları hiç farketmedim ki.
 
Katılım
16 Ağustos 2021
Mesajlar
13
Excel Vers. ve Dili
Office 2016-32 Bit
Ben hepsi için formül yazmıştım. Kodları hiç farketmedim ki.
Rica etsem kod olarak bakabilir misiniz? Benim için önemli de bu. Modüllerde hesaplama da yapmaya çalıştım ama emin değilim asla. Anasayfa yazan sayfadaki butondan baslayacak girişler vs. Ona göre userformu tamamlayıp, en son tasarımıyla bitireceğim.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
GidenHammdde formunuzdaki kaydet butonun kodlarını silin ve aşağıdakini yapıştırın

C++:
Private Sub btnkaydet_Click()
Dim hmmdcikis As Worksheet 'Stok çıkışı
Dim hammadde As Worksheet 'Anahammade
    Set hammadde = Sheets("MEVCUT")
    Set hmmdcikis = Sheets("islenenhammadde")
    cvp = MsgBox("Hammadde çıkışını onaylıyor musunuz?", vbYesNo, "")
    If cvp = vbNo Then
    GoTo Son
    End If
    'Stok çıkış sayfasına kayıt
    hmmdcikis.Rows(2).Insert
    hmmdcikis.Range("A2").Value = Date
    hmmdcikis.Range("B2").Value = txt1.Value
    hmmdcikis.Range("C2").Value = txt2.Value
    hmmdcikis.Range("D2").Value = txt3.Value
    hmmdcikis.Range("E2").Value = txt4.Value
    hmmdcikis.Range("F2").Value = txt5.Value
    hmmdcikis.Range("G2").Value = txt6.Value
    For i = 1 To 6
        hmmdcikis.Range("H2") = hmmdcikis.Range("H2") + Controls("txt" & i).Value
    Next i
    If hammadde.Range("A2") <> Date Then hammadde.Rows(2).Insert
        hammadde.Rows(2).Insert: hammadde.Range("A2") = Date
    End If
    hammadde.Range("B2") = hammadde.Range("B2") - txt1.Value
    hammadde.Range("C2") = hammadde.Range("B2") - txt2.Value
    hammadde.Range("D2") = hammadde.Range("B2") - txt3.Value
    hammadde.Range("E2") = hammadde.Range("B2") - txt4.Value
    hammadde.Range("F2") = hammadde.Range("B2") - txt5.Value
    hammadde.Range("G2") = hammadde.Range("B2") - txt6.Value
    For i = 1 To 6
        hammadde.Range("H2") = hammadde.Range("H2") - Controls("txt" & i).Value
    Next i
    hammadde.Range("J2") = hammadde.Range("H2") - hammadde.Range("I2")

MsgBox "Hammadde çıkışı kaydedildi."
Unload Me
Son:
Set hammadde = Nothing: Set gelenhmmd = Nothing
End Sub
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Gelenhammadde formunuz içinde kaydet butonunun kodlarını aşağıdaki gibi değiştirin
C++:
Private Sub btnkaydet_Click()
Dim hammadde As Worksheet 'Anahammade
Dim gelenhmmd As Worksheet 'Hammadde girişi

    Set hammadde = Sheets("MEVCUT")
    Set gelenhmmd = Sheets("gelenhammadde")
    cvp = MsgBox("Hammadde girişini onaylıyor musunuz?", vbYesNo, "")
    If cvp = vbNo Then
    GoTo Son
    End If
    'Stok anaform
    gelenhmmd.Rows(2).Insert
    gelenhmmd.Range("A2").Value = Date
    gelenhmmd.Range("B2").Value = txt1.Value
    gelenhmmd.Range("C2").Value = txt2.Value
    gelenhmmd.Range("D2").Value = txt3.Value
    gelenhmmd.Range("E2").Value = txt4.Value
    gelenhmmd.Range("F2").Value = txt5.Value
    gelenhmmd.Range("G2").Value = txt6.Value
    For i = 1 To 6
        gelenhmmd.Range("H2") = gelenhmmd.Range("H2") + Controls("txt" & i).Value
    Next i
    If hammadde.Range("A2") <> Date Then
        hammadde.Rows(2).Insert: hammadde.Range("A2") = Date
    End If
    hammadde.Range("B2") = hammadde.Range("B2") + txt1.Value
    hammadde.Range("C2") = hammadde.Range("B2") + txt2.Value
    hammadde.Range("D2") = hammadde.Range("B2") + txt3.Value
    hammadde.Range("E2") = hammadde.Range("B2") + txt4.Value
    hammadde.Range("F2") = hammadde.Range("B2") + txt5.Value
    hammadde.Range("G2") = hammadde.Range("B2") + txt6.Value
    For i = 1 To 6
        hammadde.Range("H2") = hammadde.Range("H2") + Controls("txt" & i).Value
    Next i
    hammadde.Range("J2") = hammadde.Range("H2") - hammadde.Range("I2")
MsgBox "Hammadde girişi kaydedildi."
Unload Me
Son:
Set hammadde = Nothing: Set gelenhmmd = Nothing
End Sub
 
Katılım
16 Ağustos 2021
Mesajlar
13
Excel Vers. ve Dili
Office 2016-32 Bit
Gelenhammadde formunuz içinde kaydet butonunun kodlarını aşağıdaki gibi değiştirin
C++:
Private Sub btnkaydet_Click()
Dim hammadde As Worksheet 'Anahammade
Dim gelenhmmd As Worksheet 'Hammadde girişi

    Set hammadde = Sheets("MEVCUT")
    Set gelenhmmd = Sheets("gelenhammadde")
    cvp = MsgBox("Hammadde girişini onaylıyor musunuz?", vbYesNo, "")
    If cvp = vbNo Then
    GoTo Son
    End If
    'Stok anaform
    gelenhmmd.Rows(2).Insert
    gelenhmmd.Range("A2").Value = Date
    gelenhmmd.Range("B2").Value = txt1.Value
    gelenhmmd.Range("C2").Value = txt2.Value
    gelenhmmd.Range("D2").Value = txt3.Value
    gelenhmmd.Range("E2").Value = txt4.Value
    gelenhmmd.Range("F2").Value = txt5.Value
    gelenhmmd.Range("G2").Value = txt6.Value
    For i = 1 To 6
        gelenhmmd.Range("H2") = gelenhmmd.Range("H2") + Controls("txt" & i).Value
    Next i
    If hammadde.Range("A2") <> Date Then
        hammadde.Rows(2).Insert: hammadde.Range("A2") = Date
    End If
    hammadde.Range("B2") = hammadde.Range("B2") + txt1.Value
    hammadde.Range("C2") = hammadde.Range("B2") + txt2.Value
    hammadde.Range("D2") = hammadde.Range("B2") + txt3.Value
    hammadde.Range("E2") = hammadde.Range("B2") + txt4.Value
    hammadde.Range("F2") = hammadde.Range("B2") + txt5.Value
    hammadde.Range("G2") = hammadde.Range("B2") + txt6.Value
    For i = 1 To 6
        hammadde.Range("H2") = hammadde.Range("H2") + Controls("txt" & i).Value
    Next i
    hammadde.Range("J2") = hammadde.Range("H2") - hammadde.Range("I2")
MsgBox "Hammadde girişi kaydedildi."
Unload Me
Son:
Set hammadde = Nothing: Set gelenhmmd = Nothing
End Sub
Öncelikle çok çok teşekkür ederim. Sadece anlamadığım kısım mevcut sayfamda gelen ve işleneni fabrikalara göre sadece fabrika-1 için yani b sütunu için yapıyor mevcut sayfamda onu diğerlerine de uygulamak isterim. Karıştırdım biraz neresi olduğunu söylerseniz düzelteyim bir de MEVCUT sayfamda Günlük Toplam İşlenen Hammaddemi yazdırmıyor nasıl eklemeliyim? Son olarak da bu verilerimi yine kod olarak mesela eylül ayı için örneğin 09.2021 için toplam gelen hammaddeme bakmak istesem nasıl yapmalıyım, bir öneriniz var mıdır?
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Gİden hammadde kodunuzda aşağıdaki satırda kırmızı olan kısmı direkt silin, sadece siyah olanlar kalsın, tekrar deneyin.
If hammadde.Range("A2") <> Date Then hammadde.Rows(2).Insert
hammadde.Rows(2).Insert: hammadde.Range("A2") = Date
End If
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,316
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Lütfen profilinizde yazan aşağıdaki ifadeyi kullanmış olduğunuz ofis sürümüne göre güncellemenizi rica ederim.

Excel Vers. ve Dili de
 
Üst