Araç Servis Takip Programı (AST-v.2) foruma eklenmiştir. 
http://www.excelce.net/forum/index.php?topic=1656.0

Gönderen Konu: Otomatik Hücre Değeri Değiştirme  (Okunma sayısı 11735 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı katip16487

  • Excelce Onbaşı
  • **
  • İleti: 15
  • Puan +0/-0
  • Cinsiyet: Bay
  • Excel'den Daha Fazlası!..
  • Ad Soyad: AHMET REVAN KULA
  • Doğum Yılınız: 1980
  • İl / İlçe: TRABZON / MERKEZ
  • İşletim Sisteminiz: Windows 7 Home Premium
  • Mesleğiniz: MÜDÜR
  • Office Versiyonunuz: 2003 -2007
Otomatik Hücre Değeri Değiştirme
« : 27 Nisan 2012, 10:41:36 »
Ekli dosyamda VERİ-DOĞRULAMA sistemi ile yaptığım hücrelerde EVET - HAYIR yazmaktadır....

Ancak, normal şartlar altında bütün hücrelerde EVET yazmaktadır...

Yapmak istediğim bu hücrelerden herhangi birisini HAYIR diye değiştirdiğimde o hücreden itibaren o sütundaki son hücreye kadar olan verilerin hepsinin HAYIR olarak değişmesi...

B2 ile B100 hücreleri arasında işlem yapacağım.

Bütün herkese saygılar sunarım...

Forumda yaptığım aramada benzer bişey bulamadım...

Var olanlar genelde formül kopyalama sistemi ile çalışan makrolar...

Çevrimdışı Bülent Öztürk

  • Excelce.Net Yönetici
  • *
  • İleti: 1411
  • Puan +19/-0
  • Cinsiyet: Bay
  • Türkçe Konuşup Excelce Yazıyoruz...
    • Bülent Öztürk
  • Ad Soyad: Bülent Öztürk
  • Doğum Yılınız: 1976
  • İl / İlçe: İstanbul / Çorlu
  • İşletim Sisteminiz: Win.10
  • Mesleğiniz: Bilgi Teknolojileri
  • Office Versiyonunuz: 2016
Ynt: Otomatik Hücre Değeri Değiştirme
« Yanıtla #1 : 27 Nisan 2012, 14:23:38 »
Makro ile çözüm işinize yarar mı?

İlgili sayfanın adına sağ tıklayın, açılan VBA penceresinde sayfa kodlarına aşağıdakileri yapıştırın:

Kod: [Seç]
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value = "HAYIR" Then
Application.EnableEvents = False
    b = Target.Row
    Range("B" & b + 1 & ":B100").Value = "HAYIR"
Application.EnableEvents = True
End If
End Sub
(Ücretli program talepleriniz için iletişime geçebilirsiniz, excelvbprogram@gmail.com)

Çevrimdışı katip16487

  • Excelce Onbaşı
  • **
  • İleti: 15
  • Puan +0/-0
  • Cinsiyet: Bay
  • Excel'den Daha Fazlası!..
  • Ad Soyad: AHMET REVAN KULA
  • Doğum Yılınız: 1980
  • İl / İlçe: TRABZON / MERKEZ
  • İşletim Sisteminiz: Windows 7 Home Premium
  • Mesleğiniz: MÜDÜR
  • Office Versiyonunuz: 2003 -2007
Ynt: Otomatik Hücre Değeri Değiştirme
« Yanıtla #2 : 27 Nisan 2012, 15:07:51 »
Bülent Bey teşekkür ederim...

Verdiğiniz cevap işime yarayacaktır muhtemelen, ancak bir bilgiyi eksik yazdığım için çalışmadı anladığım kadarı ile...

Sayfamda,

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Satır As Integer
    If Intersect(Target, Range("J12:J131")) Is Nothing Then Exit Sub
    If Target.Cells.Count > 1 Then Exit Sub
    If Target <> "" Then
        Satır = Target.End(3).Row + 1
        If Satır >= Target.Row Then Exit Sub
        If Cells(Satır, Target.Column) = "" Then
            Range(Cells(Satır, Target.Column), Cells(Target.Row - 1, Target.Column)) = CDate(Target)
            Range("J12:J131").NumberFormat = "dd/mm/yyyy"
        End If
    End If
End Sub


Şeklinde kod bulunmaktadır...

Bu kodun bulunduğu sayfaya açmış olduğum konuya ilişkin kodu yerleştirmem gerekiyor...

Konu ile ilgili kodu ise çalışma sayfamda L12 ile L 131 hücreleri arasına yerleştireceğim...

Vereceğiniz bilgiler ve yapacağınız yardımlardan dolayı teşekkür ederim...

Saygılarımla...



Çevrimdışı Bülent Öztürk

  • Excelce.Net Yönetici
  • *
  • İleti: 1411
  • Puan +19/-0
  • Cinsiyet: Bay
  • Türkçe Konuşup Excelce Yazıyoruz...
    • Bülent Öztürk
  • Ad Soyad: Bülent Öztürk
  • Doğum Yılınız: 1976
  • İl / İlçe: İstanbul / Çorlu
  • İşletim Sisteminiz: Win.10
  • Mesleğiniz: Bilgi Teknolojileri
  • Office Versiyonunuz: 2016
Ynt: Otomatik Hücre Değeri Değiştirme
« Yanıtla #3 : 27 Nisan 2012, 16:52:11 »
Şu şekilde dener misiniz?

Kod: [Seç]
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Value = "HAYIR" Then
Application.EnableEvents = False
    b = Target.Row
    Range("B" & b + 1 & ":B100").Value = "HAYIR"
Application.EnableEvents = True
End If

    Dim Satır As Integer
    If Intersect(Target, Range("J12:J131")) Is Nothing Then Exit Sub
    If Target.Cells.Count > 1 Then Exit Sub
    If Target <> "" Then
        Satır = Target.End(3).Row + 1
        If Satır >= Target.Row Then Exit Sub
        If Cells(Satır, Target.Column) = "" Then
            Range(Cells(Satır, Target.Column), Cells(Target.Row - 1, Target.Column)) = CDate(Target)
            Range("J12:J131").NumberFormat = "dd/mm/yyyy"
        End If
    End If
End Sub
(Ücretli program talepleriniz için iletişime geçebilirsiniz, excelvbprogram@gmail.com)