Veri Giriş Excel / Macro Dönüşümü hk.

Katılım
28 Haziran 2005
Mesajlar
110
Altın Üyelik Bitiş Tarihi
04.03.2019
İleti ekinde ürün satış ve stok takibi ile ilgili bir çalışmamı gönderiyorum. Topla.Çarpım ile düzenlediğim tablo şu an yaklaşık 2.50 MB boyutuna ulaştı. Bu sebeple, "Veri Giriş" sayfasında her bilgi girişimde pc yavaş işlem yapmaya başladı.

Gelecek günlerde çalışmanın üzerinde istatistik oluşturma, grafik ve rapor gibi ilave çalışma sayfaları ekleyecek olmam sebebiyle, sanırım dosya boyutu çok daha büyüyecek ve pc çok daha yavaş işlem yapacak.

PC' yi daha seri işlem yapacak hale getirmek için, Topla.Çarpım ile düzenlenen tabloyu, makrolu hale nasıl dönüştürebilirim?

Konu ile ilgili öneri veya başka fikri olan arkadaşlar paylaşırlarsa memnun olurum.

İyi çalışmalar..
 

Ekli dosyalar

Korhan Ayhan

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

Aşağıdaki kodu kullanabilirsiniz.

Kod:
Option Explicit
 
Sub HESAPLA()
    Dim S1 As Worksheet, S2 As Worksheet
    Dim HÜCRE As Range
    Dim BUL As Range, ADRES As String
    Dim KRİTER As Range
 
    Set S1 = Sheets("Veri Giriş")
    Set S2 = Sheets("Veri")
 
    Application.ScreenUpdating = False
 
    S2.Range("B3:M52").ClearContents
 
    For Each HÜCRE In S2.Range("A3:A52")
        Set BUL = S1.[B:B].Find(HÜCRE.Value)
        If Not BUL Is Nothing Then
        ADRES = BUL.Address
        Do
 
    If S1.Cells(BUL.Row, 3) = S2.Range("B1") Then
        For Each KRİTER In S2.Range("B2:G2")
        If KRİTER.Value = S1.Cells(BUL.Row, 4) Then
        S2.Cells(HÜCRE.Row, KRİTER.Column) = S2.Cells(HÜCRE.Row, KRİTER.Column) + S1.Cells(BUL.Row, 5)
        Exit For
        End If
        Next
 
    ElseIf S1.Cells(BUL.Row, 3) = S2.Range("H1") Then
        For Each KRİTER In S2.Range("H2:M2")
        If KRİTER.Value = S1.Cells(BUL.Row, 4) Then
        S2.Cells(HÜCRE.Row, KRİTER.Column) = S2.Cells(HÜCRE.Row, KRİTER.Column) + S1.Cells(BUL.Row, 5)
        Exit For
        End If
        Next
    End If
 
        Set BUL = S1.[B:B].FindNext(BUL)
        Loop While Not BUL Is Nothing And BUL.Address <> ADRES
        End If
    Next
 
    Set BUL = Nothing
 
    S2.Select
 
    Set S1 = Nothing
    Set S2 = Nothing
 
    Application.ScreenUpdating = True
 
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 

Ekli dosyalar

Katılım
28 Haziran 2005
Mesajlar
110
Altın Üyelik Bitiş Tarihi
04.03.2019
Teşekkürler..

Sn.Ayhan,

Bayram günü zamanınızı ayırıp sorumla ilgilenip, cevap verdiğiniz için teşekkür ederim. Benim için önemli bir sorunun çözümünde çok faydası olacak. Sağolun..

"Hesapla" ikonunu kullanmadan direkt sonuç elde etmek mümkün olabilir mi? (Umarım yüzsüzlük olmaz :) )

Şaka bir yana; tekrar emeğinize sağlık..

İyi bayramlar dilerim..
 

tahsinanarat

Altın Üye
Katılım
14 Mart 2005
Mesajlar
2,158
Excel Vers. ve Dili
Ofis 2019 Türkçe
Altın Üyelik Bitiş Tarihi
27-05-2028
Sayfa2 de ENTER tuşuna basın

Sayfa2 ye geçtip ENTER tuşuna bastığınızda makronuz çalışacaktır.
 
Katılım
28 Haziran 2005
Mesajlar
110
Altın Üyelik Bitiş Tarihi
04.03.2019
Sn.tahsinanarat,

Öneriniz için teşekkür ederim. Ancak Sayfa2' ye (benim "Veri" sayfasına) geçip enter yaptığım zaman birşey elde edemedim. Yapılış şeklinden bahsedebilir misiniz? Sanırım yanlış yaptığım birşey var..
 

tahsinanarat

Altın Üye
Katılım
14 Mart 2005
Mesajlar
2,158
Excel Vers. ve Dili
Ofis 2019 Türkçe
Altın Üyelik Bitiş Tarihi
27-05-2028
Entera basınca dosya çalışsın

Sn. Kartal76 bir önceki mesajımda yaptığım dosyayı eklediğimi zannederek cevap yazmışım, özür dilerim. Uyarınız için teşekkür ederim. Dosyanız ektedir. Kolay gelsin.
 

Ekli dosyalar

Katılım
28 Haziran 2005
Mesajlar
110
Altın Üyelik Bitiş Tarihi
04.03.2019
Sn.tahsinarat,

İlgi ve yardımınız için teşekkür ederim. Çok makbule geçti doğrusu.

Emeğinize sağlık..
 
Üst