Koşullu Uyarı Mesajı

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.

Excel tablomda aşağıdaki formüllerdeki sayılı değerler eşit değilse otomatik uyarı mesajı vermesini istiyorum. Ve mümkünse eğer 30 saniye içerisinde sorun düzeltilmezse veya tablo açıldığında da aynı sorun söz konusu ise uyarı versin istiyorum.(HATA MESAJI) Bunun dışında "Düzeltmeye Çalış" ve "Yoksay" adlı iki adet butonda çıkmalı. "Düzeltmeye Çalış" butonuna basıldığında mevcut sayfadaki A6 dan V6 ya kadar seçip aşağı doğru 51. satıra kadar doldursun.(yani aşağı çeksin)

AA3 sütunundaki formül:=EĞERSAY(VERİLERİM!C:C;A1) Formül sonucu:4
AB3 sütunundaki formüş:=EĞERSAY(A6:A36;"<>")-EĞERSAY(A6:A36;"") Formül sonucu:4


Şimdiden emeğinize teşekkür ederim.
 
Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,461
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Üstteki mesajıma harici link ekledim. Deneyebilirsiniz.
 
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
Üstteki mesajıma harici link ekledim. Deneyebilirsiniz.
Öncelikle çok teşekkür ederim. Oluşturduğunuz makroyu kendi tabloma aktarmaya çalışıyorum fakat hata olduğu zaman uyarıdaki butonlar çıkmıyor. "UserForm1.Show" kodundan dolayı sanırsam. UserForm1.Show kısmını nereden ekleyebilirim?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,461
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
HATA derken neyi kastediyorsunuz?
 
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
HATA derken neyi kastediyorsunuz?
Ben çalışma kitabıma aşağıdaki kodu ekliyorum.
Kod:
Option Explicit

Sub Auto_Open()
    With Sheets("Sheet1")
        If .Range("AA3") <> .Range("AB3") Then
            UserForm1.Show
        End If
    End With
End Sub
Bunu eklediğim için uyarı mesajının çıktığı sayfa boş geliyor."Düzeltmeye çalış" veya "Yoksay" butonları gözükmüyor. Kendi çalışma sayfamda Userform1 ekli olmadığı için diye düşünüyorum. Userform1 yerine Msgbox gibi bir fonksiyon ile yapılamaz mı kutucuklar ve tıklandıktan sonraki işlemler. Çünkü bu işlemi kendi çalışma kitabımda yer alan 8 sayfaya daha ekleyeceğim.

 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,461
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Benim eklediğim dosya ile kendi dosyanızı açın. Kod bölümünü açın. Benim dosyamdaki userformu kendi dosyanıza sürükleyin.

Böylece sizin dosyanıza da form eklenmiş olur.
 
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
Benim eklediğim dosya ile kendi dosyanızı açın. Kod bölümünü açın. Benim dosyamdaki userformu kendi dosyanıza sürükleyin.

Böylece sizin dosyanıza da form eklenmiş olur.
Teşekkür ederim hocam.
 
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
Benim eklediğim dosya ile kendi dosyanızı açın. Kod bölümünü açın. Benim dosyamdaki userformu kendi dosyanıza sürükleyin.

Böylece sizin dosyanıza da form eklenmiş olur.
Hocam tekrardan merhaba. Bu autofill işlemini dolgusuz satırlara uygulama şartı ekleyebilir miyiz? Hücrelerin arka planında renk olmayanlara yani. A dan V ye kadar 51. satıra kadar.
 
Son düzenleme:
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
Lütfen örneklendiriniz.
Sizin benim için hazırladığınız makroyu ben userform olmadan uyarlamaya çalıştım. Çalışıyor fakat şöyle bir sorun var. Örnek veriyorum Normal şartlarda 6. satırdan itibaren aşağı çekmesi gerekiyor. Ben en üste 2 satır eklediğimde veriler değişiyor. Dolayısıyla 6. satırdan itibaren olan verilerde 2 satır aşağı kaydığı için her zaman 6.satırdan itibaren aşağı çekiyor. Fakat bu aşağı çekme işlemini satır dolgusuna göre yaparsa(dolgusuz olarak) sorunum çözülmüş olacak. Buna ek olarak bu makroyu otomatikleştirmem gerekiyor. AA3 de ve AB3 deki veriler eşleşmediği an çalışması lazım. 30 saniye içerisinde düzeltilmezse tekrar uyarması lazım. Yoksa manuel çalıştırmam gerekiyor.
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,461
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Aşağıdaki kodu Sayfa2 isimli sayfanızın kod bölümüne uygulayınız.

Sayfa hesaplama yaptığı zaman kod çalışacaktır.

Kod:
Private Sub Worksheet_Calculate()
    With Sheets("Sayfa2")
        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."
                End If
            End If
        End If
    End With
End Sub
 
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
Aşağıdaki kodu Sayfa2 isimli sayfanızın kod bölümüne uygulayınız.

Sayfa hesaplama yaptığı zaman kod çalışacaktır.

Kod:
Private Sub Worksheet_Calculate()
    With Sheets("Sayfa2")
        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."
                End If
            End If
        End If
    End With
End Sub
Emeğinize sağlık hocam işe yaradı teşekkür ederim.
 
Üst