Di chuyển dữ liệu bằng cú click

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

rosy84

Thành viên hoạt động
Tham gia
15/3/09
Bài viết
170
Được thích
38
Các bác cho em hỏi có thể làm cách nào lập trình được nếu ta click đúp chuột vào một cột thì cột đó sẽ nhảy sang sheet khác và các cột còn lại thì tự động di chuyển vào gần nhau không?
 
Các bác cho em hỏi có thể làm cách nào lập trình được nếu ta click đúp chuột vào một cột thì cột đó sẽ nhảy sang sheet khác và các cột còn lại thì tự động di chuyển vào gần nhau không?
Trong ThisWorkbook bạn đặt code như sau :
PHP:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
If Not Target.EntireColumn.Find("*") Is Nothing Then usfOption.Show
End Sub

Insert thêm 1 Userform, gồm có 2 Combobox và 2 CommandButton. Và đây là code trong UserForm :
PHP:
Private Sub cmdCancel_Click()
Unload Me
End Sub

Private Sub cmdOK_Click()
Dim Scolumn As Variant
If ComboBox1 = "" Or ComboBox2 = "" Then
    MsgBox "Du lieu khong hop le."
    ComboBox1.SetFocus
Else
    With ActiveCell.EntireColumn
        Scolumn = .Value
        .Delete Shift:=xlToLeft
        Sheets(ComboBox1.Value).Select
        Cells(1, ComboBox2).EntireColumn.Value = Scolumn
        Unload Me
    End With
End If
End Sub

Private Sub UserForm_Activate()
Dim i As Long, Sh As Worksheet
    For Each Sh In Worksheets
        ComboBox1.AddItem Sh.Name
    Next
    For i = 1 To 256
        ComboBox2.AddItem i
    Next i
    cmdOK.SetFocus
End Sub
 

File đính kèm

Upvote 0
Bạn có thể nhấp double vô bất ký ô nào trong cột 'N'

của trang tính nào <>'S3' có chứa macro sau:

PHP:
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 If Not Intersect(Target, Columns("N:N")) Is Nothing Then
    Sheets("S3").Columns("N:N").Value = Columns("N:N").Value
    Columns("N:N").Delete
 End If
End Sub
 
Upvote 0
Các bác cho em hỏi có thể làm cách nào lập trình được nếu ta click đúp chuột vào một cột thì cột đó sẽ nhảy sang sheet khác và các cột còn lại thì tự động di chuyển vào gần nhau không?
Vấn đề mà tác giả chưa nói rõ nằm ở chổ:
Sau khi dử liệu được chuyển sang sheet bên kia, nó sẽ chèn thêm cột hay chép đè vào dử liệu củ?
 
Upvote 0
Các khả năng xảy ra:
1. Khi dịch chuyển sang sheet khác, nó sẽ chèn thêm hay chép đè dữ liệu hiện thời
2. Vị trí cần chép đến là gì?

Nên tạo form và cho chọn lựa sheet đến, cột nào, cách dán (chèn, xóa...)
 
Upvote 0
Các khả năng xảy ra:
1. Khi dịch chuyển sang sheet khác, nó sẽ chèn thêm hay chép đè dữ liệu hiện thời
2. Vị trí cần chép đến là gì?

Nên tạo form và cho chọn lựa sheet đến, cột nào, cách dán (chèn, xóa...)
Và nếu là "chèn thêm" thì có nhiều chuyện phải xem xét ---> Chẳng hạn cột cuối đã có chưa? Liệu có chắc là "chèn" được không (đối với các cell bị merge)
Ôi... vân vân... đủ thứ trên đời!
Vụ này xem ra khá đơn giản, nhưng tác giả đã hỏi thì chứng tỏ rằng không biết xài VBA ---> Vậy nếu tác giả không có file thì đính kèm thì đừng mong áp dụng được code mà các cao thủ đã đưa lên!
Hic...
 
Upvote 0
Em đã có sẵn 2 cái tùy chọn trong file trên, giờ thêm 1 cái combobox nữa là ok
PHP:
Private Sub cmdCancel_Click()
Unload Me
End Sub

Private Sub cmdOK_Click()
On error resume next
Dim Scolumn As Variant
If ComboBox1 = "" Or ComboBox2 = "" Or ComboBox3 = "" Then
    MsgBox "Du lieu khong hop le."
    ComboBox1.SetFocus
Else
    With ActiveCell.EntireColumn
        Scolumn = .Value
        .Delete Shift:=xlToLeft
        Sheets(ComboBox1.Value).Select
        Select Case ComboBox3
            Case "New column"
                Cells(1, ComboBox2).EntireColumn.Insert Shift:=xlToRight
                Cells(1, ComboBox2).EntireColumn.Value = Scolumn
            Case "Replace data"
                Cells(1, ComboBox2).EntireColumn.Value = Scolumn
        End Select
        Unload Me
    End With
End If
End Sub

Private Sub UserForm_Activate()
Dim i As Long, Sh As Worksheet
    For Each Sh In Worksheets
        ComboBox1.AddItem Sh.Name
    Next
    For i = 1 To 256
        ComboBox2.AddItem i
    Next i
    cmdOK.SetFocus
    ComboBox3.AddItem "New column"
    ComboBox3.AddItem "Replace data"
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
em cảm ơn các bác nhiều , nhưng cách mà các bác làm thì không được tốt cho lắm. vì nếu có nhiều cột thì em làm tay đến bao giờ mới xog.
 
Upvote 0
Web KT

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

Back
Top Bottom