Nhờ các anh chị giúp em code lưu sửa từ sheet (1 người xem)

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

Người dùng đang xem chủ đề này

namkpac

Thành viên thường trực
Tham gia
25/11/08
Bài viết
279
Được thích
9
Em gửi file và nội dung trong file nhờ mọi người giúp với
 

File đính kèm

Em gửi file và nội dung trong file nhờ mọi người giúp với

Bạn nhờ viết code cho cho Button thì đây, bạn gán vào cho nó chạy:
PHP:
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
 
Upvote 0
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!

Ở 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à.

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

Híc! Hổng lẽ bị hỏi kiểu .... ý quên.....còn cái này ........
 
Lần chỉnh sửa cuối:
Upvote 0
Ở 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 ........
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
 
Upvote 0
Ở 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 ạ.
 
Upvote 0
thôi thôi tôi khuyên bạn dẹp cái ý nghĩ "yes,no,cancel" đi
làm 1 hồi không biết nên bấm no hay bấm cancel . lộn tùng phèo lên là dữ liệu gốc tiêu tùng luôn .
 
Upvote 0
Tại vì em có một trường hợp nó như vậy nhưng em không biết phải sửa thế nào vì nếu dùng trên form thì có thể làm tốt nhưng giờ em muốn làm từ sheet ví như cái sheet đó là cái form ấy mà. hay ta có thể tạo nhiều button để tùy chọn từng yêu cầu của mình, xin cho lời khuyên để có thể đưa ra lời giải tối ưu cho dạng này được không ạ?
 
Upvote 0
Lần chỉnh sửa cuối:
Upvote 0
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 cảm ơn vì có những chỉ bảo. em sẽ bỏ cái "thanks anh" nhiều khi hơi lố.
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.
 
Lần chỉnh sửa cuối:
Upvote 0
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.
 

File đính kèm

Upvote 0
Không phải là em chạy tuốt đầu mà vì chưa có thời gian để chạy thử nó.

Tôi nói vậy là tôi "chạy" chứ không nói bạn. Tôi dị ứng với những người giao tiếp bằng kiểu viết nửa nạc nửa mỡ.
Cảm ơn thì "cảm ơn anh/chị" chứ Cảm ơn you, hay "thank anh" hay "thank các bạn" là sao?

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.

Trong code, xoá dòng Exit For xem sao.

PHP:
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
 
Upvote 0
Tô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
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
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

Nếu chắc chắn dữ liệu sheet "Hoctap" được lấy qua từ sheet "Data". Sau khi sửa xong thì dùng cái này cho gọn:
Chỉnh tiêu đề hai sheet cho giống nhau.
PHP:
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
 
Lần chỉnh sửa cuối:
Upvote 0
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 ạ?
 
Lần chỉnh sửa cuối:
Upvote 0
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 ạ?

Cái gì cũng được, mỗi kiểu có cách viết code khác nhau, bạn muốn hỏi cái gì thì chỉ trả lời cái đó, không ai rảnh để làm tất cả các tình huống cho bạn đâu.
Với cái kiểu dữ liệu mẫu của bạn thì cũng "mắc chết" rồi. "Data" có mã GP005 là 4 dòng, bên "Hoctap" thì 3 dòng. Khi lưu sang Data thì thay cho dòng nào, dòng nào không thay.
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".
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.
 
Lần chỉnh sửa cuối:
Upvote 0
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.
 
Upvote 0
Em cũng đang xem bài này nhưng là tìm sheet và điền nội dung vô sheet tìm được và không có sửa nên em cũng học chưa ra hihi
 

File đính kèm

Upvote 0
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.

Như vậy cách hỏi bài của bạn giống như tôi đã "sợ" ở bài #4 rồi
Híc! Hổng lẽ bị hỏi kiểu .... ý quên.....còn cái này ........
 
Upvote 0
Hic, nói chứ khi học nó sẽ "phát sinh thêm" các ý tưởng khác. nhiều khi đọc nhiều bài trên GPE thì mình lại nghĩ xem nếu ở trường hợp khác thì sẽ phát triển nó như thế nào. ban đầu em cũng hài lòng với kết quả và nghĩ rằng sẽ dừng lại như bài #4 nhưng rồi lại "phát sinh" hihi mong các anh chị chỉ giúp. (cái ý quên đó là cái phần lấy dữ liệu từ Data sang còn cái em hỏi đây là nó phát sinh việc quay ngang dữ liệu sửa bên sheet Hoctap.
 
Upvote 0
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".
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.
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.
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
 
Lần chỉnh sửa cuối:
Upvote 0
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

Chẳng biết bạn đang học hay đang làm công việc của mình.
Dù học hay làm thì việc nhập liệu, quản lý dữ liệu cũng phải có "quy luật" nào đó chứ đâu có lung tung lộn xộn được.
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.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Thật sự như anh phân tích bên trên là cần phải đưa dữ liệu từ sheet Hoctap ra 1 mảng và thứ tự mảng sẽ sắp xếp theo Data. Nếu như là mảng không có "lộn xộn" thì chỉ dùng cái trên anh chỉ là đã tốt rồi, nhưng em muốn hỏi về mảng nhưng là mảng tạm chẳng hạn và nó được sắp xếp theo thứ tự của Data thì mình phải làm sao là cái em muốn hỏi nhất vì nếu có trật tự thì có lẽ dễ hơn chăng? cái thứ hai là Sort như anh nói.
 
Upvote 0
Upvote 0
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.
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.
 
Upvote 0
Em thêm đoạn sort này vào nhưng nó sắp xếp hết luôn chứ không chọn đúng vị trí cần sort. With Range([B8], [B65536].End(xlUp)).Resize(, 6) .Sort [B8], 1, Header:=xlNo
End With
 
Upvote 0

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

Back
Top Bottom