Ghi dữ liệu vào file đóng dùng vòng lặp For-Next (1 người xem)

Liên hệ QC

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

quoc nhat

Thành viên tiêu biểu
Tham gia
8/3/12
Bài viết
567
Được thích
43
Nghề nghiệp
cán bộ ngành y tế
Chào các anh chị
Em đang tập tành vọc làm chương trình bán hàng nhằm giúp vợ mình bớt đau đầu tính toán khâu xuất nhập tồn
nhưng làm đến đoạn ghi dữ liệu vào file dữ liệu( File đích đang đóng) thì gặp rắc rối
Tìm và tham khảo các code trên diễn đàn nhưng không áp dụng được kính nhờ các anh chị ra tay giúp đỡ
Dữ liệu cần ghi trong File Nguồn cell:(B17:L48) trước đây em dùng vòng lặp For Next để ghi vào sheet nằm cùng File nhưng dữ liệu bán hàng ngày càng một nhiều nên em có ý định ghi sang file khác nằm trong cùng thư mục nhưng không biết code ra làm sao cả,không biết các anh chị có thể giúp em đoạn code của nút lệnh Save cũng dùng for - next để ghi dữ liệu sang file đích đang đóng được không?
http://www.mediafire.com/download/ckvv850uka7aghl/New_Folder.rar
Em cảm ơn nhiều
 
Lần chỉnh sửa cuối:
Tại sao phải file đóng. Mở hổng được sao?
 
Upvote 0
Tại sao phải file đóng. Mở hổng được sao?
em tưởng đóng sẽ nhanh hơn
nhưng theo comment của anh chắc mở sẻ được miển là ghi data vào file khác cho nhẹ file đang làm việc là được.
Ps: Khổ quá cấu hình máy yếu quá nên bắt buộc phải vậy
Nhờ anh VetMini giúp cho một tay với
 
Upvote 0
Đây, cả đóng lẫn mở, file đang đóng hay đang mở thì dữ liệu vẫn được đưa sang.
Tuy nhiên bạn thiết kế cái file nguồn và đích nên có cùng 1 kiểu ô: VD không merge thì làm sẽ thoải mái hơn
 

File đính kèm

Upvote 0
Đây, cả đóng lẫn mở, file đang đóng hay đang mở thì dữ liệu vẫn được đưa sang.
Tuy nhiên bạn thiết kế cái file nguồn và đích nên có cùng 1 kiểu ô: VD không merge thì làm sẽ thoải mái hơn
Ui! Cảm ơn anhdepjai !
Để em kiểm tra lại xem Ok chưa.
Có gì chưa được nhờ anh giúp thêm nhé!
Tuy nhiên bạn thiết kế cái file nguồn và đích nên có cùng 1 kiểu ô: VD không merge thì làm sẽ thoải mái hơn
Em sẻ xem lại theo ý của anh
Đây, cả đóng lẫn mở, file đang đóng hay đang mở thì dữ liệu vẫn được đưa sang.
Đã kiểm tra. nhưng khi áp dụng vào file thật thì file đích đang mở không thể ghi dữ liệu sang được+-+-+-+ khó hiểu quá, ghi 1 mặt hàng thì file đích bị lỗi!
 
Lần chỉnh sửa cuối:
Upvote 0
file đích tôi gửi lên, tôi đã phải modify lại rồi đấy. Bạn sử dụng file dich mà tôi gửi nhé. xóa file đích của bạn đi
 
Upvote 0
đã copy và paste đúng định dạng file anh gửi
Tín hiệu chập chờn quá anh xem comment bài 5 hộ em với
 
Upvote 0
Lạ. sao file mình dùng bt mà. Duy có chỗ ghi thêm ngày tháng và nhân viên bán hàng code hơi chuối tý :)
Hay file của bạn dữ liệu khác, bạn gửi file chuẩn lên mình xem cho
 
Upvote 0
Lạ. sao file mình dùng bt mà. Duy có chỗ ghi thêm ngày tháng và nhân viên bán hàng code hơi chuối tý :)
Hay file của bạn dữ liệu khác, bạn gửi file chuẩn lên mình xem cho
Em đẫ chỉnh code của anh lại 1 tý:code trong nút Save file nguồn
giờ chỉ có đoạn chưa OK lắm là khi mình chỉ ghi có 1 mặt hàng (file nguon sheet bán hàng dòng 17 chẳng hạn) là file đích cột A,B,C,K cứ ghi đến hơn 37 dòng còn cột D chỉ có 1 dòng. Bạn kiểm tra giùm mình tý nha
http://www.mediafire.com/download/ckvv850uka7aghl/New_Folder.rar
Cảm ơn bạn nhiều
PS: mình đã sửa lại định dạng file không Merge cell nữa theo như bạn đã hướng dẫn
 
Lần chỉnh sửa cuối:
Upvote 0
Hic mình cũng không biết nhiều về VBA. Chỉ làm đại như vậy, bạn chạy code và kiểm tra lại rồi tự chỉnh sửa lại nha..--=0--=0--=0
Mã:
Option Explicit
Public Sub GPE_Save()
Dim fName As String, Wb As Workbook, Sh As Worksheet, Arr, dArr
Dim I As Long, J As Long, K As Long
With Sheets("banhang")
    Arr = .Range("B7", .Range("B65000").End(3)).Resize(, 12).Value2
End With
ReDim dArr(1 To UBound(Arr), 1 To 11)
fName = ThisWorkbook.Path & "\" & "dich.xls"
Application.ScreenUpdating = False
Application.DisplayAlerts = False
    Set Wb = Application.Workbooks.Open(fName)
    Set Sh = Wb.Worksheets("BanHang")
    For I = 11 To UBound(Arr)
        If Len(Arr(I, 1)) Then
            K = K + 1
            dArr(K, 1) = Arr(1, 12)
            dArr(K, 2) = Arr(3, 12)
            dArr(K, 3) = Arr(3, 6)
            For J = 1 To 7
                dArr(K, J + 3) = Arr(I, J)
            Next J
            dArr(K, 11) = Arr(1, 3)
        End If
    Next I
        If K Then
            Sh.Range("A65000").End(3).Offset(1).Resize(K, 11).Value = dArr
        Else
            MsgBox "Ban chua nhap Chi Tiet Ban Hang"
        End If
    Wb.Close True
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
cede này được nè. nhanh và chính xác hơn
Cảm ơn anh và Anhdepjai nghe

giờ cho em hỏi thêm nếu mình muốn lấy ngược trở lại thì code cũng tương tự trên hả anh?
 
Upvote 0
Có nghĩa là khi khách hàng muốn lấy hóa đơn bán hàng thì mình lấy ngược dữ liệu từ file đích sang để in hóa đơn( có sheet hóa đơn trong file nguồn) căn cứ theo số bán hàng cho họ ấy.
Nhờ anh chỉ cho cấu trúc của code thôi
còn em sẻ biến tấu theo để phù hợp
Cảm ơn anh
 
Upvote 0
Sheet mẫu lấy dữ liệu để in hóa đơn của bạn đâu? Phải có sheet mẫu thì mới căn cứ vào đó mà code cho hơp lý chứ...File của bạn có mỗi cái Form nhập liệu bán hàng, chả nhẻ lấy dữ liệu đỗ lại Form này...=> In kiểu gì...nhìn thấy gớm...quá...--=0--=0--=0
Minh mò cả bửa trưa quên cả ngủ cuối cùng cũng OK rồi
Cảm ơn bạn đã quan tâm nha!
 
Upvote 0
Web KT

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

Back
Top Bottom