- 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,
Aşağıdaki VBA kodumda durum adında bir değişken oluşturdum Boolean türünde. Makroda Bu değişken True iken mesaj versin, True değilse alttaki kodları çalıştırsın istiyorum. Bunun için makro ilk çalıştığında durum değişkenini True olarak dönüştürsün istiyorum. Bundan sonra makroyu çalıştırmaya çalıştığım zaman durum True olduğu için direk uyarı mesajı vermesi gerekir. Ve 5 saniye zamangeldi makrosu aktifleşip durum değişkenini False a çevirecek ve private makrom tekrar çalışabilecek. Fakat ne yaptıysam Hayır butonuna bastığım an durum değişkenini True ya çeviremiyorum.
Aşağıdaki VBA kodumda durum adında bir değişken oluşturdum Boolean türünde. Makroda Bu değişken True iken mesaj versin, True değilse alttaki kodları çalıştırsın istiyorum. Bunun için makro ilk çalıştığında durum değişkenini True olarak dönüştürsün istiyorum. Bundan sonra makroyu çalıştırmaya çalıştığım zaman durum True olduğu için direk uyarı mesajı vermesi gerekir. Ve 5 saniye zamangeldi makrosu aktifleşip durum değişkenini False a çevirecek ve private makrom tekrar çalışabilecek. Fakat ne yaptıysam Hayır butonuna bastığım an durum değişkenini True ya çeviremiyorum.
Kod:
Private Sub Worksheet_Calculate()
With Sheets("Sayfa1")
Dim durum As Boolean
If durum = True Then
MsgBox "Zaman dolmadı"
Else
If .Range("AA3") <> .Range("AB3") Then
Dim Komut As Integer
Dim Mesaj As String
Dim Baslik As String
Dim X As Byte, Satir As Byte
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
MsgBox "DÜZELTME UYGULANMIŞTIR."
For X = 1 To .Cells(.Rows.Count, 1).End(3).Row
If .Cells(X, 1).Interior.ColorIndex = xlNone Then
Satir = X
Exit For
End If
Next
.Range("A" & Satir & ":V" & Satir).AutoFill Destination:=.Range("A" & Satir & ":V51"), Type:=xlFillDefault
Else
If Komut = 7 Then
MsgBox "Hayır Butonuna Tıkladınız."
durum = True
Application.OnTime Now + TimeValue("00:00:05"), "zamangeldi"
End If
End If
End If
End If
End With
End Sub
Sub zamangeldi()
MsgBox "Vermek istediğimiz mesaj", 0
durum = Sheets("akıl fikir mektebi").Range("AE6").Value
'...sizin kodlarınız
'.......
End Sub