Code copy sheet và tạo folder mới rồi dán sheet

Liên hệ QC

namkpac

Thành viên thường trực
Tham gia
25/11/08
Bài viết
279
Được thích
9
Em mở 1 top mới chứ bài viết bên kia không đúng chỗ
Các anh chị giúp em 1 trường hợp này với; em có 1 file excel tên GIAYMOI nằm trong 1 folder tên DICH, bây giờ em muốn copy sheet1 trong file excel GIAYMOI đồng thời tạo 1 folder mới với tên của folder được lấy từ cell A4 của sheet1 và khi copy xong là đưa sheet1 này vào chính folder mới tạo có tên được lấy từ cell A4 của sheet1 đó và tên file mới sau khi copy đó cũng tên được lấy từ cell A4 luôn. thêm điều kiện là nếu có trùng thì báo và lưu mới cũng gồm tên được lấy tại cell A4 và thêm thời gian, ngày tháng năm sau tên đó. Em gửi kèm ví dụ luôn trong đó GIAYMOI là file gốc.
 

File đính kèm

  • Hoi GPE.rar
    22.8 KB · Đọc: 19
Có lẽ phải mất tiền thì mới học hỏi được
 
Upvote 0
Em dựa theo file mẫu này làm nhưng vẫn chưa được, có anh chị nào giúp với dạng như back up dữ liệu nhưng chưa làm được
 

File đính kèm

  • ROOT.rar
    60.6 KB · Đọc: 22
Lần chỉnh sửa cuối:
Upvote 0
Upvote 0
Mình cũng đang làm nhưng vẫn chưa được.
Vậy bạn tham khảo Code sau, hàm TV tôi lấy từ module của bạn
Mã:
Sub CreateFolder()
    Dim FSO As Object
    Dim DataRange
    Dim i As Long
    Dim RootFolder As String
    Dim HFolder As String
    Dim WFolder As String
    Dim Tmp As String
    DataRange = [E2:J11]    'Ban tuy bien vung du lieu cho hop ly
    RootFolder = ThisWorkbook.path
    Set FSO = CreateObject("Scripting.FileSystemObject")
    'Tao Folder H & W - kieu gi cung phai tao 2 thu muc nay
    With FSO
        HFolder = .BuildPath(RootFolder, "H")
        WFolder = .BuildPath(RootFolder, "W")
        If Not .FolderExists(HFolder) Then
            FSO.CreateFolder (HFolder)
        Else
            MsgBox "Thu muc H da ton tai"
        End If
        If Not .FolderExists(WFolder) Then
            FSO.CreateFolder (WFolder)
        Else
            MsgBox "Thu muc W da ton tai"
        End If
        For i = 1 To UBound(DataRange, 1)
            If DataRange(i, 5) = "H" Then
                Tmp = HFolder & "\" & DataRange(i, 1) & "_" & UCase(TV(DataRange(i, 2)))
                If Not .FolderExists(Tmp) Then
                    FSO.CreateFolder (Tmp)
                Else
                    MsgBox "Thu muc " & Tmp & " da ton tai"
                End If
            End If
            If DataRange(i, 6) = "W" Then
                Tmp = WFolder & "\" & DataRange(i, 1) & "_" & UCase(TV(DataRange(i, 2)))
                If Not .FolderExists(Tmp) Then
                    FSO.CreateFolder (Tmp)
                Else
                    MsgBox "Thu muc " & Tmp & " da ton tai"
                End If
            End If
        Next
    End With
End Sub
 
Upvote 0
Vậy bạn tham khảo Code sau, hàm TV tôi lấy từ module của bạn
Mã:
Sub CreateFolder()
    Dim FSO As Object
    Dim DataRange
    Dim i As Long
    Dim RootFolder As String
    Dim HFolder As String
    Dim WFolder As String
    Dim Tmp As String
    DataRange = [E2:J11]    'Ban tuy bien vung du lieu cho hop ly
    RootFolder = ThisWorkbook.path
    Set FSO = CreateObject("Scripting.FileSystemObject")
    'Tao Folder H & W - kieu gi cung phai tao 2 thu muc nay
    With FSO
        HFolder = .BuildPath(RootFolder, "H")
        WFolder = .BuildPath(RootFolder, "W")
        If Not .FolderExists(HFolder) Then
            FSO.CreateFolder (HFolder)
        Else
            MsgBox "Thu muc H da ton tai"
        End If
        If Not .FolderExists(WFolder) Then
            FSO.CreateFolder (WFolder)
        Else
            MsgBox "Thu muc W da ton tai"
        End If
        For i = 1 To UBound(DataRange, 1)
            If DataRange(i, 5) = "H" Then
                Tmp = HFolder & "\" & DataRange(i, 1) & "_" & UCase(TV(DataRange(i, 2)))
                If Not .FolderExists(Tmp) Then
                    FSO.CreateFolder (Tmp)
                Else
                    MsgBox "Thu muc " & Tmp & " da ton tai"
                End If
            End If
            If DataRange(i, 6) = "W" Then
                Tmp = WFolder & "\" & DataRange(i, 1) & "_" & UCase(TV(DataRange(i, 2)))
                If Not .FolderExists(Tmp) Then
                    FSO.CreateFolder (Tmp)
                Else
                    MsgBox "Thu muc " & Tmp & " da ton tai"
                End If
            End If
        Next
    End With
End Sub
Nó không phải như thế, nó như thế này file đó là mình copy sửa code mà chưa được:
- Đầu tiên bạn có file GIAYMOI nằm trong thư mục DICH (hay gì gì đó), trong file có Sheet1, trong Sheet1 cócell A4 đang chứa dữ liệu gì đó.
- Bây giờ nếu chạy code, ta sẽ tạo ngay 1 folder có tên là giá trị của cell A4 (tức là ta sẽ lấy dữ liệu tại cell A4 này để đặt tên cho file và folder). (trong file là folder Ong A), đồng thời copy sheet1 ra 1 workbook mới, lưu nó với tên cũng là giá trị của cell A4 (trong file là Ong A.xlsx) và cho file nằm trong thư mục vừa tạo (thư mục Ong A)
- Bấm nút chạy code lần nữa, Nếu giá trị cell A4 ko thay đổi vẫn là Ong A thì ko cần tạo folder nữa mà sẽ tạo file (cụ thể là backup cái file đó và lưu tên mới có gắn tên là: giá trị cell A4 + chuỗi giờ phút + chuỗi ngày tháng năm...
Tiếp tục tạo ra folder và file mới nếu giá trị cell A4 thay đổi
 

File đính kèm

  • GIAYMOI.rar
    1.6 MB · Đọc: 12
Upvote 0
Em tạo được folder và file với mong muốn rồi nhưng em không lưu được file vào cái folder vừa tạo đó. Vd: em tạo folder và file là cô+(time) nhưng em không lưu được file co+(time) vào được folder cô anh chị nào giúp em lưu vô cái folder vừa tạo với
 

File đính kèm

  • ROOT1.rar
    64.7 KB · Đọc: 15
Upvote 0
Vậy bạn tham khảo Code sau, hàm TV tôi lấy từ module của bạn
Mã:
Sub CreateFolder()
    Dim FSO As Object
    Dim DataRange
    Dim i As Long
    Dim RootFolder As String
    Dim HFolder As String
    Dim WFolder As String
    Dim Tmp As String
    DataRange = [E2:J11]    'Ban tuy bien vung du lieu cho hop ly
    RootFolder = ThisWorkbook.path
    Set FSO = CreateObject("Scripting.FileSystemObject")
    'Tao Folder H & W - kieu gi cung phai tao 2 thu muc nay
    With FSO
        HFolder = .BuildPath(RootFolder, "H")
        WFolder = .BuildPath(RootFolder, "W")
        If Not .FolderExists(HFolder) Then
            FSO.CreateFolder (HFolder)
        Else
            MsgBox "Thu muc H da ton tai"
        End If
        If Not .FolderExists(WFolder) Then
            FSO.CreateFolder (WFolder)
        Else
            MsgBox "Thu muc W da ton tai"
        End If
        For i = 1 To UBound(DataRange, 1)
            If DataRange(i, 5) = "H" Then
                Tmp = HFolder & "\" & DataRange(i, 1) & "_" & UCase(TV(DataRange(i, 2)))
                If Not .FolderExists(Tmp) Then
                    FSO.CreateFolder (Tmp)
                Else
                    MsgBox "Thu muc " & Tmp & " da ton tai"
                End If
            End If
            If DataRange(i, 6) = "W" Then
                Tmp = WFolder & "\" & DataRange(i, 1) & "_" & UCase(TV(DataRange(i, 2)))
                If Not .FolderExists(Tmp) Then
                    FSO.CreateFolder (Tmp)
                Else
                    MsgBox "Thu muc " & Tmp & " da ton tai"
                End If
            End If
        Next
    End With
End Sub

Cái "\" thay bằng Application.PathSeparator ... cho nó đẹp anh ạ :D
 
Upvote 0
Nhờ mọi người xem hộ bài 27 với vẫn ko đưa file vào được
 
Upvote 0
ủa bạn nạp card mobi rồi mà . lấy file .exe của người ta mà xài thôi . nếu file .exe không xài được bạn phải liên hệ đối tác yêu cầu nâng cấp chứ
Mình đăng bài để học hỏi và nhờ được chỉ dẩn chứ đâu có như 1 số người mang vấn đề này ra thương mại hoá chứ. Cái gì ko làm đc thì hỏi mọi người chỉ thì tôi cảm ơn cái file exe đó bạn học được gì trong đó ko? Bài tôi gửi lên tôi làm được 2 vấn đề rồi còn 1 vấn đề là đưa file đó vào cái folder nhờ mọi người chỉ giúp
 
Upvote 0
Mình đăng bài để học hỏi và nhờ được chỉ dẩn chứ đâu có như 1 số người mang vấn đề này ra thương mại hoá chứ. Cái gì ko làm đc thì hỏi mọi người chỉ thì tôi cảm ơn cái file exe đó bạn học được gì trong đó ko? Bài tôi gửi lên tôi làm được 2 vấn đề rồi còn 1 vấn đề là đưa file đó vào cái folder nhờ mọi người chỉ giúp
Biết dở dở đôi khi cũng phải tiếp tục mày mò sẽ giỏi hơn đó bạn. Bài 32 anh Ninh chỉ rõ, bạn bám theo đó coi ra vấn đề cho bạn không? Mình mới tham gia diễn đàn, hỏi phát nào cũng đều có người nhiệt tình giúp đỡ. Mình chỉ trả công họ bằng tấm lòng và "Cảm ơn" bạn à.
 
Upvote 0
Mình đăng bài để học hỏi và nhờ được chỉ dẩn chứ đâu có như 1 số người mang vấn đề này ra thương mại hoá chứ. Cái gì ko làm đc thì hỏi mọi người chỉ thì tôi cảm ơn cái file exe đó bạn học được gì trong đó ko? Bài tôi gửi lên tôi làm được 2 vấn đề rồi còn 1 vấn đề là đưa file đó vào cái folder nhờ mọi người chỉ giúp
Cái thứ dùng tiền để mua cũng chưa chắc đã ngon hơn cái miễn phí, nhất là phải ai là người bán! Tầm cở Lê Văn Duyệt, Nguyễn Duy Tuân hay Hai Lúa Miền Tây mà bán thì chắc là yên tâm về chất lượng rồi... còn lại thì... ẹc... ẹc... ai mà biết cái giống gì trong trái ổi
--------------
Trở lại vấn đề chính: Mấy hôm nay định làm giúp bạn bằng cách sửa lại tí code theo cái "sườn" đã viết sẵn tại topic này:
http://www.giaiphapexcel.com/forum/showthread.php?84992-Code-save-as-sheet-hiện-hành
nhưng mà cũng hơi bận... với lại tôi có thắc mắc về việc tại sao phải tạo ra quá nhiều thư mục thế chứ? (nên chưa bắt tay vào làm)
Dù sao bạn cũng nên xem qua các bài viết ở topic nêu trên rồi ta tính tiếp nhé
 
Upvote 0
Biết dở dở đôi khi cũng phải tiếp tục mày mò sẽ giỏi hơn đó bạn. Bài 32 anh Ninh chỉ rõ, bạn bám theo đó coi ra vấn đề cho bạn không? Mình mới tham gia diễn đàn, hỏi phát nào cũng đều có người nhiệt tình giúp đỡ. Mình chỉ trả công họ bằng tấm lòng và "Cảm ơn" bạn à.
Mình cũng có thử rồi nhưng vẫn chưa đc. Mình thì cũng ko có y gì, chỉ có những người khác ko muốn chỉ mà chỉ muốn được trả công. Ai cũng phải học rồi mới làm đc nhưng có người làm đc rồi thì lại nghĩ cần phải kinh doanh. Code này có thể dễ với người biết nhiều về code nhưng khó với người đang tìm tòi hoc hỏi.
 
Upvote 0
Cái thứ dùng tiền để mua cũng chưa chắc đã ngon hơn cái miễn phí, nhất là phải ai là người bán! Tầm cở Lê Văn Duyệt, Nguyễn Duy Tuân hay Hai Lúa Miền Tây mà bán thì chắc là yên tâm về chất lượng rồi... còn lại thì... ẹc... ẹc... ai mà biết cái giống gì trong trái ổi
--------------
Trở lại vấn đề chính: Mấy hôm nay định làm giúp bạn bằng cách sửa lại tí code theo cái "sườn" đã viết sẵn tại topic này:
http://www.giaiphapexcel.com/forum/showthread.php?84992-Code-save-as-sheet-hiện-hành
nhưng mà cũng hơi bận... với lại tôi có thắc mắc về việc tại sao phải tạo ra quá nhiều thư mục thế chứ? (nên chưa bắt tay vào làm)
Dù sao bạn cũng nên xem qua các bài viết ở topic nêu trên rồi ta tính tiếp nhé
Em cảm ơn vì anh đã quan tâm. Em muốn tạo thư mục mỗi khi cell e2 thay đổi. Anh xem giúp trong bài 27 em sửa lại và code em làm nó chưa chạy đúng ý. Nhờ a chỉ bảo
 
Upvote 0
Cái thứ dùng tiền để mua cũng chưa chắc đã ngon hơn cái miễn phí, nhất là phải ai là người bán! Tầm cở Lê Văn Duyệt, Nguyễn Duy Tuân hay Hai Lúa Miền Tây mà bán thì chắc là yên tâm về chất lượng rồi... còn lại thì... ẹc... ẹc... ai mà biết cái giống gì trong trái ổi
--------------
Trở lại vấn đề chính: Mấy hôm nay định làm giúp bạn bằng cách sửa lại tí code theo cái "sườn" đã viết sẵn tại topic này:
http://www.giaiphapexcel.com/forum/showthread.php?84992-Code-save-as-sheet-hiện-hành
nhưng mà cũng hơi bận... với lại tôi có thắc mắc về việc tại sao phải tạo ra quá nhiều thư mục thế chứ? (nên chưa bắt tay vào làm)
Dù sao bạn cũng nên xem qua các bài viết ở topic nêu trên rồi ta tính tiếp nhé
Em có xem cái bài viết tại topic trên nhưng function và sub main cũng chỉ rõ đường dẫn để lưu file. vấn đề của em là cũng sẽ chỉ rõ đường dẫn để đưa file vào nhưng mà là sau khi tạo xong cái folder rồi đưa file vào là em bị tịt ngòi hic. Chưa nghĩ ra được cách giải quyết vấn đề.
 
Upvote 0
Em có xem cái bài viết tại topic trên nhưng function và sub main cũng chỉ rõ đường dẫn để lưu file. vấn đề của em là cũng sẽ chỉ rõ đường dẫn để đưa file vào nhưng mà là sau khi tạo xong cái folder rồi đưa file vào là em bị tịt ngòi hic. Chưa nghĩ ra được cách giải quyết vấn đề.
<br>Sao không ai giúp mình hết nhỉ hay là cũng vấn đề phải trả phí ta
 
Upvote 0
Sao không ai giúp mình hết nhỉ hay là cũng vấn đề phải trả phí ta
Từ hồi đó đến giờ tham gia GPE bạn học được bao nhiêu và đã từng trả phí lần nào chưa? Nếu chưa thì đừng nên nói câu này ---> Mích lòng lắm
Bởi nếu có ai đó muốn bạn trả phí thì không có nghĩa là tất cả thành viên trên GPE này đều như vậy!
Nếu người ta chưa giúp được cũng có nhiều nguyên nhân lắm, đơn giản là chưa rảnh (như tôi chẳng hạn)
Ngoài ra cũng đừng nên "hối thúc". Tôi ghét nhất việc này và với tôi: Càng hối thúc tôi càng.. chạy!
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom