Note: The other languages of the website are Google-translated. Back to English

Excel'de hücre değeri değiştiğinde makro nasıl çalıştırılır?

Normalde Excel'de VBA kodunu çalıştırmak için F5 tuşuna veya Çalıştır düğmesine basabiliriz. Ancak, bir hücre değeri değiştiğinde belirli makro kodunu çalıştırmayı hiç denediniz mi? Bu makale, Excel'de bu işi halletmek için bazı hızlı püf noktaları tanıtacağım.

VBA koduyla belirli bir hücre değeri değiştiğinde makroyu çalıştırın veya çağırın

VBA kodu ile bir aralıkta herhangi bir hücre değeri değiştiğinde makroyu çalıştırın veya çağırın


ok mavi sağ balon VBA koduyla belirli bir hücre değeri değiştiğinde makroyu çalıştırın veya çağırın

Bir hücre değerini değiştirerek bir makro kodu çalıştırmak için, aşağıdaki VBA kodu size bir iyilik yapabilir, lütfen şunu yapın:

1. Hücre değeri değişirse makroyu yürütmek istediğiniz sayfa sekmesine sağ tıklayın ve ardından Kodu Görüntüle bağlam menüsünden ve açılan Uygulamalar için Microsoft Visual Basic penceresinde, aşağıdaki kodu boş Modüle kopyalayıp yapıştırın:

VBA kodu: Hücre değeri değiştiğinde makroyu çalıştır:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then
        Call Mymacro
    End If
End Sub

doc hücre değişirse makro çalıştır 1

not: Yukarıdaki kodda, A1 kodu temel alarak çalıştırmak istediğiniz belirli hücredir, makro çalıştırmak istediğiniz makro adıdır. Lütfen bunları ihtiyacınıza göre değiştirin.

2. Ve sonra, kod penceresini kaydedin ve kapatın, şimdi, A1 hücresine değer girdiğinizde veya değiştirdiğinizde, belirli kod bir kerede tetiklenecektir.


ok mavi sağ balon VBA kodu ile bir aralıkta herhangi bir hücre değeri değiştiğinde makroyu çalıştırın veya çağırın

Bir hücre aralığında herhangi bir hücre değeri değiştiğinde bir makroyu çalıştırmak veya tetiklemek istiyorsanız, aşağıdaki kod size yardımcı olabilir.

1. Hücre değeri değişirse makroyu yürütmek istediğiniz sayfa sekmesine sağ tıklayın ve ardından Kodu Görüntüle bağlam menüsünden ve açılan Uygulamalar için Microsoft Visual Basic penceresinde, aşağıdaki kodu boş Modüle kopyalayıp yapıştırın:

VBA kodu: Bir aralıktaki herhangi bir hücre değeri değiştiğinde makroyu çalıştır:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:B100")) Is Nothing Then
Call Mymacro
End If
End Sub

doc hücre değişirse makro çalıştır 2

not: Yukarıdaki kodda, A1: B100 kodu temel alarak çalıştırmak istediğiniz belirli hücrelerdir, makro çalıştırmak istediğiniz makro adıdır. Lütfen bunları ihtiyacınıza göre değiştirin.

2. Ve sonra, kod penceresini kaydedip kapatın, şimdi, A1: B100'ün herhangi bir hücresine değer girdiğinizde veya değiştirdiğinizde, belirli kod bir kerede çalıştırılacaktır.


Birden çok çalışma kitabından tüm makroları kaldırın

Kutools for Excel's Tüm Makroları Toplu Olarak Kaldır yardımcı program, ihtiyacınız olan tüm makroları birden çok çalışma kitabından kaldırmanıza yardımcı olabilir. Kutools for Excel'i şimdi indirin ve ücretsiz deneme!

Kutools for Excel: 300'den fazla kullanışlı Excel eklentisi ile 30 günde sınırlama olmaksızın ücretsiz deneyin. Hemen indirin ve ücretsiz deneme!


İlgili yazılar:

Excel'de yazdırmadan önce makro otomatik olarak nasıl çalıştırılır?

Excel'de hücre değerine göre makro nasıl çalıştırılır?

Excel'de açılır listeden seçilen değere dayalı olarak makro nasıl çalıştırılır?

Excel'de köprülere tıklayarak makro nasıl çalıştırılır?

Çalışma kitabından sayfa seçildiğinde makro nasıl çalıştırılır?


En İyi Ofis Üretkenliği Araçları

Kutools for Excel Sorunlarınızın Çoğunu Çözer ve Verimliliğinizi% 80 Artırır

  • Yeniden: Hızlıca yerleştirin karmaşık formüller, grafikler ve daha önce kullandığınız her şey; Hücreleri Şifrele şifre ile; Posta Listesi Oluşturun ve e-posta gönder ...
  • Süper Formül Çubuğu (birden çok metin ve formül satırını kolayca düzenleyin); Okuma Düzeni (çok sayıda hücreyi kolayca okuyun ve düzenleyin); Filtrelenmiş Aralığa Yapıştır...
  • Hücreleri / Satırları / Sütunları Birleştirme Veri kaybetmeden; Bölünmüş Hücre İçeriği; Yinelenen Satırları / Sütunları Birleştirme... Yinelenen Hücreleri Önleyin; Aralıkları Karşılaştır...
  • Yinelenen veya Benzersiz'i seçin Satırlar; Boş Satırları Seçin (tüm hücreler boştur); Süper Bul ve Bulanık Bul Birçok Çalışma Kitabında; Rastgele Seçim ...
  • Tam kopya Formül referansını değiştirmeden Birden Çok Hücre; Otomatik Referans Oluştur Birden Çok Sayfaya; Madde İşaretleri Ekle, Onay Kutuları ve daha fazlası ...
  • Metni Çıkar, Metin Ekle, Konuma Göre Kaldır, Alanı Kaldır; Sayfalama Alt Toplamları Oluşturma ve Yazdırma; Hücre İçeriği ve Yorumları Arasında Dönüştür...
  • Süper Filtre (filtre şemalarını kaydedin ve diğer sayfalara uygulayın); Gelişmiş Sıralama ay / hafta / gün, sıklık ve daha fazlasına göre; Özel Filtre kalın, italik ...
  • Çalışma Kitaplarını ve Çalışma Sayfalarını Birleştirin; Tabloları anahtar sütunlara göre birleştirin; Verileri Birden Çok Sayfaya Bölme; Toplu dönüştürme xls, xlsx ve PDF...
  • 300'den fazla güçlü özellik. Office / Excel 2007-2021 ve 365'i destekler. Tüm dilleri destekler. Kuruluşunuzda veya kuruluşunuzda kolay devreye alma. Tam özellikler 30 günlük ücretsiz deneme. 60 günlük para iade garantisi.
kte sekmesi 201905

Office Tab, Office'e Sekmeli Arayüz Getirir ve İşinizi Çok Daha Kolay Hale Getirir

  • Word, Excel, PowerPoint'te sekmeli düzenlemeyi ve okumayı etkinleştirin, Publisher, Access, Visio ve Project.
  • Yeni pencereler yerine aynı pencerenin yeni sekmelerinde birden çok belge açın ve oluşturun.
  • Üretkenliğinizi% 50 artırır ve her gün sizin için yüzlerce fare tıklamasını azaltır!
ofis tabanı
Yorumları sıralama ölçütü
Yorumlar (17)
Henüz derecelendirme yok. İlk değerlendiren siz olun!
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu modül bende çalışmıyor. Hücrenin DEĞERİ değiştiğinde kodu çalıştıracağını söylüyor. Hücreye YAZARsam işe yaradığını görüyorum, ancak hücrenin değeri bir formülle, örneğin bir Counta ile değiştirilirse, çalışmaz. Bir formül aracılığıyla DEĞER değiştiğinde makro yürütmek için bir çözümünüz var mı? Teşekkürler, Wayne
Bu yorum sitedeki moderatör tarafından en aza indirildi
Wayne ile aynı sorun. Herhangi bir yardım çok takdir edildi! teşekkürler Ronnie
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba beyler,

Evet, yukarıdaki kod yalnızca hücre değeri manuel olarak değiştiğinde kullanılabilir, formül sonucu değiştiğinde ilgili hücreler değiştiğinde belirli bir makro kodunu otomatik olarak çalıştırmanız gerekiyorsa, lütfen bu makaleyi ziyaret edin:
https://www.extendoffice.com/documents/excel/4618-excel-vba-run-macro-when-cell-formula-result-changes.html.
Lütfen deneyin ve cevabınızı umuyoruz.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Çalışmıyor... ve hücre değerini manuel olarak değiştiriyorum. Ayarlanması gereken herhangi bir ön yapılandırma var mı?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bunu prosedürde test edin ve parametre olarak kullanın


Özel Alt Çalışma Sayfası_Değişikliği (Aralık Olarak ByVal Hedefi)

MsgBox Target.Address & "-" e Target.AddressLocal

End Sub
Bu yorum sitedeki moderatör tarafından en aza indirildi
Evet açıklama, değer değiştiğinde tetiklenmesi gerektiğini söylüyor, ancak ikinci kod, değer hiçbir şey olmadığında olduğunu söylüyor ve ilki, bir değer değiştiğinde de tetiklenmiyor, ancak koda bakarken F5'e basarsam, istiyor MyMacro'yu tetiklemek için, ancak değer değişikliklerine hiçten bir şeye veya tam tersine gitmek kadar tepki vermiyor gibi görünüyor.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu benim için ilk kez, liste seçimine göre metni görüntüleyen veri doğrulama listesini kullanarak işe yaradı.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Benim için harika çalıştı! Benim ikilemim, bunun göreceli bir referans makrosu olmasını istiyorum ve girişi kaydetmek için enter'a basmak ve hücreyi silmek için silmek arasında bir fark var.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, faydalı kod. Değişirken değişen hücrelerin etrafına bir halka takmanın mümkün olup olmadığını düşünüyordum. Ve her Pazartesi çevreleri sıfırla?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba Kevin,
Sorununuzu çözmek için burada bir fikir yok, iyi bir çözümünüz varsa, lütfen buraya yorum yapın.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Aradığınız makro, bunu nerede buldunuz? Modüller klasöründe benimki var ama çalışma sayfasının herhangi bir hücresine herhangi bir değer koyduğumda, şunu söyleyen bir Derleme hatası alıyorum:
Modül değil, beklenen değişken veya prosedür.

Lütfen yardım edin.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, DrCartwright,
Sana bu kadar geç cevap verdiğim için özür dilerim.
Evet, dediğiniz gibi, makro kodu Modülün içinde bulunmalıdır ve aşağıdaki ekran görüntüsü gibi kod adını kendi adınıza değiştirmeniz gerekir:
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba iyi günler
quisiera saber el codigo para que se aktif una makro cuando cambia el valor de una celda de una sütun, pero este valor cambia por formülü, günah que el usuario introduzca ningun valor.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba arkadaşlar, şu sorunu çözüyorum: Bağlantı A sütununa eklendiğinde bir web sitesi başlığını kazımak ve bu değeri B sütunundaki ilgili hücreye (yanındaki) koymak istiyorum. web sitesi A sütununda, kod, A2 sütunundan kodda tanımlandığı gibi "son satıra" kadar tüm listeyi yeniden çalıştırır. B sütununu yalnızca tek bir A sütunu değiştirildiğinde değiştirmenin bir yolu var mı? Yani, A36 sütununda bir bağlantı yapıştırırsam, hücrenin kullanılan aralığın ortasında mı yoksa en altında mı olduğuna bakılmaksızın B36'da bir başlık alırım. Bunu şu anda olduğu gibi birden çok girişi yeniden çalıştırmak zorunda kalmadan kullanmak istiyorum; (yani "i =2'den son satıra" döngüsü)? Ayrıca, aşağıdakileri Modüler makrodan, yani alttan özel alta değiştirmek istiyorum, burada 'hedef' A:A aralığındaki herhangi bir hücre olduğunda değişime (yani kesişme işlevi) tepki verir. Çok teşekkürler!


Alt get_title_header()



Nesne Olarak Dim wb

Dokümanı Nesne Olarak Karart

Dize olarak sURL'yi karart

Soluk As Long

lastrow = Sheet1.Cells(Rows.Count, "A").End(xlUp).row



i = 2 için

Set wb = CreateObject("internetExplorer.Application")

sURL = Hücreler(i, 1)



wb.navigate sURL'si

wb.Visible = Yanlış



Wb.Meşgulken

DoEvents

uygulamak



''HTML belgesi

Belgeyi ayarla = wb.document



Hücreler(i, 2) = belge.Başlık



Hatada GoTo err_clear

Cells(i, 3) = doc.GetElementsByTagName("h1")(0).innerText

err_clear:

Hata <> 0 ise

err.Clear

Devam Et Sonraki

Eğer son

wb.Çık

Aralık(Hücreler(i, 1), Hücreler(i, 3)).Sütunlar.Otomatik Sığdır

I Sonraki



End Sub




Teşekkür ederim!
Bu yorum sitedeki moderatör tarafından en aza indirildi
Başka bir çalışma kitabı (Parça Durumu) değişiklik yaptığında 1 çalışma kitabını (BOM) otomatikleştirmeye çalışıyorum. Parça durum dosyası her 15 dakikada bir güncellenir. Bu değişiklikler meydana geldiğinde belirli bir sütunu nasıl otomatikleştireceğimi bilmem gerekiyor mu? Herhangi bir fikir
Bu yorum sitedeki moderatör tarafından en aza indirildi
C3 hücresinde bulunan bir açılır kutudan seçime bağlı olarak çeşitli sütunları gizlemek için aşağıdaki kodu kullanıyorum, ancak çalışma sayfasının herhangi bir yerinde bir hesaplama yapıldıktan sonra TÜM sütunlar GİZLİ hale geliyor. Bunu nasıl düzeltirim?

Özel Alt Çalışma Alanı_Değiştir (ByVal Target As Range)

Sütunlar("D:F").Otomatik Sığdır

Dize Olarak Dim Proj1
Dize Olarak Dim Proj2
Dize Olarak Dim Proj3
Dize Olarak Dim Proj4
Dize Olarak Dim Proj5
Dize Olarak Dim Proj6
Dize Olarak Dim Proj7
Dize Olarak Dim Proj8
Dize Olarak Dim Proj9
Dize Olarak Dim Proj10

Proj1 = ActiveWorkbook.Sheets("Projeler").Range("A1").Value
Proj2 = ActiveWorkbook.Sheets("Projeler").Range("A2").Value
Proj3 = ActiveWorkbook.Sheets("Projeler").Range("A3").Value
Proj4 = ActiveWorkbook.Sheets("Projeler").Range("A4").Value
Proj5 = ActiveWorkbook.Sheets("Projeler").Range("A5").Value
Proj6 = ActiveWorkbook.Sheets("Projeler").Range("A6").Value
Proj7 = ActiveWorkbook.Sheets("Projeler").Range("A7").Value
Proj8 = ActiveWorkbook.Sheets("Projeler").Range("A8").Value
Proj9 = ActiveWorkbook.Sheets("Projeler").Range("A9").Value
Proj10 = ActiveWorkbook.Sheets("Projeler").Range("A10").Value

Aralık olarak xRG'yi karart
Tamsayı olarak xHRow'u karart
xRG = Aralık ("C3") olarak ayarla
Kesişmiyorsa (Hedef, xRG) O Zaman Hiçbir Şey Değildir

Target.Value = Proj1 ise
Application.Columns("E:F").Gizli = Doğru
Application.Columns("D").Gizli = Yanlış

ElseIf Target.Value = Proj2 O zaman
Range("D:D, F:F").EntireColumn.Hidden = True
Application.Columns("E").Gizli = Yanlış

Eğer son
Eğer son
End Sub
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu tam olarak aradığım şeydi. Bir kullanıcı bir hücreye bir değer girdiğinde, basit bir sıralama makrosu çalışır. Makro kendi başına düzgün çalışıyor ancak önerilen kodu kullanarak geçersiz bir özellik kullanımı hatası alıyorum.

Sorun ne olabilir?
Buraya henüz hiç yorum yapılmamış
Lütfen yorum yazın
Misafir olarak yayınlama
×
Bu gönderiyi değerlendirin:
0   Karakterler
Önerilen Konumlar

Bizi takip et

Telif Hakkı © 2009 - www.extendoffice.com. | Tüm hakları Saklıdır. Tarafından desteklenmektedir ExtendOffice. | | | Site Haritası
Microsoft ve Office logosu, Microsoft Corporation'ın Amerika Birleşik Devletleri ve / veya diğer ülkelerdeki ticari markaları veya tescilli ticari markalarıdır.
Sectigo SSL ile korunmaktadır