• DİKKAT

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

Soru GÜN SONU DEVRİ

Katılım
25 Mayıs 2010
Mesajlar
480
Excel Vers. ve Dili
Office 2019
64bit
Tr
Win 10
Merhabalar,
Yüklediğim dosyada KASA DEFTERİ sayfasında gün sonunda çıktı almam gerekiyor ama DEVRİ nasıl yapacağım nereye yapacağım konusunda kararsızım?
-Çıktı alırken tarihi manuel seçmeden sadece o günün çıktısını alabilir miyim?
-Tarihi otomatik attığı için sadece o günün toplamını manuel seçmeden yapabilir miyim?
-Gün sonu toplamını çıktı alırken sayfanın altına nasıl ekleyebilirim?
yardımlarınız için teşekkürler. İyi çalışmalar
 

Ekli dosyalar

Son düzenleme:
Aşağıdaki makroyu deneyiniz. Makro önce dolu hücreleri yani mevcut gün verilerini yazdırır, sonra da sayfayı boşaltıp devir tutarını ilgili yere yazar:

PHP:
Sub gundevir()
Application.EnableEvents = False
bugun = Date
eski = Cells(Rows.Count, "A").End(3).Row
giren = WorksheetFunction.Sum(Range("C1:C" & eski))
cikan = WorksheetFunction.Sum(Range("D1:D" & eski))
devir = giren - cikan

Range("A1:E" & eski).PrintOut Copies:=1, Collate:=True
Range("A3:E" & eski).ClearContents
[C2] = devir
[E2] = bugun
Application.EnableEvents = True

End Sub
 
Aşağıdaki makroyu deneyiniz. Makro önce dolu hücreleri yani mevcut gün verilerini yazdırır, sonra da sayfayı boşaltıp devir tutarını ilgili yere yazar:

PHP:
Sub gundevir()
Application.EnableEvents = False
bugun = Date
eski = Cells(Rows.Count, "A").End(3).Row
giren = WorksheetFunction.Sum(Range("C1:C" & eski))
cikan = WorksheetFunction.Sum(Range("D1:D" & eski))
devir = giren - cikan

Range("A1:E" & eski).PrintOut Copies:=1, Collate:=True
Range("A3:E" & eski).ClearContents
[C2] = devir
[E2] = bugun
Application.EnableEvents = True

End Sub
öncelikle bu sayfada kullanılan kodda A hücresine veri girince tarihi otomatik olarak atıyor onu da belirtmek isterim.

Kodu girince bu hatayı verdi

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B:B")) Is Nothing Then
Target.Offset(0, 4) = Format(Now, "dd.mm.yyyy")
End If
End Sub
 
Verdiğim kodu sayfaya değil herhangi bir modüle yapıştırıp deneyin. Sayfada mevcut kodlar bu makronun çalışmasına, bu makro da mevcut kodların çalışmasına engel değil.
 
Verdiğim kodu sayfaya değil herhangi bir modüle yapıştırıp deneyin. Sayfada mevcut kodlar bu makronun çalışmasına, bu makro da mevcut kodların çalışmasına engel değil.
Modüle yapıştırdım
 

Ekli dosyalar

  • Adsız.png
    Adsız.png
    101.5 KB · Görüntüleme: 8
End Sub'ın devamındaki kodlar nedir? Benim kodlarımda öyle bir şey yok. Onları silin ya da ayrı bir makro içine alın.
 
End Sub'ın devamındaki kodlar nedir? Benim kodlarımda öyle bir şey yok. Onları silin ya da ayrı bir makro içine alın.
Teşekkür ederim. kod adını gundevir yapınca düzeldi ama çıktı alınca sayfayı siliyor ve sayfanın altına toplamları ve devri yazmıyor. İlerleyen zamanlarda yazılan değerleri toplamak için verileri silmemesi gerekiyor. Son olarak da çıktıyı kendim almak istiyorum yani kodu çalıştırmadan yazdır ikonuyla sadece o günü yazdırmam mümkün mü?
 
Son düzenleme:
Ekli dosyayı inceleyiniz. Makroyu ikiye böldüm. Biri sadece o günü yazdırıyor. diğeri ise gün devri yapıyor. Gün devri yaparken sayfayı temizliyor ve günün özetini Arşiv sayfasına kaydediyor.
 

Ekli dosyalar

Ekli dosyayı inceleyiniz. Makroyu ikiye böldüm. Biri sadece o günü yazdırıyor. diğeri ise gün devri yapıyor. Gün devri yaparken sayfayı temizliyor ve günün özetini Arşiv sayfasına kaydediyor.
Teşekkürler ancak ben eksik anlattım galiba kusura bakmayın.
GÜN SONU YAZDIR butonu çıktı vermiyor ama ilk yazdığınız kodta direkt yazdırmıştı.
Arşive totalleri atıyor ama bana arşivin tamamı gerekli. Çünki oradaki personel ve bazı şahısların ay sonu hesapları çıkartılıyor. Bunun için de tüm bilgilerin kalması gerekiyor. Yani arşivi kullanamam
Giriş ve Çıkışların toplamını çıktı aldığım için sayfanın altına yazması gerekiyor. Arşive atmak yerine A sütununa DEVİR yazınca toplamları vermesi,
ya da butona tıklayınca açıklama kısmına TOPLAMLAR yazıp toplamları alt satıra verip çıktı alması mümkün mü?
Yeni işlemi güncellediğim yeni dosyaya yapmanızı rica ederim ve minimum 10000 satıra kadar kullanılabilir olması.
teşekkür ederim
 

Ekli dosyalar

Son düzenleme:
A sütununa veri girdiğinizde E sütununa tarih atması ve A sütununa DEVİR yazdığınızda C sütununa önceki günün devir tutarını yazması için KASA DEFTERİ sayfasının kod bölümündeki kodları aşağıdakiyle değiştirin:

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("A2:A" & Rows.Count)) Is Nothing Then GoTo 10
    If Selection.Count > 1 Then Exit Sub
    Target.Offset(0, 4) = Format(Now, "dd.mm.yyyy")
    If Target = "DEVİR" Or Target = "devir" Or Target = "Devir" Then
        dun = Target.Offset(-1, 4)
        giren = WorksheetFunction.SumIf(Range("E2:E" & Target.Row - 1), dun, Range("C2:C" & Target.Row - 1))
        cikan = WorksheetFunction.SumIf(Range("E2:E" & Target.Row - 1), dun, Range("D2:D" & Target.Row - 1))
        [g28] = dun
        Target.Offset(0, 2) = giren - cikan
    End If
10:
    If Intersect(Target, Range("G1")) Is Nothing Then Exit Sub
    Son = Cells(Rows.Count, "A").End(3).Row
    tarih = Format(Target.Value, "dd.mm.yyyy")
        ActiveSheet.Range("$A$1:$E$" & Son).AutoFilter Field:=5, Criteria1:= _
        tarih
End Sub

Yazdırma ile ilgili de aynı kod, G1 hücresine bir tarih yazdığınızda o tarihi filtreler, filtreden sonra o sayfayı yazdırabilirsiniz.
 
T
A sütununa veri girdiğinizde E sütununa tarih atması ve A sütununa DEVİR yazdığınızda C sütununa önceki günün devir tutarını yazması için KASA DEFTERİ sayfasının kod bölümündeki kodları aşağıdakiyle değiştirin:

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("A2:A" & Rows.Count)) Is Nothing Then GoTo 10
    If Selection.Count > 1 Then Exit Sub
    Target.Offset(0, 4) = Format(Now, "dd.mm.yyyy")
    If Target = "DEVİR" Or Target = "devir" Or Target = "Devir" Then
        dun = Target.Offset(-1, 4)
        giren = WorksheetFunction.SumIf(Range("E2:E" & Target.Row - 1), dun, Range("C2:C" & Target.Row - 1))
        cikan = WorksheetFunction.SumIf(Range("E2:E" & Target.Row - 1), dun, Range("D2:D" & Target.Row - 1))
        [g28] = dun
        Target.Offset(0, 2) = giren - cikan
    End If
10:
    If Intersect(Target, Range("G1")) Is Nothing Then Exit Sub
    Son = Cells(Rows.Count, "A").End(3).Row
    tarih = Format(Target.Value, "dd.mm.yyyy")
        ActiveSheet.Range("$A$1:$E$" & Son).AutoFilter Field:=5, Criteria1:= _
        tarih
End Sub

Yazdırma ile ilgili de aynı kod, G1 hücresine bir tarih yazdığınızda o tarihi filtreler, filtreden sonra o sayfayı yazdırabilirsiniz.
Teşekkür ederim. Yarın deneyip bilgi vereceğim.
 
A sütununa veri girdiğinizde E sütununa tarih atması ve A sütununa DEVİR yazdığınızda C sütununa önceki günün devir tutarını yazması için KASA DEFTERİ sayfasının kod bölümündeki kodları aşağıdakiyle değiştirin:

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("A2:A" & Rows.Count)) Is Nothing Then GoTo 10
    If Selection.Count > 1 Then Exit Sub
    Target.Offset(0, 4) = Format(Now, "dd.mm.yyyy")
    If Target = "DEVİR" Or Target = "devir" Or Target = "Devir" Then
        dun = Target.Offset(-1, 4)
        giren = WorksheetFunction.SumIf(Range("E2:E" & Target.Row - 1), dun, Range("C2:C" & Target.Row - 1))
        cikan = WorksheetFunction.SumIf(Range("E2:E" & Target.Row - 1), dun, Range("D2:D" & Target.Row - 1))
        [g28] = dun
        Target.Offset(0, 2) = giren - cikan
    End If
10:
    If Intersect(Target, Range("G1")) Is Nothing Then Exit Sub
    Son = Cells(Rows.Count, "A").End(3).Row
    tarih = Format(Target.Value, "dd.mm.yyyy")
        ActiveSheet.Range("$A$1:$E$" & Son).AutoFilter Field:=5, Criteria1:= _
        tarih
End Sub

Yazdırma ile ilgili de aynı kod, G1 hücresine bir tarih yazdığınızda o tarihi filtreler, filtreden sonra o sayfayı yazdırabilirsiniz.

Öncelikle ilginiz için teşekkür ederim. (y)

Vermiş olduğunuz kodu kullanamadım o yüzden sayfada yeni düzenlemeler yapıp dosyayı yeniden yükledim. Artık sizden son ricam
KASA DEFTERİ sayfasında F sütunundaki içinde bulunulan günün verilerini YAZDIR butonu ile Samsung SCX-4x21 Series (USB003) yazıcısından yazdırmayı ve HOME butonuna tıklayınca sayfanın başına gelmesini talep ediyorum. Yardımlarınız için teşekkür eder saygılar sunarım.
 

Ekli dosyalar

Son düzenleme:
Aşağıdaki makroları deneyiniz. YAzıcı seçimi konusunda makro kaydet ile doğru kodları elde edip uyarlamanız gerekiyor:

PHP:
Sub SuzYaz()
a = Sheets("     KASA DEFTERİ      ").Cells(Rows.Count, "F").End(3).Row
gun = Sheets("     KASA DEFTERİ      ").Cells(a, "F").Value
    Sheets("     KASA DEFTERİ      ").Range("$A$3:$F$" & a).AutoFilter Field:=6, Criteria1:=gun
    Sheets("     KASA DEFTERİ      ").PrintOut Copies:=1, ActivePrinter:="USB003: üzerindeki Samsung SCX-4x21", Collate:=True, _
        IgnorePrintAreas:=False
Sheets("     KASA DEFTERİ      ").Range("$A$3:$F$" & a).AutoFilter
Sheets("     KASA DEFTERİ      ").Range("$A$3:$F$" & a).AutoFilter
End Sub

PHP:
Sub sayfabasi()
    Sheets("     KASA DEFTERİ      ").Activate
    Sheets("     KASA DEFTERİ      ").Range("B4").Select
End Sub
 
Aşağıdaki makroları deneyiniz. YAzıcı seçimi konusunda makro kaydet ile doğru kodları elde edip uyarlamanız gerekiyor:

PHP:
Sub SuzYaz()
a = Sheets("     KASA DEFTERİ      ").Cells(Rows.Count, "F").End(3).Row
gun = Sheets("     KASA DEFTERİ      ").Cells(a, "F").Value
    Sheets("     KASA DEFTERİ      ").Range("$A$3:$F$" & a).AutoFilter Field:=6, Criteria1:=gun
    Sheets("     KASA DEFTERİ      ").PrintOut Copies:=1, ActivePrinter:="USB003: üzerindeki Samsung SCX-4x21", Collate:=True, _
        IgnorePrintAreas:=False
Sheets("     KASA DEFTERİ      ").Range("$A$3:$F$" & a).AutoFilter
Sheets("     KASA DEFTERİ      ").Range("$A$3:$F$" & a).AutoFilter
End Sub

PHP:
Sub sayfabasi()
    Sheets("     KASA DEFTERİ      ").Activate
    Sheets("     KASA DEFTERİ      ").Range("B4").Select
End Sub
bunu yüklediğim dosyaya eklemeniz mümkün mü acaba? diğer kodların bozulmasından çekiniyorum.
 
Herhangi bir Module içine kopyalayabilirsiniz. Ya da VBA penceresinde Insert menüsünden Module'yi seçip açılan sayfaya yapıştırabilirsiniz. Daha sonra da sayfadaki düğmelerinize sağ tıklayıp Makro ata diyerek SuzYaz ve sayfabasi makrolarını seçebilirsiniz.
 
Herhangi bir Module içine kopyalayabilirsiniz. Ya da VBA penceresinde Insert menüsünden Module'yi seçip açılan sayfaya yapıştırabilirsiniz. Daha sonra da sayfadaki düğmelerinize sağ tıklayıp Makro ata diyerek SuzYaz ve sayfabasi makrolarını seçebilirsiniz.

Teşekkürler @YUSUF44
HOME butonu çalıştı. Tarihi süzerek bugünü de yazdı ancak yazıcıyı bulmada bi sıkıntı var. Samsung yazıcısını değil de varsayılan yazıcı olan utax yazıcısından yazdırıyor. Etiket yazdırmak için kullandığım kodda şu şekilde yazıyor. "Ne00: üzerindeki Zebra TLP2844 " şeklinde yazıyor. Bunu da "Ne00: üzerindeki Samsung SCX-4x21" şeklinde düzelttim ama yine yazmadı.
Emeğinize sağlık.
 
Son düzenleme:
@Haluk abi. Bu çorbada da tuzun olsa ???????? Yazıcı seçme konusunda uzmanlığından bi Kere daha istifade etmek istiyoruz.
 
@Haluk abi. Bu çorbada da tuzun olsa ???????? Yazıcı seçme konusunda uzmanlığından bi Kere daha istifade etmek istiyoruz.


Yazıcının adını kontrol ettiniz mi ?

"Ne00: üzerindeki Samsung SCX-4x21 "

Kırmızı ile işaretlediğim yeri kontrol edin ve en sonuna da ........bir boşluk ekleyin >>>>>> ........-4x21 "


.
 
Yazıcının adını kontrol ettiniz mi ?

"Ne00: üzerindeki Samsung SCX-4x21 "

Kırmızı ile işaretlediğim yeri kontrol edin ve en sonuna da ........bir boşluk ekleyin >>>>>> ........-4x21 "


.
Teşekkür ederim @Haluk abi.
 
Son düzenleme:
Geri
Üst