Tự động chạy macro khi thay đổi giá trị Cell

Liên hệ QC

salam

Thành viên gắn bó
Tham gia
4/11/06
Bài viết
1,945
Được thích
1,896
Giới tính
Nam
Nghề nghiệp
Accountant
Tự động chạy macro khi thay đổi giá trị Cell làm thế nào nhờ các bác chỉ giúp em với. Em có 1 macro "Doi" em muốn tại ô VD: ô C1 ở Sheet1 thay đổi giá trị thì Macro "Doi" tự chạy. Cám ớn các Bác Trước.
 
Thì:
Mã:
Private Sub WorkSheet_Change(byVal Target as Range)
    If Target.Address = "$C$1" Then
    Code here
End Sub
Có thể chỉnh sửa đôi chút nếu muốn code chạy trên sheet khác...
ANH TUẤN
 
Lần chỉnh sửa cuối:
Upvote 0
Cụ thể là cái Hello này:
PHP:
Sub CHAO()
   MsgBox "Hello Salam"
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Address = "$C$1" Then
       Call CHAO
   End If
End Sub
Làm đại hỏng biết có đúng yêu cầu ko? Hi.. hi..
ANH TUẤN
 
Upvote 0
anhtuan1066 đã viết:
Thì:
Mã:
Private Sub WorkSheet_Change(byVal Target as Range)
    If Target.Address = "$C$1" Then
    Code here
End Sub
em thêm call hidesheet vào
ANH TUẤN
hidesheet là macro em đặt trong modul1. khi em thay đổi giá trị của C1 trong sheet1 thì không thấy chạy macro hidesheet bác ah. Nó bị lỗi chỗ nào vậy Bác.
 
Upvote 0
Tôi làm thấy bình thường mà Salam
PHP:
Sub HideSheet()
      Sheets("Sheet1").Visible = False
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
     If Target.Address = "$C$1" Then
        Call HideSheet
     End If
End Sub
Xem file thử
ANH TUẤN
 

File đính kèm

  • HideSheet.zip
    7.6 KB · Đọc: 545
Upvote 0
Em đưa file của bác làm em sửa chút ít, Bác xem cho nhé.
 

File đính kèm

  • HideSheet.zip
    9.3 KB · Đọc: 205
Upvote 0
Ôi... thế thì ko cần Private Sub làm gì... Xóa luôn đi
Click phải chuột trên ComboBox, chọn Assign Macro, rồi chọn macro HideSheetlà xong...
ANH TUẤN
 
Upvote 0
Đúng là em củ chuối thật có thế mà cũng không biết, thử các thứ rồi mà cái assign macro của form thì lại không xét đến . Cám ơn Bác nhiều!
 
Upvote 0
Thế nhưng trong VBA phải có câu lệnh nào phát hiện sự thay đổi giá trị của C1 chứ, bài bác Salam thì ok rồi nhưng lúc khác gặp phải tình huống này thì làm thế nào???
 
Upvote 0
Chào các bạn, mình có một bài toán tìm giá trị của 1 ô, mình cần thay đổi giá trị của ô này từ giá trị 1 đến 100 một cách tự động, bạn nào có code không cho mình xin? xin cảm ơn các bạn nhé!
 
Upvote 0
Chào các bạn, mình có một bài toán tìm giá trị của 1 ô, mình cần thay đổi giá trị của ô này từ giá trị 1 đến 100 một cách tự động, bạn nào có code không cho mình xin? xin cảm ơn các bạn nhé!
Nó là sao nhỉ? Có phải là thế này không?
[GPECODE=vb]Sub Test()
Dim i As Long
For i = 1 To 100
Sheets("Sheet1").[A1] = i
Next
End Sub[/GPECODE]
Thật tình thì tôi vẫn chưa hiểu mục đích của bạn là gì.
 
Upvote 0
Thì:
Mã:
Private Sub WorkSheet_Change(byVal Target as Range)
    If Target.Address = "$C$1" Then
    Code here
End Sub

Anh cho em hỏi ? giờ em muốn khi thay đổi giá trị cell trong 1 vùng ( C1:B10 ) và thì chỉnh code lai như thế nào ?
Nếu k nhầm thì thế này
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Range("c1:b10"), Target) Is Nothing Then
       Call HideSheet
    End If
End Sub
    Code here
End Sub
-\\/.
 
Lần chỉnh sửa cuối:
Upvote 0
Thì:
Mã:
Private Sub WorkSheet_Change(byVal Target as Range)
    If Target.Address = "$C$1" Then
    Code here
End Sub
Anh cho em hỏi ? giờ em muốn khi thay đổi giá trị cell trong 1 vùng ( C1:B10 ) và thì chỉnh code lai như thế nào ?
Cái vùng C1:B10 là cái vùng ra sao ta?! Có lẽ phải là B1:C10 chứ nhỉ.
Bạn sửa lại code như vầy:
[GPECODE=vb]Private Sub WorkSheet_Change(byVal Target as Range)
If Not Intersect(Target,[B1:C10]) Is Nothing Then
'Code here
End If
End Sub[/GPECODE]
 
Upvote 0
Cụ thể là cái Hello này:
PHP:
Sub CHAO()
   MsgBox "Hello Salam"
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Address = "$C$1" Then
       Call CHAO
   End If
End Sub
Làm đại hỏng biết có đúng yêu cầu ko? Hi.. hi..
ANH TUẤN
Anh cho e hỏi là bây giờ e muốn nếu giá trị thay đổi ở 1 ô nào đó thì chạy 1 macro nhất định được không?
Vd: giá trị Ô A1 thay đổi thì chạy macro tên "Macro1"
giá trị Ô A2 thay đổi thì chạy macro tên "Macro2" và nhiều ô khác
Tks nhiều
 
Upvote 0
không có ae nào giúp đỡ sao
 
Upvote 0
Anh cho e hỏi là bây giờ e muốn nếu giá trị thay đổi ở 1 ô nào đó thì chạy 1 macro nhất định được không?
Vd: giá trị Ô A1 thay đổi thì chạy macro tên "Macro1"
giá trị Ô A2 thay đổi thì chạy macro tên "Macro2" và nhiều ô khác
Tks nhiều
ko biết bạn có nhiều macro ko? nếu ít thì làm thế này
If Target.Address = "$A$1" Then
Call macro1
End
If
If Target.Address = "$A$2" Then
Call
macro2
End
If
If Target.Address = "$A$3" Then
Call
macro3
End
If
........

Nếu rất nhiều thì thử thế này xem (macro phả đc swaps xếp)
for i = 1 to xx (số lượng macro)
If Target.Address = "$A$" & i Then
Macroname = "macro" & i
Call
Macroname
End
If
 
Upvote 0
ko biết bạn có nhiều macro ko? nếu ít thì làm thế này
If Target.Address = "$A$1" Then
Call macro1
End
If
If Target.Address = "$A$2" Then
Call
macro2
End
If
If Target.Address = "$A$3" Then
Call
macro3
End
If
........

Nếu rất nhiều thì thử thế này xem (macro phả đc swaps xếp)
for i = 1 to xx (số lượng macro)
If Target.Address = "$A$" & i Then
Macroname = "macro" & i
Call
Macroname
End
If

Tks bạn đã giúp. Sao mình làm với lệnh for nó không chạy. Mình viết sửa lại như thế không bt có đúng không
Private Sub Worksheet_Change(ByVal Target As Range)
For i = 0 To 10
If Target.Address = "$H$" & i Then
Macroname = "NhapMG_B" & i
Call Macroname
End If
End Sub
Bạn xem file có gì giúp mình với nha.
Bạn cho mình xin cái mail với
 

File đính kèm

  • Kho Hang_2.xlsm
    29.3 KB · Đọc: 58
Upvote 0
Web KT
Back
Top Bottom