Em gửi file và nội dung trong file nhờ mọi người giúp với
Public Sub GPE_LUU()
Dim sArr(), Rng As Range, Cll As Range, dArr(1 To 1, 1 To 6), I As Long, DK As String
DK = Sheets("Hoctap").Range("E1").Value
sArr = Sheets("Hoctap").Range("C6:C10").Value
dArr(1, 1) = DK
For I = 1 To 5
dArr(1, I + 1) = sArr(I, 1)
Next I
With Sheets("Data")
Set Rng = .Range(.[B8], .[B8].End(xlDown))
For Each Cll In Rng
If Cll.Value = DK Then
Cll.Resize(, 6).Value = dArr
Exit For
End If
Next Cll
End With
MsgBox "XONG.", , "GPE"
Set Rng = Nothing
End Sub
E rằng ý của bạn chủ thớt là........Lấy thông tin từ sheet Data dựa vào mã chứng từ tại E1, thông tin được điền xuống C6:C10 như sheet Hoctap, sau khi có dữ liệu rồi...........bây giờ cần chỉnh sửa thì gõ lại thông tin từ C6:C10, sau đó nhấn nút Button thì nó cập nhật ngược lại sheet data (như code anh vừa viết.)
Vậy ở trên thiếu một code cho sự kiện Change tại E1 ...........hí hí!!!làm luôn đi anh!
Nhờ các anh chị viết giùm em code cho button 2 dạng lưu sửa nội dung với ạ
tức là sau khi ta chọn được giá trị tại cell E1 để chạy ra thông tin cần sửa sau đó nhấn nút button 2 để lưu đúng vị trí mà đã lấy dữ liệu theo E1
Em cảm ơn anh và các bạn, em chưa chạy thử nhưng rất cảm ơn còn về cái ý quên thì em không hỏi vì cái đó em làm được. thank anhỞ trên tôi đã nói rồi, chỉ nhờ code cho Button thì tôi viết code dùng cho việc lưu thôi, bạn ấy đã làm được việc lấy dữ liệu từ data qua rồi mà.
Híc! Hổng lẽ bị hỏi kiểu .... ý quên.....còn cái này ........
Giờ em muồn hỏi thêm cái này lien quan đến phần code LUU, tức là em muốn hỏi mình them code như thế nào trong trường hợp như thế này: Chạy code câu đầu tiên hỏi là số chứng từ này đã có rồi bạn có muồn lưu sửa không? nếu có thì lưu lại vào đúng vị trí của dòng mà mình vừa lấy dữ liệu, còn không thì lưu mới lưu xuống dòng mới bên dưới, còn không thì thoát tức là em muốn hỏi là với dạng đặt câu hỏi là yes, no, cancel thì mình sử dụng if..elseif...elseif.. end thì mình viết như thế nào ạ.Ở trên tôi đã nói rồi, chỉ nhờ code cho Button thì tôi viết code dùng cho việc lưu thôi, bạn ấy đã làm được việc lấy dữ liệu từ data qua rồi mà.
Híc! Hổng lẽ bị hỏi kiểu .... ý quên.....còn cái này ........
Không phải là em chạy tuốt đầu mà vì chưa có thời gian để chạy thử nó. em cảm ơn vì có những chỉ bảo. em sẽ bỏ cái "thanks anh" nhiều khi hơi lố.Gặp cái "thank anh" là chạy tuốt. Hổng biết nạc hay mỡ.
Không phải là em chạy tuốt đầu mà vì chưa có thời gian để chạy thử nó.Gặp cái "thank anh" là chạy tuốt. Hổng biết nạc hay mỡ.
Em muốn hỏi thêm xíu nữa cái này nó chỉ duyệt qua đúng 1 dòng còn nếu có nhiều dòng muốn thay đổi thì sao anh nhỉ tức là ghi dữ liệu vào Data mà DK có nhiều dòng như bên Data. em gửi file lên lại nhờ các anh chị xem chỉ giúp em.Gặp cái "thank anh" là chạy tuốt. Hổng biết nạc hay mỡ.
Không phải là em chạy tuốt đầu mà vì chưa có thời gian để chạy thử nó.
Em muốn hỏi thêm xíu nữa cái này nó chỉ duyệt qua đúng 1 dòng còn nếu có nhiều dòng muốn thay đổi thì sao anh nhỉ tức là ghi dữ liệu vào Data mà DK có nhiều dòng như bên Data. em gửi file lên lại nhờ các anh chị xem chỉ giúp em.
Public Sub GPE_LUU()
Dim sArr(), Rng As Range, Cll As Range, dArr(1 To 1, 1 To 6), I As Long, DK As String
DK = Sheets("Hoctap").Range("E1").Value
sArr = Sheets("Hoctap").Range("C6:C10").Value
dArr(1, 1) = DK
For I = 1 To 5
dArr(1, I + 1) = sArr(I, 1)
Next I
With Sheets("Data")
Set Rng = .Range(.[B8], .[B8].End(xlDown))
For Each Cll In Rng
If Cll.Value = DK Then
Cll.Resize(, 6).Value = dArr
Exit For '<<<---------------------------------------Xoá dòng này'
End If
Next Cll
End With
MsgBox "XONG.", , "GPE"
Set Rng = Nothing
End Sub
Em muốn sửa cách nhập của sheet Hoctap thì code sửa thế nào anh? em đang mò sửa mà chưa được? em đang học từng cách lưu như thế này lúc thì lưu cột giờ lưu theo hàng thì thêm hay sửa thế nào ạ? em sửa thì nó báo không tìm thấy vùng. Em đang học bài http://www.giaiphapexcel.com/forum/showthread.php?1854-Sử-dụng-các-vòng-lặp mà chưa hiểu hết hihi phải lấy 1 ví dụ cụ thể để làm xem saoTôi nói vậy là tôi "chạy" chứ không nói bạn. [/PHP]
Em muốn sửa cách nhập của sheet Hoctap thì code sửa thế nào anh? em đang mò sửa mà chưa được? em đang học từng cách lưu như thế này lúc thì lưu cột giờ lưu theo hàng thì thêm hay sửa thế nào ạ? em sửa thì nó báo không tìm thấy vùng. Em đang học bài http://www.giaiphapexcel.com/forum/showthread.php?1854-Sử-dụng-các-vòng-lặp mà chưa hiểu hết hihi phải lấy 1 ví dụ cụ thể để làm xem sao
Sub LuXuBu()
With Sheets("Hoctap")
.Range(.[C7], .[C7].End(xlDown)).Resize(, 5).Copy Sheets("Data").Range("B8:B1000").Find(What:=.[E1]).Offset(, 1)
End With
End Sub
Anh ơi cái này mình có thể dùng vòng lặp được không anh vì dữ liệu bên sheet Hoctap nó không thứ tự như bên Data vì có cột ngày tháng bị đảo qua đảo lại đó anh. hoặc nhiều khi mình muốn thêm cột thì khi này copy sang lại theo điều kiện nó sẽ điền không đúng vị trí của sheet Data.
Em muốn hỏi cách dùng vòng lặp 1 là cho điều kiện duyệt qua mảng và 2 là lưu lại dữ liệu theo điều kiện đó và cũng duyệt qua điều kiện. như ban đầu với cách làm cột là đúng ý em rồi nhưng giờ nếu làm nhiều cột hơn hay mảng thì như thế nào ạ?
Vâng cái này thì em quên không nói với anh và các anh chị giúp đó là: khi mình chỉnh sửa bên Hoctap nếu có sửa nội dung thì như các bài trên rồi còn trường hợp nếu thiếu dòng bên Hoctap thì ghi lại theo đúng nội dung đã sữa là thiếu dòng và xóa dòng thừa bên Data ví dụ: nếu Hoctap 3 dòng, Data 4 dòng (cùng điều kiện anh ạ) thì Data sẽ xóa đi dòng dưới đó và kéo các dòng bên dưới của Data lên sát với 3 dòng vừa ghi, còn nếu Hoctap 5 dòng mà Data 4 dòng thì tự động ghi vô 5 dòng đồng thời đẩy các dòng bên dưới xuống. tức là nếu có thêm dòng thì giống như insert thêm dòng, giúp em giải quyết cái này với.
Híc! Hổng lẽ bị hỏi kiểu .... ý quên.....còn cái này ........
Em sửa code nhưng nó ra thế này anh xem giúp em sửa thế nào vớiNhư vậy cách hỏi bài của bạn giống như tôi đã "sợ" ở bài #4 rồi
Anh giúp em cách đưa dữ liệu này vào 1 mảng theo thứ tự như bên Data với em không biết cách đưa vào được 1 mảng.Muốn dùng vòng lặp thì bạn dùng vòng lặp đưa dữ liệu bên "Hoctap" vào 1 mảng theo thứ tự cột bên "Data".
Cái này thì giống phần code của anh rồi.Sang "Data", dùng vòng lặp duyệt từ trên xuống, gặp đúng mã thì dừng, "táng" cái mảng đó xuống, thoát vòng lặp.
Anh giúp em cách đưa dữ liệu này vào 1 mảng theo thứ tự như bên Data với em không biết cách đưa vào được 1 mảng.
Cái này thì giống phần code của anh rồi.
còn cái mà nếu dư dòng thì xóa đi và có thêm dòng bên Hoctap thì thêm dòng bên Data luôn thì em không làm được. Em không biết code. và vì hình như nó liên quan đến mảng 2 chiều phải không ạ? Em đang đọc bài về mảng (Arr) nhưng cũng chữa nghĩ ra được cách để làm http://www.giaiphapexcel.com/forum/showthread.php?46834-Các-câu-hỏi-về-mảng-trong-VBA-(Array)/page3
Anh nói rất đúng, tuy nhiên em không thể sort ngày được có chăng thì sort cái DK chứ ngày thì có thể không trùng nhau. mà cùng 1 loại chứng từ nếu có thay đổi ngày thì sẽ bị phân tán cái chứng từ đó. em cũng đang thử sort cái dữ liệu này theo số hiệu chứng từ nhưng chưa được vì nó không như ngày nó có nhiều điều kiện như là mỗi loại chứng từ đều có ký tự riêng và vị trí đã lưu trước đó vì vậy giải pháp của em hỏi là lưu tại vị trí sửa và có thêm bớt dòng. em đang băn khoăn ở chỗ nếu có 1 chứng từ nữa cùng số hiệu nhưng nằm cách xuống dưới tuy nó cũng sữa những chứng từ đó nhưng không gom lên ngay dưới dữ liệu ban đầu được ghi. em thử sort theo DK nhưng chưa thành.Ví dụ bên Data, dữ liệu chẳng được sắp xếp theo thứ tự cột nào cả, ít nhất cũng phải theo Ngày tháng năm.
Nếu được Sort theo ngày thì trước khi cập nhật từ "Hoctap" sang, xóa các dòng có số chứng từ cũ, past dữ liệu mới vào cuối, Sort lại theo Ngày là xong. Phiền chi phải xem xét dư thiếu rồi xóa, chèn vào đúng vị trí cũ.
Thấy hơi quái nên làm thử thôi. STT dư thiếu gì đó bạn tự giải quyết nhé.
Nếu có câu hỏi khác thì bạn mở topic mới, đừng hỏi "lạc đề" vào đây.
Tôi không tham gia topic này nữa.