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

 Bagaimana cara menjalankan makro berdasarkan nilai sel di Excel?

Misalkan, saya memiliki beberapa kode makro di buku kerja saya, dan sekarang, saya ingin menjalankan kode ini berdasarkan nilai sel. Artikel ini, saya akan berbicara tentang beberapa situasi yang mungkin Anda derita dalam pekerjaan sehari-hari Anda saat menggunakan Excel.

Jalankan atau picu makro jika nilai sel lebih besar atau kurang dari nilai tertentu dengan kode VBA

Jalankan atau picu makro jika nilai sel sama dengan teks tertentu dengan kode VBA


panah gelembung kanan biru Jalankan atau picu makro jika nilai sel lebih besar atau kurang dari nilai tertentu dengan kode VBA

Misalnya, jika nilai di sel A1 antara 10 dan 50, jalankan macro1, dan jika nilainya lebih besar dari 50, jalankan macro2. Untuk menyelesaikan pekerjaan ini di Excel, harap terapkan kode VBA berikut.

1. Klik kanan tab lembar yang ingin Anda jalankan makro berdasarkan nilai sel, lalu pilih Lihat kode dari menu konteks, dan di buka Microsoft Visual Basic untuk aplikasi jendela, salin dan tempel kode berikut ke dalam Modul kosong:

Kode VBA: Jalankan makro jika nilai sel lebih besar atau kurang dari:

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 menjalankan makro berdasarkan nilai sel 1

Note: Pada kode diatas:

A1 adalah sel yang berisi nilai spesifik yang Anda inginkan untuk menjalankan makro berdasarkan;

Kasus 10 Sampai 50: Makro1: artinya jika nilainya antara 10 dan 50, jalankan Macro1;

Kasus Is> 50: Makro2: artinya jika nilainya lebih dari 50, jalankan Macro2.

Harap ubah nama dan kriteria makro ini sesuai kebutuhan Anda, dan Anda juga dapat menambahkan lebih banyak kriteria setelah Kasus Script.

2. Kemudian simpan dan tutup jendela kode ini, sekarang, ketika nilai yang Anda masukkan antara 10 dan 50 di sel A1, Makro1 akan terpicu, jika nilai yang dimasukkan lebih besar dari 50, Makro2 dijalankan.


panah gelembung kanan biru Jalankan atau picu makro jika nilai sel sama dengan teks tertentu dengan kode VBA

Jika Anda ingin memicu makro berdasarkan teks tertentu dalam sel, misalnya, untuk menjalankan makro1 jika teks "Hapus" dimasukkan, dan jalankan makro2 jika teks "Sisipkan" diketik. Kode berikut dapat membantu Anda.

1. Klik kanan lembar yang ingin Anda jalankan makro berdasarkan nilai sel, lalu pilih Lihat kode dari menu konteks, dan di buka Microsoft Visual Basic untuk aplikasi jendela, salin dan tempel kode berikut ke dalam Modul kosong:

Kode VBA: Jalankan makro jika nilai sel adalah teks tertentu

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 menjalankan makro berdasarkan nilai sel 2

Note: Pada kode di atas, “Delete"Dan"Menyisipkan"Adalah teks sel tempat Anda ingin menjalankan makro, dan Makro1 serta Makro2 adalah makro yang ingin Anda jalankan berdasarkan teks. Harap ubah sesuai kebutuhan Anda.

2. Kemudian simpan kode ini dan tutup jendela, sekarang, ketika Anda memasukkan teks "Hapus" di sel A1, makro1 dipicu, jika teks "Sisipkan" dimasukkan, makro2 akan dieksekusi.


Artikel terkait:

Bagaimana cara menjalankan makro saat nilai sel berubah di Excel?

Bagaimana cara menjalankan makro secara otomatis sebelum mencetak di Excel?

Bagaimana cara menjalankan makro berdasarkan nilai yang dipilih dari daftar drop-down di Excel?

Bagaimana cara menjalankan makro dengan mengklik hyperlink di Excel?

Bagaimana cara menjalankan makro saat lembar dipilih dari buku kerja?


Alat Produktivitas Kantor Terbaik

Kutools for Excel Memecahkan Sebagian Besar Masalah Anda, dan Meningkatkan Produktivitas Anda hingga 80%

  • Reuse: Masukkan dengan cepat rumus, bagan yang kompleks dan apa pun yang pernah Anda gunakan sebelumnya; Enkripsi Sel dengan kata sandi; Buat Milis dan mengirim email ...
  • Bilah Formula Super (dengan mudah mengedit beberapa baris teks dan rumus); Membaca Tata Letak (membaca dan mengedit sel dalam jumlah besar dengan mudah); Tempel ke Rentang yang Difilter...
  • Gabungkan Sel / Baris / Kolom tanpa kehilangan Data; Pisahkan Konten Sel; Gabungkan Baris / Kolom Duplikat... Mencegah Sel Duplikat; Bandingkan Rentang...
  • Pilih Duplikat atau Unik Baris; Pilih Baris Kosong (semua sel kosong); Temukan Super dan Temukan Fuzzy di Banyak Buku Kerja; Pilih Acak ...
  • Salinan Tepat Beberapa Sel tanpa mengubah referensi rumus; Buat Referensi Otomatis ke Beberapa Lembar; Sisipkan Poin, Kotak Centang, dan lainnya ...
  • Ekstrak Teks, Tambahkan Teks, Hapus berdasarkan Posisi, Hapus Space; Membuat dan Mencetak Subtotal Paging; Konversi Konten Antar Sel dan Komentar...
  • Filter Super (simpan dan terapkan skema filter ke sheet lain); Penyortiran Lanjutan menurut bulan / minggu / hari, frekuensi dan lainnya; Filter Khusus dengan huruf tebal, miring ...
  • Gabungkan Workbooks dan WorkSheets; Gabungkan Tabel berdasarkan kolom kunci; Pisahkan Data menjadi Beberapa Lembar; Konversi Batch xls, xlsx dan PDF...
  • Lebih dari 300 fitur canggih. Mendukung Office / Excel 2007-2019 dan 365. Mendukung semua bahasa. Penerapan yang mudah di perusahaan atau organisasi Anda. Fitur lengkap uji coba gratis 30 hari. Jaminan uang kembali 60 hari.
tab kte 201905

Tab Office Membawa antarmuka Tab ke Office, dan Membuat Pekerjaan Anda Jauh Lebih Mudah

  • Aktifkan pengeditan dan pembacaan tab di Word, Excel, PowerPoint, Publisher, Access, Visio, dan Project.
  • Buka dan buat banyak dokumen di tab baru di jendela yang sama, bukan di jendela baru.
  • Tingkatkan produktivitas Anda hingga 50%, dan kurangi ratusan klik mouse untuk Anda setiap hari!
officetab bawah
Urutkan komentar berdasarkan
komentar (15)
Rated 5 dari 5 · peringkat 1
Komentar ini diminimalkan oleh moderator di situs
Hai, bagaimana jika Anda ingin menjalankan makro berdasarkan dua sel? Satu sel berbasis teks dan sel lainnya memiliki nilai numerik? Kemudian Anda ingin memanggil makro jika dua sel menunjukkan apa yang Anda inginkan, seperti "YA" untuk sel pertama dan 1 untuk sel kedua, jika tidak, kotak pop akan menunjukkan "Tidak Ditemukan".
Komentar ini diminimalkan oleh moderator di situs
Persyaratan:
Berdasarkan pilihan
Akan ada daftar dropdown untuk mengikuti tiga properti dengan dimensi yang sama seperti di bawah ini.
Dan akan ada tiga sel turunan yang akan diturunkan dari sel (G46,G47 dan G48)

Skenario:
Jika saya memilih nilai dari daftar drop-down pusat biaya, sel turunan pusat biaya (K46) harus diisi dengan nilai yang dipilih dari daftar drop-down pusat biaya (H46) dan dua sel turunan lainnya (K47 dan k48) harus kosong.

Demikian pula jika saya memilih nilai dari daftar drop-down Manajer anggaran, Sel turunan manajer anggaran harus diisi dengan nilai yang dipilih dari daftar drop-down Manajer anggaran (H47) dan dua sel turunan lainnya (K45 dan k48) harus kosong.
Komentar ini diminimalkan oleh moderator di situs
Saya bekerja dengan analisis hasil. Dalam hal ini, data di excel akan seperti ini Nama, Sub nama, Crade. Sekarang, saya ingin mencari nomor kandidat yang lulus atau berhasil dari hasilnya. Bagaimana saya mendapatkannya. Karena, saya memiliki 6 mata pelajaran yang berbeda dan hasilnya dalam satu lembar excel. Jika siswa gagal dalam satu mata pelajaran dia tidak menjadi siswa yang sukses. Bagaimana menghapus nama mereka di semua mata pelajaran.
Komentar ini diminimalkan oleh moderator di situs
Harap perbaiki kode keduanya untuk lembar kerja yang sama.
KODE PERTAMA BEKERJA DENGAN SEMPURNA
Sub Lembar Kerja Pribadi_Rubah (Rentang Target As ByVal)
Jika Tidak Berpotongan(Target, Rentang("D1")) Bukan Apa-apa Kemudian
Pilih Rentang Kasus("D1")
Kasus "0.5": Setengah
Kasus "1": Satu
Kasus "1.25": OneTwentyFive
End Select
End If
End Sub

KODE KEDUA TIDAK BERFUNGSI (tolong perbaiki di bawah ini)
Perubahan Sub Pribadi (Target ByVal Sebagai Rentang)
Jika Tidak Berpotongan(Target, Rentang("D2")) Bukan Apa-apa Kemudian
Pilih Rentang Kasus("D2")
Kasus "9.53": sembilan titik lima tiga
End Select
End If
End Sub
Komentar ini diminimalkan oleh moderator di situs
Olá, quero fazer atau seguinte:
Na Celula A1, assim que ela estiver preenchida passe to a celula de baixo, no caso A2.
Saya menggunakan pemutar kode batang untuk produk kadastra, dan yang lainnya adalah angka otomatis, dan jika Anda ingin memasukkannya ke sel telepon.

Terima kasih!
Komentar ini diminimalkan oleh moderator di situs
Hola, una Consulta, como se haría si por ejemplo dado un numero se pueda ejecutar las dos macros
Komentar ini diminimalkan oleh moderator di situs
Halo, Gustavo
Untuk mengatasi masalah Anda, silakan terapkan kode berikut:
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

Silakan dicoba, semoga bisa membantu Anda!
Komentar ini diminimalkan oleh moderator di situs
Halo,
je souhaiterais appliquer cette macro kode mon. Le problem est que la cellule s'incrémente via une toupie et le code ne reconnais pas le change de valeur de la cellule.
Quand je saisie la valeur manuellement koreksi fonctionne.

Merci d'avance
Komentar ini diminimalkan oleh moderator di situs
Halo, Gilles,
Anda harus memasukkan a Tombol Putar (Kontrol ActiveX) pertama, lalu klik kanan, pilih Lihat kode, lalu copy paste kode dibawah ini diantara script yang ada,
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

Silakan dicoba, semoga bisa membantu Anda!
Komentar ini diminimalkan oleh moderator di situs
Hai!

Saya sangat baru di VBA dan saya mencoba solusi ini untuk lembar excel yang saya miliki. Saya pada dasarnya hanya memiliki daftar panjang di excel, di mana Anda di kolom T harus mengetik Ya atau Tidak, dan saya ingin, Jika mengetik Ya, jalankan makro ... Saya mencoba banyak cara berbeda untuk menentukan rentang tetapi tidak ada yang berhasil.

Sub worksheet_change(target ByVal Sebagai Rentang)

Tetapkan target = Rentang("T:T")
Jika target.Nilai = "Ya" Maka
Hubungi Makro1
End If

End Sub

Saya menyoroti masalah ini (runtime error-type mismatch): Jika target.Value = "Ya" Lalu

Adakah yang bisa membantu?

Salam hormat, Isabella
Komentar ini diminimalkan oleh moderator di situs
Halo, Westergaard
Mungkin kode VBA berikut dapat membantu Anda: (Catatan: Silakan ubah nama Makro1 ke nama kode Anda sendiri)
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

Silakan dicoba, semoga bisa membantu Anda!
Komentar ini diminimalkan oleh moderator di situs
Terima kasih banyak! Sekarang berfungsi :)
Komentar ini diminimalkan oleh moderator di situs
Hai,
Cara memodifikasi kode ini berdasarkan hasil perhitungan rumus sel A1
Sub Lembar Kerja_Hitung()
Tolong bantu

Sub Worksheet_Change Pribadi (Target ByVal Sebagai Excel.Range)
Jika Target.Cells.Count > 1 Kemudian Keluar Sub
Jika IsNumeric(Target) Dan Target.Address = "$A$1" Lalu
Pilih Target Kasus.Nilai
Kasus 10 Sampai 50: Makro1
Kasus Is> 50: Makro2
End Select
End If
End Sub
Rated 5 dari 5
Komentar ini diminimalkan oleh moderator di situs
Halo, FG,
Agar kode berfungsi di sel rumus, harap terapkan kode di bawah ini:
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

Silahkan dicoba, semoga bisa membantu!
Komentar ini diminimalkan oleh moderator di situs
Ciao skyyang. Spero tu possa aiutarmi. Jika program di vba che basandosi su variazioni di prezzo di una cella (E1), collegata di DDE con una piattaforma di trading borsa, fissa i prezzi: Massimo, Minimo, Apertura, Chiusura, untuk melewati semua riga berturut-turut di base a sebuah interval waktu yang tidak tepat untuk membuka semua lampu kabut elektronik. Algoritme da me svil uppato fa si che nelle colonne: "BH" e "BI" vengano visualizzati i prezzi di acquisto e di vendita, ma solo quando soddisfatte le condizioni date, altrimenti le celle non restituiscono nessun valore. Quello di cui avrei bisogno è di un avviso sonoro .wav che mi avvisi quando viene restituito un valore, di acquisto o di vendita, in modo di non dover fissare lo schermo per 14 ore al giorno. Jika Anda memasukkan kode "SoundMe ()" secara online, Anda pasti akan menemukan banyak sekali atau sedikit lagi karena program ini lebih maju dan lebih cepat. Apa masalah yang bisa dipecahkan? Terima kasih untuk attenzione
Stefano
Belum ada komentar yang diposting di sini
Tinggalkan komentar anda
Posting sebagai Tamu
×
Beri peringkat pos ini:
0   Karakter
Lokasi yang Disarankan