- Katılım
- 24 Temmuz 2019
- Mesajlar
- 181
- Excel Vers. ve Dili
- 2010 ve 2016 Türkçe
- Altın Üyelik Bitiş Tarihi
- 19-10-2023
Merhaba arkadaşlar. Benim forumdaki arkadaşlar sayesinde hazırlanan bir makrom var. Bu makrom her veri yenilendikçe arka planda çalışmakta. Ben buna zamanlayıcı eklemeye çalıştım ve şöyle bir mantık oluşturdum. Eğer Çıkan mesajda evet veya hayır seçince, "deneme" adlı değişken TRUE olacak ve 10 saniye sonra False dönüştüren bir makro çalıştıracak. 10 saniye sonra makrom çalışıyor. Ama 10 saniye dolmadan mevcut sekmede veri yenileyince, arka plandaki makro çalışmaya hala devam ediyor.
Ortaya çıkan"VERİLER HATALI DÜZELTME UYGULANSIN MI?" yazan yazıya evet veya hayır verdikten sonra "deneme = True" hale gelmiyor. True haline gelmediği içinde,
If deneme = True Then
MsgBox "asdasdas Butonuna Tıkladınız."
Else
Sanki buradaki "If deneme = True Then" kısmı TRUE değilmiş gibi yine arka plandaki private Sub makrosunu çalıştırmaya devam ediyor. Umarım derdimi anlatabilmişimdir. Özetle tam olarak istediğim deneme değişkenini gerektiğinde True veya False yapıp İF ile de ona göre arka plandaki makroyu çalışır hale getirmek.
Ortaya çıkan"VERİLER HATALI DÜZELTME UYGULANSIN MI?" yazan yazıya evet veya hayır verdikten sonra "deneme = True" hale gelmiyor. True haline gelmediği içinde,
If deneme = True Then
MsgBox "asdasdas Butonuna Tıkladınız."
Else
Sanki buradaki "If deneme = True Then" kısmı TRUE değilmiş gibi yine arka plandaki private Sub makrosunu çalıştırmaya devam ediyor. Umarım derdimi anlatabilmişimdir. Özetle tam olarak istediğim deneme değişkenini gerektiğinde True veya False yapıp İF ile de ona göre arka plandaki makroyu çalışır hale getirmek.
Kod:
Private Sub Worksheet_Calculate()
With Sheets("D YAYINI")
'If Sheets("Sayfa2").Range("A1") = "ABC YAYINI" Then
Dim deneme As Boolean
If Sheets("VERİ DOĞRULAMA").Range("J3") <> Sheets("VERİ DOĞRULAMA").Range("J4") Then
Dim Komut As Integer
Dim Mesaj As String
Dim Baslik As String
Dim alertTime
Dim x As Byte, Satir As Byte
If deneme = True Then
MsgBox "asdasdas Butonuna Tıkladınız."
Else
Mesaj = "VERİLER HATALI DÜZELTME UYGULANSIN MI?"
Baslik = "Başlık Burada Gözüküyor"
Komut = MsgBox(Mesaj, vbYesNo, Baslik)
If Komut = 6 Then
For x = 1 To .Cells(.Rows.Count, 1).End(3).Row
If .Cells(x, 1).Interior.ColorIndex = xlNone Then
Satir = x
deneme = True
Exit For
MsgBox "DÜZELTME UYGULANMIŞTIR."
deneme = True
alertTime = Now + TimeValue("00:00:10")
Application.OnTime alertTime, "timerr"
End If
Next
.Range("A" & Satir & ":V" & Satir).AutoFill Destination:=.Range("A" & Satir & ":V51"), Type:=xlFillDefault
deneme = True
Else
deneme = True
If Komut = 7 Then
MsgBox "Hayır Butonuna Tıkladınız."
deneme = True
alertTime = Now + TimeValue("00:00:10")
Application.OnTime alertTime, "timerr"
End If
End If
End If
End If
End With
End Sub
Sub Timerr()
'
' Timerr Makro
'
deneme = False
MsgBox ("makro çalıştı")
'
End Sub