DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Option Explicit
Sub HESAPLA()
Dim X As Long, Y As Byte
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Sheets("VERİ").Select
ActiveSheet.Unprotect "1"
For X = 3 To Range("A65536").End(3).Row
If Cells(X, "A") <> "" Then
For Y = 7 To 77 Step 2
If Cells(X, Y) = "" Then Cells(X, Y + 1) = 0
If WorksheetFunction.CountIf(Sheets("FİYAT").Range("A:A"), Cells(1, Y)) = 0 Then
Cells(X, Y + 1) = 0
Else
Cells(X, Y + 1) = WorksheetFunction.VLookup(Cells(1, Y), Sheets("FİYAT").Range("A:B"), 2, 0) * Cells(X, Y)
End If
Next
End If
Next
ActiveSheet.Protect "1"
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("G3:BZ65536")) Is Nothing Then Exit Sub
If Target.Column Mod 2 = 1 Then
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
ActiveSheet.Unprotect "1"
If IsNumeric(Target) Then
If WorksheetFunction.CountIf(Sheets("FİYAT").Range("A:A"), Cells(1, Target.Column)) = 0 Then
Target.Next = 0
Else
Target.Next = WorksheetFunction.VLookup(Cells(1, Target.Column), Sheets("FİYAT").Range("A:B"), 2, 0) * Target
End If
End If
ActiveSheet.Protect "1"
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End If
End Sub
Selamlar,
VERİ isimli sayfanızın kod bölümüne aşağıdaki kodu uygulayıp denermisiniz.
Kod:Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("G3:BZ65536")) Is Nothing Then Exit Sub If Target.Column Mod 2 = 1 Then Application.ScreenUpdating = False Application.Calculation = xlCalculationManual ActiveSheet.Unprotect "1" If IsNumeric(Target) Then If WorksheetFunction.CountIf(Sheets("FİYAT").Range("A:A"), Cells(1, Target.Column)) = 0 Then Target.Next = 0 Else Target.Next = WorksheetFunction.VLookup(Cells(1, Target.Column), Sheets("FİYAT").Range("A:B"), 2, 0) * Target End If End If ActiveSheet.Protect "1" Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True End If End Sub
Private Sub UserForm_Initialize()
TextBox2 = Range("B65536").End(3) + 1
End Sub
Çok Teşekkürler hocam ellerinize sağlık....
Hocam biraz çok oluyorum ama soru sordukça yeni şeyler öğreniyorum...
Fsütununda ve 2 'nci satırda ki formülleri de kaldırıp Makro yazabilir miyiz?...
Sayı Korhan Ayhan elinize, aklınıza sağlık. Text lere formul atamayı bilmiyordum. Text1 e günü tarihini kendiliğinden getirmesi için aşağıdaki kodu yazdım ancak olmadı.
Private Sub UserForm_Click()
TextBox1 = TODAY()
End Sub
Private Sub UserForm_Click()
TextBox1 = [COLOR=blue]Format([/COLOR][COLOR=red]Evaluate("=TODAY()")[/COLOR][COLOR=blue], "dd.mm.yyyy")[/COLOR]
End Sub
Private Sub UserForm_Click()
TextBox1 = Format(Date, "dd.mm.yyyy")
End Sub
Selamlar,
#13 nolu mesajımdaki dosyayı güncelledim. İncelermisiniz.