dolgu rengi kırmızı olunca dosyayı kaydetme

Katılım
11 Şubat 2021
Mesajlar
106
Excel Vers. ve Dili
2019, rus
Merhaba. Bana excel dosyasında hücrede kırmızı renk dolgu olduğu zaman dosyayı kaydetmek istediğimde ekrana bir userform çıkıp, userformda " fiyat yanlış, aksi takdirde kaydetmek mümkün değil " yazısı çıksın ve dosyayı kaydetmeyi engellesin - bu lazım. Bunu nasıl yapabilirim?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,160
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Hangi hücrede?
Renkler elle mi uygulandı? Yoksa koşullu biçimlendirme ile mi uygulandı?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,160
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Kontrolün kolay olması açısından hücre adresi sormuştum.

Excel sayfasının bütün hücrelerini işlem almak çok mantıklı değildir.

Rengi uyguladığınız sütun bellidir sanırım.
 
Katılım
11 Şubat 2021
Mesajlar
106
Excel Vers. ve Dili
2019, rus
Kontrolün kolay olması açısından hücre adresi sormuştum.

Excel sayfasının bütün hücrelerini işlem almak çok mantıklı değildir.

Rengi uyguladığınız sütun bellidir sanırım.
E sütunu ve bu arada yanlış belirtmişim - hücreler koşullu biçimlendirme ile renklendirildi.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,160
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Dosyanızın ThisWorkbook bölümüne aşağıdaki kodu uygulayıp deneyiniz.

Sayfa adını ve hücre aralığını kendinize göre düzenlersiniz.

C++:
Option Explicit
Dim Kontrol As Boolean

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Call ThisWorkbook.Workbook_BeforeSave(True, False)
    Cancel = Kontrol
End Sub

Public Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim Sayfa As Worksheet, Veri As Range
    
    Kontrol = False
    
    For Each Sayfa In ThisWorkbook.Worksheets
        For Each Veri In Sayfa.Range("E1:E1000")
            If Veri.DisplayFormat.Interior.ColorIndex = 3 Then
                MsgBox "Fiyat yanlış, bu nedenle kaydetmek mümkün değil!", vbCritical
                Cancel = True
                Kontrol = True
                Exit Sub
            End If
        Next
    Next
End Sub
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Sorunun çözümüyle ilgili değil ama sanki "Fiyat yanlış, aksi taktirde kaydetmek mümkün değil!" ifadesi Türkçemize uygun değil gibi.

"Fiyat yanlış, bu nedenle kaydetmek mümkün değil!" olsa daha iyi olmaz mı?
 
Katılım
11 Şubat 2021
Mesajlar
106
Excel Vers. ve Dili
2019, rus
Dosyanızın ThisWorkbook bölümüne aşağıdaki kodu uygulayıp deneyiniz.

Sayfa adını ve hücre aralığını kendinize göre düzenlersiniz.

C++:
Option Explicit
Dim Kontrol As Boolean

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Call ThisWorkbook.Workbook_BeforeSave(True, False)
    Cancel = Kontrol
End Sub

Public Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim Veri As Range
   
    Kontrol = False
   
    For Each Veri In Sheets("Sheet1").Range("E1:E1000")
        If Veri.DisplayFormat.Interior.ColorIndex = 3 Then
            MsgBox "Fiyat yanlış, aksi taktirde kaydetmek mümkün değil!", vbCritical
            Cancel = True
            Kontrol = True
            Exit Sub
        End If
    Next
End Sub
Cevabınız için teşekkür ederim, çok işime yaradı.
 
Katılım
11 Şubat 2021
Mesajlar
106
Excel Vers. ve Dili
2019, rus
Dosyanızın ThisWorkbook bölümüne aşağıdaki kodu uygulayıp deneyiniz.

Sayfa adını ve hücre aralığını kendinize göre düzenlersiniz.

C++:
Option Explicit
Dim Kontrol As Boolean

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Call ThisWorkbook.Workbook_BeforeSave(True, False)
    Cancel = Kontrol
End Sub

Public Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim Veri As Range
  
    Kontrol = False
  
    For Each Veri In Sheets("Sheet1").Range("E1:E1000")
        If Veri.DisplayFormat.Interior.ColorIndex = 3 Then
            MsgBox "Fiyat yanlış, aksi taktirde kaydetmek mümkün değil!", vbCritical
            Cancel = True
            Kontrol = True
            Exit Sub
        End If
    Next
End Sub
Hocam bu kısmı bütün excel kitabın sayfalarına nasıl uygulaya biliriz? Yanı bütün sayfalarda aynı anda çalışsın.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,160
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Sayfa döngüsünü de ekledim.

Ek olarak Yusuf beyin önerisine göre mesajı revize ettim.

Üstte ki mesajımdan kodun son halini tekrar deneyiniz.
 
Üst