Tự động mở sheet mình cần

  • Thread starter Thread starter bibach
  • Ngày gửi Ngày gửi
Liên hệ QC

bibach

Thành viên mới
Tham gia
5/10/06
Bài viết
10
Được thích
0
Các anh cho em , em có 3 sheet 1,2,3 và ở sheet thứ 4 em có 1 cái list box có sẵn 1,2,3 bây giờ em chọn số 2 trong list box thì nó tự động nhảy qua sheet số 2 luôn .
 

File đính kèm

Bạn fải chuột vô số 4 trên thanh SheetName & chọn dòng cuối để mở cửa sổ VBE;

Bạn chép macro này vô đó & xài thử

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, [c8]) Is Nothing Then _
   Sheets(Target.Value).Select
End Sub

(Bằng cách chọn 1 trong các số xem sao) --=0
 
Anh NDU có thể nói rõ hơn được không vì em thấy cái hyperlink thì dùng 1 button liên kết với 1 sheet chứ nó đâu có tác động đến list
Cho em hỏi thêm có cách nào để mình tạo ra 1 button di động ví dụ cái sheet mình dài quá, mỗi lần mình kéo xuống thì cái button đó cũng chạy xuống theo cái sheet luôn được không
 

File đính kèm

Lần chỉnh sửa cuối:
Anh NDU có thể nói rõ hơn được không vì em thấy cái hyperlink thì dùng 1 button liên kết với 1 sheet chứ nó đâu có tác động đến list
Xem file đính kèm này
- Bạn chọn 1 giá trị nào đó trong list
- Bấm vào cell chứa list lần nữa
(Cái này nói nhiều trên GPE rồi mà)
 

File đính kèm

Anh NDU ơi em thấy cái này cũng hay lắm nhưng lại tốn thêm 1 công đoạn là bấm vào cái cell đó . Em thấy đoạn code của anh ChanhTQ khá hay rồi chỉ cần chọn tên trong list danh sách đó thì tự động nó nhảy qua sheet cần tìm luôn khỏi cần phải bấm vào cell nữa
Anh NDU giúp em cái vụ button chạy theo mỗi lần mình kéo trong sheet được không vậy
 
Anh ndu96081631 chỉ em làm sao để đưa name Link vào HyperLink với.
Sau khi đặt name xong, click phải chuột vào cell C8, chọn Hyperlink (hoặc bấm Ctrl + K) ---> Bấm nút Existing File or Web Page ---> Gõ vào khung Address chữ #Link (với Link là tên của name vừa đặt)
----------------------
Anh NDU giúp em cái vụ button chạy theo mỗi lần mình kéo trong sheet được không vậy
Xem file này
Lưu ý: Đây không phải là code hoàn hảo nhất nhưng nó đơn giản nhất
 

File đính kèm

Lần chỉnh sửa cuối:
Anh NDU ơi cho em hỏi , bây giờ em đang ở sheet 2 , em bấm vào button nó sẽ nhảy qua sheet 1 và chọn cột B thực thi lệnh ctrl+F (find) thì làm cách nào hả anh
 
Sao không ai giúp em cái vụ Ctrl+F (edit\find) vậy . Em dùng macro rồi nhưng nó không chịu chạy bảng find and replace . Mấy anh giúp em một tay đi . Cảm ơn nhiều
 
Sao không ai giúp em cái vụ Ctrl+F (edit\find) vậy . Em dùng macro rồi nhưng nó không chịu chạy bảng find and replace . Mấy anh giúp em một tay đi . Cảm ơn nhiều
Chưa hiểu lắm nhưng đoán chắc là bạn muốn vầy:
PHP:
Private Sub CommandButton1_Click()
  Application.Goto Sheet1.Range("B:B")
  Application.Dialogs(xlDialogFormulaReplace).Show
End Sub
hoặc
PHP:
Private Sub CommandButton1_Click()
  Application.Goto Sheet1.Range("B:B")
  Application.CommandBars("Edit").Controls("Replace...").Execute
End Sub
Xem file
 

File đính kèm

Lần chỉnh sửa cuối:
Mình cũng đang muốn hỏi các huynh muội chuyện liên kết đây. Mình muốn làm một trang Help trong chương trình quản lý hàng hoá. Trong trang help này mình muốn ở mũi tên trỏ xuống trên thanh tiêu đề sẽ hiện ra các Sheet mà mình đã tạo, Làm cách nào đây, giúp mình nha.
Thân mến !
 
Các bác giúp em với , em có 1 số yêu cầu nho nhỏ như thế này :
1)Em có 1 sheet quản lý ở đây sẽ lấy tất cả dữ liệu của các sheet còn lại , Khi em bấm vào nút quản lý thì nó tự động lấy tên của các sheet điền vào ô A4
2)Tại ô B3 tất cả các sheet kia sẽ được viết bằng 1 hàm=max(b5:b100)
3)tại sheet quản lý sẽ được xếp hạng tùy theo điểm của từng người
 

File đính kèm

Bác NDU giúp em 1 tí , em đang cần cái code này lắm
 
Các bác giúp em với , em có 1 số yêu cầu nho nhỏ như thế này :
1)Em có 1 sheet quản lý ở đây sẽ lấy tất cả dữ liệu của các sheet còn lại , Khi em bấm vào nút quản lý thì nó tự động lấy tên của các sheet điền vào ô A4
2)Tại ô B3 tất cả các sheet kia sẽ được viết bằng 1 hàm=max(b5:b100)
3)tại sheet quản lý sẽ được xếp hạng tùy theo điểm của từng người
Dùng công thức được không?
Xem file thử ---> Nó tự cập nhật, khỏi cần bấm nút gì cả
 

File đính kèm

Dạ không phải vậy anh NDU ơi , vì cái file em cấn xử lý nó có rất nhiều sheet , với lại công việc lặp đi lặp lại với rất nhiều file nên em cần có đoạn code đó , nếu làm công thức không thì phải xử lý lặp đi lặp lại có vẽ không khoa học nên em mới nhờ anh viết dùm em
Mong sớm nhận được sự hồi âm của anh
 
Lần chỉnh sửa cuối:
Dạ không phải vậy anh NDU ơi , vì cái file em cấn xử lý nó có rất nhiều sheet , với lại công việc lặp đi lặp lại với rất nhiều file nên em cần có đoạn code đó , nếu làm công thức không thì phải xử lý lặp đi lặp lại có vẽ không khoa học nên em mới nhờ anh viết dùm em
Mong sớm nhận được sự hồi âm của anh
Muốn code thì có code:
PHP:
Sub Quanly()
  Dim QL As Worksheet, i As Long
  Set QL = Sheets("Qu" & ChrW(7843) & "n lý")
  QL.Range("A4:C1000").ClearContents
  For i = 1 To Sheets.Count
    If Sheets(i).Name <> QL.Name Then
      Sheets(i).Range("B3").Value = "=Max(B5:B1000)"
      QL.Range("A" & i + 3) = Sheets(i).Name
      QL.Range("B" & i + 3) = Sheets(i).Range("B3").Value
      QL.Range("C" & i + 3) = "=IF(RC[-2]="""","""",RANK(RC[-1],R4C[-1]:R1000C[-1]))"
    End If
  Next
End Sub
Yêu cầu: Sheet mà bạn cần trích lọc phải được đặt tên là Quản lý ---> Nếu đặt tên khác phải sửa lại code
 

File đính kèm

Dạ rất đúng ý em nhưng Anh NDU ơi hình như còn thiếu phần sắp xếp từ cao tới thấp nữa . Dù sao cũng cảm ơn Anh nhiều nha
 
Lần chỉnh sửa cuối:
Dạ rất đúng ý em nhưng Anh NDU ơi hình như còn thiếu phần sắp xếp từ cao tới thấp nữa . Dù sao cũng cảm ơn Anh nhiều nha
Tự nghiên cứu đi, code để sort đâu có khó khăn gì ---> có thể dùng công cụ record macro làm thử
 
Tại em thấy cái code của anh viết rất đẹp tự nhiên bây giờ cho thêm cái macro vào nữa nhìn nó không hay . Dù sao cũng thanks anh nhiều
 
Tại em thấy cái code của anh viết rất đẹp tự nhiên bây giờ cho thêm cái macro vào nữa nhìn nó không hay . Dù sao cũng thanks anh nhiều
Gợi ý về record macro
- Bật chức năng record macro lên (Tools\Macro\Record New Macro)
- Đặt con trỏ tại cell A4, bấm tổ hợp phím Ctrl + Shift + * (dấu * nằm trên số 8)
- Vào menu Data\Sort ---> Sort tăng dần theo cột C
- Tắt record macro
- Bấm Alt + F11 vào xem code, bạn sẽ thấy đại khái như sau:
PHP:
Sub Macro1()
    Range("A4").Select
    Selection.CurrentRegion.Select
    Selection.Sort Key1:=Range("C4"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
End Sub
- Rút gọn lại thành:
PHP:
Sub Macro1()
    Range("A4").Select
    Selection.CurrentRegion.Select
    Selection.Sort Range("C4"), 1, Header:=xlGuess
End Sub
- Rút gọn tiếp
PHP:
Sub Macro3()
  With Range("A4").CurrentRegion
    .Sort .Cells(1, 3), 1
  End With
End Sub
- Ráp vào code của mình:
PHP:
Sub Quanly()
  Dim QL As Worksheet, i As Long
  Set QL = Sheets("Qu" & ChrW(7843) & "n lý")
  QL.Range("A4:C1000").ClearContents
  For i = 1 To Sheets.Count
    If Sheets(i).Name <> QL.Name Then
      Sheets(i).Range("B3").Value = "=Max(B5:B1000)"
      QL.Range("A" & i + 3) = Sheets(i).Name
      QL.Range("B" & i + 3) = Sheets(i).Range("B3").Value
      QL.Range("C" & i + 3) = "=IF(RC[-2]="""","""",RANK(RC[-1],R4C[-1]:R1000C[-1]))"
      With QL.Range("A4").CurrentRegion
        .Sort .Cells(1, 3), 1
      End With
    End If
  Next
End Sub
Thử xem
 
Web KT

Bài viết mới nhất

Back
Top Bottom