• DİKKAT

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

otomatik çalıştır

Katılım
28 Mart 2011
Mesajlar
40
Excel Vers. ve Dili
ofis 365
Merhaba arkadaşlar,

aşağıdaki kod otomatik mail ile ilgili A1 hücresi 200 den büyükse mail atıyor. ancak benim dosyamda A1 hücresi içindeki değerler formül ile oluşuyor. manüel girilmiyor. böyle oluncada çalışmıyor. yardımcı olurmusunuz ?

NOT : A1 hücresine manüel giriş yaptığımda çalışıyor.


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Application.Intersect(Range("A1"), Target) Is Nothing Then
If IsNumeric(Target.Value) And Target.Value > 200 Then
Call YourMacroName
End If
End If
End Sub
 
Böyle deneyin.
Kod:
Private Sub Worksheet_Calculate()
If IsNumeric([color=red][a1][/color]) And [color=red][a1][/color] > 200 Then
Call YourMacroName
End If
End Sub
 
Sayın hamit can çok teşekkür ederim emeğinize sağlık. fakat şöyle bir durum var. bu makra her harekette aktif oluyor. sadece kaydettiğim zamanlarda aktif olma şansı varmıdır ?
 
Kodu ThisWorbook kısmına ekleyin.
Kod:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If IsNumeric([a1]) And [a1] > 200 Then
Call YourMacroName
End If
End Sub
 
Hamitcan bey süpersini. sizi çok uğraştırdım biliyorum ama bir sorun daha var.
Min-Mak Stok sayfasında kaydete basarsam gönderiyor. aslında hangi sayfada olduğum çok önemli değil. herhangi bir sayfada kaydet dediğimde göndermeli. böyle bir şansımız varmı acaba ?

Private Sub Workbook_BEFORESave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If IsNumeric([A1]) And [A1] > 200 Then
Call Send_Range_Or_Whole_Worksheet_with_MailEnvelope
End If
End Sub
Sub Send_Range_Or_Whole_Worksheet_with_MailEnvelope()
Dim AWorksheet As Worksheet
Dim Sendrng As Range
Dim rng As Range

On Error GoTo StopMacro

With Application
.ScreenUpdating = False
.EnableEvents = False
End With


Set Sendrng = Worksheets("Min-Mak Stok").Range("A1:G40")


Set AWorksheet = ActiveSheet

With Sendrng


.Parent.Select

Set rng = ActiveCell


.Select


ActiveWorkbook.EnvelopeVisible = True
With .Parent.MailEnvelope


.Introduction = "Merhaba, Bugün tarihli min.- Max. stoklardaki değişiklikleri gösteren rapor aşağıdaki gibir... Başarılı çalışmalar."


With .Item
.To = "aaaaaaaaaa@bbbbbbb.com"
.CC = ""
.Subject = "Min-Mak Stok"
.Send
End With

End With

'select the original ActiveCell
rng.Select
End With

'Activate the sheet that was active before you run the macro
AWorksheet.Select

StopMacro:
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
ActiveWorkbook.EnvelopeVisible = False

End Sub
 
Bu şekilde deneyin.
Kod:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
[COLOR=RED]SET S1 = SHEETS("Min-Mak Stok")[/COLOR]
If IsNumeric([COLOR=RED]S1.[/COLOR][a1]) And [COLOR=RED]S1.[/COLOR][a1] > 200 Then
Call YourMacroName
End If
End Sub
 
Sayın hamitcan,

ilginiz, emeğiniz için çok teşekkür ediyorum.
 
Geri
Üst