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

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

Diyelim ki, çalışma kitabımda birden çok makro kodum var ve şimdi bu kodları hücre değerine göre çalıştırmak istiyorum. Bu makalede, Excel'i kullanırken günlük işlerinizde karşılaşabileceğiniz birkaç durumdan bahsedeceğim.

Hücre değeri, VBA kodu ile belirli bir değerden büyük veya küçükse makroyu çalıştırın veya tetikleyin

Hücre değeri VBA kodu ile belirli bir metne eşitse makroyu çalıştırın veya tetikleyin


ok mavi sağ balon Hücre değeri, VBA kodu ile belirli bir değerden büyük veya küçükse makroyu çalıştırın veya tetikleyin

Örneğin, A1 hücresindeki değer 10 ile 50 arasındaysa, makro1'i çalıştırın ve değer 50'den büyükse, makro2'yi çalıştırın. Bu işi Excel'de çözmek için lütfen aşağıdaki VBA kodunu uygulayın.

1. Makroyu bir hücre değerine göre 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 şunlardan büyük veya küçükse makroyu çalıştır:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If IsNumeric(Target) And Target.Address = "$A$1" Then
        Select Case Target.Value
        Case 10 To 50: Macro1
        Case Is > 50: Macro2
        End Select
    End If
End Sub

doc, hücre değeri 1'e göre makro çalıştır

not: Yukarıdaki kodda:

A1 makroyu temel alarak çalıştırmak istediğiniz belirli değeri içeren hücredir;

Durum 10 ila 50: Macro1: değer 10 ile 50 arasında ise, Macro1'i çalıştırın;

Durum Is> 50: Macro2: değer 50'den büyükse, Macro2'yi çalıştırın.

Lütfen bu makro adlarını ve kriterlerini ihtiyacınıza göre değiştirin ve ayrıca aşağıdaki kriterleri de ekleyebilirsiniz. dava komut.

2. Ardından bu kod penceresini kaydedin ve kapatın, şimdi girdiğiniz değer A10 hücresinde 50 ile 1 arasında olduğunda, Makro1 tetiklenecek, girilen değer 50'den büyükse, Makro2 çalıştırılacaktır.


ok mavi sağ balon Hücre değeri VBA kodu ile belirli bir metne eşitse makroyu çalıştırın veya tetikleyin

Makroyu bir hücredeki belirli bir metne göre tetiklemek istiyorsanız, örneğin, "Sil" metni girilmişse makro1'i ve "Ekle" metni yazılırsa makro2'yi çalıştırın. Aşağıdaki kod size bir iyilik yapabilir.

1. Makroyu hücre değerine göre yürütmek istediğiniz sayfaya 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 belirli bir metinse makroyu çalıştırın

Sub worksheet_change(ByVal target As Range)
Set target = Range("A1")
If target.Value = "Delete" Then
 Call Macro1
End If
If target.Value = "Insert" Then
Call Macro2
End If
End Sub 

doc, hücre değeri 2'e göre makro çalıştır

not: Yukarıdaki kodda, "Sil"Ve"Ekle", Makroları temel alarak çalıştırmak istediğiniz hücre metinleridir ve Macro1 ve Macro2 metne dayalı olarak yürütmek istediğiniz makrolardır. Lütfen bunları ihtiyacınıza göre değiştirin.

2. Sonra bu kodu kaydedin ve pencereyi kapatın, şimdi A1 hücresine “Sil” metnini girdiğinizde, makro1 tetiklenir, “Ekle” metni girilirse makro2 çalıştırılır.


İlgili yazılar:

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

Excel'de yazdırmadan önce makro otomatik olarak 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 (18)
5 üzerinden 5 olarak derecelendirildi · 1 derecelendirme
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, iki hücreye dayalı bir makro çalıştırmak isterseniz ne dersiniz? Bir hücre metin tabanlı ve diğer hücre sayısal değerlere sahip mi? O zaman, iki hücre tam olarak ne istediğinizi gösteriyorsa, ilk hücre için "EVET" ve ikinci hücre için 1 gibi, bir makro çağırmak istersiniz, değilse, "Bulunamadı" yazan bir açılır kutu gösterir.
Bu yorum sitedeki moderatör tarafından en aza indirildi
gereksinimi:
Seçime göre
Aşağıdaki gibi aynı boyuttaki üç özelliği takip etmek için bir açılır liste olacaktır.
Ve hücrelerden türetilen üç türetilmiş hücre olacaktır (G46, G47 ve G48)

Senaryo:
Masraf yeri açılır listesinden bir değer seçersem, masraf yeri türetilmiş hücresi(K46) masraf yeri açılır listesinden(H46) seçilen değerle doldurulmalı ve diğer iki türetilmiş hücre (K47 ve k48) boş hale gelmelidir.

Benzer şekilde, Bütçe yöneticisi açılır listesinden değer seçersem, Bütçe yöneticisi türetilmiş hücre, Bütçe yöneticisi açılır listesinden (H47) seçilen değerle doldurulmalı ve diğer iki türetilmiş hücre (K45 ve k48) boş olmalıdır.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Sonuç analizi ile çalışıyorum. Bu durumda, excel'deki veriler bu Ad, Alt ad, Crade gibi olacaktır. Şimdi, sonuçtan tüm başarılı veya başarılı aday numaralarını bulmak istiyorum. Onu nasıl alabilirim. Çünkü elimde 6 farklı konu ve sonuçları tek bir excel sayfasında var. Öğrenci bir konuda başarısız olursa başarılı öğrenci sayılmaz. Tüm konularda isimlerini nasıl kaldırabilirim.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Lütfen aynı çalışma sayfası için kodu düzeltin.
İLK KOD MÜKEMMEL ÇALIŞIYOR
Özel Alt Çalışma Alanı_Değiştir (ByVal Target As Range)
Kesişmiyorsa(Hedef, Aralık("D1")) O Zaman Hiçbir Şey Değildir
Vaka Aralığını Seç ("D1")
Durum "0.5": Yarım
Durum "1": Bir
Vaka "1.25": OneTwentyFive
Select End
Eğer son
End Sub

İKİNCİ KOD ÇALIŞMIYOR (lütfen aşağıdakini düzeltin)
Özel Alt Değişiklik (Aralık Olarak ByVal Hedefi)
Kesişmiyorsa(Hedef, Aralık("D2")) O Zaman Hiçbir Şey Değildir
Vaka Aralığını Seç ("D2")
Durum "9.53": dokuz noktabeşüç
Select End
Eğer son
End Sub
Bu yorum sitedeki moderatör tarafından en aza indirildi
Olá, şu sorudan sonra:
Na Celula A1, assim que ela estiver preenchida passe para a celula de baixo, hiçbir caso A2.
Tüm kadastro produtos para kadastro produtos, e ele lê os numeros otomatik, ai tenho que ficar apertando ENTER para ir para celula de baixo.

Teşekkürler!
Bu yorum sitedeki moderatör tarafından en aza indirildi
Hola, una danışma, como se haría si por ejemplo dado un numero se pueda ejecutar las dos makroları
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, Gustavo
Sorununuzu çözmek için lütfen aşağıdaki kodu uygulayın:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If IsNumeric(Target) And Target.Address = "$A$1" Then
        If Target.Value > 10 And Target.Value < 50 Then
         macro1
         macro2
        End If
    End If
End Sub

Lütfen deneyin, umarım size yardımcı olabilir!
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bonjour
je souhaiterais aplike cette macro à mon code. En iyi problemler, en iyi ihtimalle, en iyi şifreler ve keşifler yoluyla.
En iyi ihtimalle manuel düzenleme, fonctionne düzeltme.

şimdiden teşekkür ederim
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba Gilles,
bir eklemelisin Döndürme Düğmesi (ActiveX Kontrolü) önce, sonra sağ tıklayın, seçin Kodu görüntüle, ardından aşağıdaki kodu kopyalayıp mevcut komut dosyaları arasına yapıştırın,
Dim xWSh As Worksheet
Dim xOL As OLEObject
Dim xRg As Range
Set xWSh = Application.ActiveSheet
Set xOL = xWSh.OLEObjects("SpinButton1") 'The name of the spin button
Set xRg = xWSh.Range(xOL.LinkedCell)
If IsNumeric(xRg) And xRg.Address = "$A$1" Then
        Select Case xRg.Value
        Case 10 To 50: Macro1
        Case Is > 50: Macro2
        End Select
End If

https://www.extendoffice.com/images/stories/comments/comment-skyyang/DOC-RUN-CODE.png

Lütfen deneyin, umarım size yardımcı olabilir!
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba!

VBA'da çok yeniyim ve bu çözümü sahip olduğum bir excel sayfası için denedim. Temel olarak excel'de uzun bir listem var, burada T sütununa Evet veya Hayır yazmanız gerekiyor ve bunu istiyorum, Evet yazarsanız, bir makro çalıştırın... Aralığı tanımlamanın birçok farklı yolunu denedim ama hiç birşey çalışmıyor.

Alt worksheet_change(ByVal Hedef Olarak Aralık)

Hedef ayarla = Aralık ("T:T")
Eğer target.Value = "Evet" ise
Macro1'i Arayın
Eğer son

End Sub

Bu sorunu vurguluyorum (çalışma zamanı hatası-tip uyuşmazlığı): Eğer target.Value = "Evet" O zaman

Herkes yardımcı olabilir misiniz?

Saygılarımla, Isabella
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, Westergaard
Aşağıdaki VBA kodu size yardımcı olabilir: (Not: Lütfen uygulamanın adını değiştirin. Macro1 kendi kod adınıza)
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("T:T")) Is Nothing Then
If Target.Value = "Yes" Then
      Call Macro1
    End If
    End If
End Sub

Lütfen deneyin, umarım size yardımcı olabilir!
Bu yorum sitedeki moderatör tarafından en aza indirildi
Çok teşekkürler! Artık çalışıyor :)
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba,
A1 hücresi formül hesaplama sonucunda bu kod tabanı nasıl değiştirilir?
Alt Worksheet_Calculate()
Lütfen yardım et

Private Sub Worksheet_Change(Excel.Range As ByVal Target)
Target.Cells.Count > 1 ise Sub Exit
IsNumeric(Target) Ve Target.Address = "$A$1" ise, O zaman
Vaka Hedefi Seçin.Değer
Durum 10 ila 50: Macro1
Durum Is> 50: Macro2
Select End
Eğer son
End Sub
5 üzerinden 5 olarak derecelendirildi
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, FG,
Kodun formül hücrelerinde çalışması için lütfen aşağıdaki kodu uygulayın:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    On Error Resume Next
    If Target.Cells.Count > 1 Then Exit Sub
    If IsNumeric(Target) And Target.Address = "$A$1" Then
        Select Case Target.Value
        Case 10 To 50: macro1
        Case Is > 50: macro2
        End Select
    ElseIf (Not Intersect(Range("$A$1"), Target.Dependents) Is Nothing) Then
        Set Rg = Intersect(Range("$A$1"), Target.Dependents)(1)
        Select Case Rg.Value
        Case 10 To 50: macro1
        Case Is > 50: macro2
        End Select
    End If
End Sub

Lütfen bir deneyin, umarım size yardımcı olabilir!
Bu yorum sitedeki moderatör tarafından en aza indirildi
Çav skyyang. Kontrol edin. Vba che basandosi'de bir hücre prezzo (E1) varyasyonu olan bir program, DDE'de borsa ticaret piattaforma, fissa ve prezzi ile kolejler: Massimo, Minimo, Apertura, Chiusura, her poi passare alla riga artiva a tabanında Tüm elektronik sis perdesi için geçici bir aralık. L'algoritmo da me sviluppato fa si che nelle kolonne: "BH" ve "BI" görselleştirmesi ve satın alma ve satma prezzi, ma solo quando soddisfatte le condizioni date, buna ek olarak celle non restituiscono nessun değer. Quello di cui avrei bisogno ve di un avviso sonoro .wav che my avvisie, bir değeri iade etmek, satın almak veya satın almak, her 14 yıl boyunca cevherden ayrılmayan bir modda. Çevrim içi bir "SoundMe()" kodu eklemek, mutfak programlarında ve prezzi'lerinde yeni bir büyük veya yeni bir minimo nella riga olabilir. Pensi che il problema si siparis etme şansınız var mı? Dikkat için Grazie
Stefano
Bu yorum sitedeki moderatör tarafından en aza indirildi
Günaydın,
Richiamare permette che listato 2 macro'yu bir cella'nın değerinden nasıl provato il, funzione "se" un funzione, se digito ve valori (vero veya faalso) funziona'dan türetilen bir makro.

Posso ovviare'ye gel?
Sonunda, makro ve derlemelerden çok uzak olan tüm listeleri doğrulamak için koşulları kullanmaktan kaçınabilirsiniz?

grazie
Bu yorum sitedeki moderatör tarafından en aza indirildi
Günaydın,
Bir "if" denetimine eklediğiniz bir hücrede bir makroya sahip olabilirsiniz veya bir sayı değil, bir veri girebilirsiniz.

A1 ekleme örneği: If(B2=0;vero;falso) e la macro leggendo vero mi nasconde lo Sheet2 altrimenti my sheet 2.

Gelelim mi?
Riesco, çok işlevli, A1'de bir değeri manuel olarak ekleyebileceğinizden emin olun (bununla birlikte veya daha sonra da yapılabilir).

Grazie
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba Carlo,
Aslında bu makaledeki ikinci kod sorununuzu çözebilir.
not: Sadece koddaki metni Doğru ve Yanlış olarak değiştirmeniz ve kod adını kendiniz değiştirmeniz gerekir.
Sub worksheet_change(ByVal target As Range)
Set target = Range("A1")
If target.Value = "True" Then
 Call Macro1
End If
If target.Value = "False" Then
Call Macro2
End If
End Sub 


Lütfen tekrar deneyin, teşekkürler!
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