1Al2Ver
Altın Üye
- Katılım
- 5 Kasım 2007
- Mesajlar
- 4,713
- Excel Vers. ve Dili
- 64 Bit TR - Microsoft Office 365 - Win11 Home
- Altın Üyelik Bitiş Tarihi
- 04-01-2026
Merhaba,
Aşağıdaki kod çalıştırıldığında, yaklaşık 20-25 saniye sonra ilk verisini "B17:G17" aralığına yazıyor,
Eğer bu esnada ESC tuşuna basarsam, tablonun hesaplamasını 1 dakika 30 saniye gibi bir sürede,
Eğer ESC tuşuna basmaz isem 5 dakika 40 saniye gibi bir sürede, hesaplıyor,
Kodu hızlandıracak olası çözümleri rica ediyorum,
Teşekkür ederim.
Aşağıdaki kod çalıştırıldığında, yaklaşık 20-25 saniye sonra ilk verisini "B17:G17" aralığına yazıyor,
Eğer bu esnada ESC tuşuna basarsam, tablonun hesaplamasını 1 dakika 30 saniye gibi bir sürede,
Eğer ESC tuşuna basmaz isem 5 dakika 40 saniye gibi bir sürede, hesaplıyor,
Kodu hızlandıracak olası çözümleri rica ediyorum,
Teşekkür ederim.
Kod:
Sub RAPOR_OLUŞTUR()
On Error Resume Next
Set ra = Sheets("RAPOR"): Set RE = Sheets("REÇETE")
If ra.[C60].End(3).Row > 17 Then ra.Range("A17:G" & ra.[C59].End(3).Row).ClearContents
Cells.NumberFormat = General
Select Case ra.[T2]
Case Is = "D….": hedef = 5
Case Is = "O….": hedef = 6
Case Is = "Y…..": hedef = 7
End Select
For Yemek = 3 To ra.[F16].End(3).Row
Cells(ra.[C60].End(3).Row + 1, 2) = ra.Cells(Yemek, 6)
ilk = WorksheetFunction.Match(ra.Cells(Yemek, 6), RE.Range("B:B"), 0)
Son = WorksheetFunction.CountIf(RE.Range("B:B"), ra.Cells(Yemek, 6)) + ilk - 1
For resat = ilk To Son
rasat = ra.[C60].End(3).Row + 1: ra.Cells(rasat, 3) = RE.Cells(resat, 3)
ra.Cells(rasat, 4) = RE.Cells(resat, 4): ra.Cells(rasat, 5) = RE.Cells(resat, hedef)
ra.Cells(rasat, 5).NumberFormat = RE.Cells(resat, hedef).NumberFormat
If Cells(rasat, 4) = "Gr" Then
Cells(rasat, 4).Value = "Kg"
ra.Cells(rasat, 6) = ra.[D14] * ra.Cells(rasat, 5) / 1000
Else
ra.Cells(rasat, 6) = ra.[D14] * ra.Cells(rasat, 5)
End If
ra.Cells(rasat, 7) = RE.Cells(resat, hedef + 6)
Next
Next
With ra.Range("A17:A" & ra.[C60].End(3).Row)
.Formula = "=IF(ISERROR(MATCH(B17,$F$1:$F$15,0)),"""",MAX($A$16:A16)+1)": .Value = .Value
End With
ra.[G1].NumberFormat = "dd/mm/yyyy"
ra.[G19:G59].NumberFormat = "#.00"
End Sub