muratgunay48
Altın Üye
- Katılım
- 10 Şubat 2010
- Mesajlar
- 1,454
- Excel Vers. ve Dili
- Office 365 - Türkçe (64 bit)
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.Range("I4")) Is Nothing Then
If Target.Value <> "" Then
Call CommandButton1_Click
End If
End If
End Sub
Private Sub CommandButton1_Click()
Dim Sayfa As Worksheet
Dim Alan As Range
Dim daralan As Range
If Cells(2, 9) = "" Then GoTo HATA
On Error GoTo HATA
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
saydir = WorksheetFunction.CountIf(Range("A:A"), "<>") + 1
DinamikAlan = "A1:G100" & saydir
Set Alan = ActiveSheet.Range(DinamikAlan)
Set Sayfa = ActiveSheet
With Alan
.Parent.Select
Set daralan = ActiveCell
.Select
ActiveWorkbook.EnvelopeVisible = True
With .Parent.MailEnvelope
.Introduction = "Merhaba"
With .Item
.to = Cells(2, 9)
.CC = Cells(3, 9)
.Subject = Cells(1, 9)
.bcc = "muratgunay48@hotmail.com" 'buraya kullandığınız outlook adresi yazılacak.
.Send
End With
End With
daralan.Select
End With
Sayfa.Select
HATA:
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub
Aşağıdaki kodu çalışma sayfasının kod penceresine yapıştırın:
Kod:Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Me.Range("I4")) Is Nothing Then If Target.Value <> "" Then Call CommandButton1_Click End If End If End Sub
Ardından, CommandButton1_Click prosedürünüzü başka bir modül ya da çalışma sayfasında bırakın. CommandButton1_Click kodunuzun şu şekilde olmalıdır:
Kod:Private Sub CommandButton1_Click() Dim Sayfa As Worksheet Dim Alan As Range Dim daralan As Range If Cells(2, 9) = "" Then GoTo HATA On Error GoTo HATA With Application .ScreenUpdating = False .EnableEvents = False End With saydir = WorksheetFunction.CountIf(Range("A:A"), "<>") + 1 DinamikAlan = "A1:G100" & saydir Set Alan = ActiveSheet.Range(DinamikAlan) Set Sayfa = ActiveSheet With Alan .Parent.Select Set daralan = ActiveCell .Select ActiveWorkbook.EnvelopeVisible = True With .Parent.MailEnvelope .Introduction = "Merhaba" With .Item .to = Cells(2, 9) .CC = Cells(3, 9) .Subject = Cells(1, 9) .bcc = "muratgunay48@hotmail.com" 'buraya kullandığınız outlook adresi yazılacak. .Send End With End With daralan.Select End With Sayfa.Select HATA: With Application .ScreenUpdating = True .EnableEvents = True End With End Sub
Aşağıdaki kodu çalışma sayfasının kod penceresine yapıştırın:
Kod:Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Me.Range("I4")) Is Nothing Then If Target.Value <> "" Then Call CommandButton1_Click End If End If End Sub
Ardından, CommandButton1_Click prosedürünüzü başka bir modül ya da çalışma sayfasında bırakın. CommandButton1_Click kodunuzun şu şekilde olmalıdır:
Kod:Private Sub CommandButton1_Click() Dim Sayfa As Worksheet Dim Alan As Range Dim daralan As Range If Cells(2, 9) = "" Then GoTo HATA On Error GoTo HATA With Application .ScreenUpdating = False .EnableEvents = False End With saydir = WorksheetFunction.CountIf(Range("A:A"), "<>") + 1 DinamikAlan = "A1:G100" & saydir Set Alan = ActiveSheet.Range(DinamikAlan) Set Sayfa = ActiveSheet With Alan .Parent.Select Set daralan = ActiveCell .Select ActiveWorkbook.EnvelopeVisible = True With .Parent.MailEnvelope .Introduction = "Merhaba" With .Item .to = Cells(2, 9) .CC = Cells(3, 9) .Subject = Cells(1, 9) .bcc = "muratgunay48@hotmail.com" 'buraya kullandığınız outlook adresi yazılacak. .Send End With End With daralan.Select End With Sayfa.Select HATA: With Application .ScreenUpdating = True .EnableEvents = True End With End Sub

e-posta gönderme işlemi, Worksheet_Change olayında tetikleniyor ve I4 hücresine bir değer girdiğinizde hemen çalışıyor. Eğer bu davranış istemediğiniz bir durumsa, yani hücreye bir değer girdikten sonra başka bir işlem yapmak istemiyorsanız, bunu durdurmanın birkaç yolu var.
Onay Kutusu Ekleyin: Değer girdikten sonra kullanıcının onay vermesi için bir onay kutusu gösterebilirsiniz. Kullanıcı onay vermedikçe e-posta gönderilmeyecek.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.Range("I4")) Is Nothing Then
If Target.Value <> "" Then
If MsgBox("E-postayı göndermek istiyor musunuz?", vbYesNo) = vbYes Then
Call CommandButton1_Click
End If
End If
End If
End Sub
Başka Bir Hücreye Tıklayınca E-posta Gönderimi: E-posta gönderme işlemini başka bir hücreye tıklanmasını bekleyerek başlatabilirsiniz. Örneğin, J4 hücresine tıkladığınızda e-posta gönderilsin.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.Range("I4")) Is Nothing Then
If Target.Value <> "" Then
' Sadece I4 hücresinde bir değer girildiğinde hiçbir şey yapmayın
End If
ElseIf Not Intersect(Target, Me.Range("J4")) Is Nothing Then
If Me.Range("I4").Value <> "" Then
Call CommandButton1_Click
End If
End If
End Sub
