• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Parametre Değişmediyse Makro Uyarı versin

  • Konbuyu başlatan Konbuyu başlatan o2l3m
  • Başlangıç tarihi Başlangıç tarihi

o2l3m

Altın Üye
Katılım
2 Mart 2005
Mesajlar
156
Excel Vers. ve Dili
Microsoft® Excel ® 2016 (16.0.5413.1000) MSO (16.0.5413.1000) 32 bit
S2:T12 Aralığına Gün ve vardiya girerek Makro çalıştırıyorum.
Eğer S2:T12 paremetresinde hiçbirşey değiştirmediysem ve makroyo 2. defa çalıştırırsam uyarı verirmi?
 

Ekli dosyalar

  • 2018-01-05_170004.jpg
    2018-01-05_170004.jpg
    18.9 KB · Görüntüleme: 5
Değer bir başka satıra daha yazdırır ve bir kontrol makrosu yazarsınız. Vardiya makronuza da önce o makroyu çalıştırırsınız. O zaman olabilir.

Örnek şeyle:

A1 sütununa veri giriyorum diyelim. Eğer girdiğim veri bir önceki ile aynıysa uyarı versin istiyorum. Üstte dediğim gibi A1 sütunun değerini E1'e de yazdırıyorum. Sonra aşağıdaki kod ile kontrol ettirmem gerek.

Kod:
Sub Uyarı ()
If Range("A1").Value = Range("E1").Value Then
Msgbox "Aynı değeri girdiniz!",VBOkOnly,"UYARI!"
End If
End Sub

Mantığı bu şekilde düşünürseniz istediğiniz şekilde kodlayabilirsiniz.
 
Ok. Mantığı anladım.
Peki S Stünunda Gün, T stünunda Vardiya var.
Her ikisini birden nasıl kontrol ettirebilirim.

Örneğin S2:T12 Aralığındaki Gün ve vardiyayı AD2:AE12 Aralığında baksın.
 
Eğer her ikisi birden eşit ise durumunu sorgulamak için and kullanınız. Yok sadece ikisinden birinin eşit mi değil mi sorgulaması için or kullanınız.
Kod:
Sub Uyarı ()
If Range("S2").Value = Range("AD2").Value and Range("T2").Value = Range("AE2").Value Then
Msgbox "Aynı değeri girdiniz!",VBOkOnly,"UYARI!"
End If
End Sub
 
Çok teşekkür ediyorum. Kodlar çalışıyor.

Fakat birt sonraki gün, tarih ve vardiya bir alt satıra denk gelebiliyor. Böyle olunca verdiğimiz kriteri sebebi ile uyarı vermedi.

S2:T12 Aralığındaki Gün ve vardiyayı AD2:AE12 Aralığında bakamaz mı?
 
Örnek dosya ekleyebilirseniz dediğiniz gibi kod yazmaya çalışırız.
 
Dosya ekteki gibidir.
 

Ekli dosyalar

Sayfanın kod bölümüne yapıştırın.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [S2:T12]) Is Nothing Then Exit Sub
If Target.Value = "" Then Exit Sub
For i = 2 To 12
    If Cells(Target.Row, "S") = Cells(i, "AD") And Cells(Target.Row, "T") = Cells(i, "AE") Then
        Cells(Target.Row, "S").Select
        MsgBox "Aynı değeri girdiniz!", vbOKOnly, "UYARI!"
        Exit Sub
    End If
Next i
End Sub
 
Çok teşekkür ediyorum. Kolay Gelsin.
 
Rica ederim. İyi çalışmalar.
 
Geri
Üst