[belajar-excel] Mengkopi semua sheets yang ada pada semua files dalam banyak directories

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[belajar-excel] Mengkopi semua sheets yang ada pada semua files dalam banyak directories

Milis Belajar Excel mailing list
Dear Be-Excel,
Sehubungan dengan pertanyaan dari seorang member dari negara antah berantah mengenai hal tersebut diatas yang mirip dengan masalah yang pernah saya sampaikan sebelumnya....saya mencoba merevisi file sebelumnya (Master) sehingga menjadi lebih mudah.
Pertanyaannya adalah sebagai berikut (terjemahan bebas):Saya mempunyai beberapa file dalam dua directory tapi mempunyai nama2 yang sama, mis- Dir 1, file 1,2,3- Dir 2, file 1,2,3Saya ingin mencopy isi file2 tersebut.

Pertanyaan tersebut saya coba kembangkan menjadi:"Saya ingin mengcopy isi beberapa file yang berada dalam beberapa directory dan masing2 file mempunyai beberapa sheet yang tidak sama.
Setelah Macronya dibuat, hanya perlu 3 langkah untuk melaksanakannya :- Buka blank Workbook yang mempunyai peling sedikit 2 Sheet- Tulis nama2 folder atau sub folder pada Sheet2 Range A1, dstnya  (dalam contoh di atas Range A1 diisi dengan D1 dan Range A2 diisi dengan D2)- Copas dan jalankan macro di bawah ini pada Sheet1 (macro harus aktif),
Option Explicit

Sub ReadAndMergeData()

    ' ERROR CATCHING
    On Error GoTo ErrHandler
    
    ' FREEZE SCREEN
    Application.ScreenUpdating = False
    
    ' CLEAR ALL DATA
    Cells.Clear
    
    ' OUR FILE SYSTEM OBJECTS AND VARIABLES
    Dim objFs As Object
    Dim objFolder As Object
    Dim file As Object
    Dim dst As Workbook
    Dim src As Workbook
    Dim wks As Worksheet
    Dim i As Integer
    Dim mynextrow As Integer
    
    ' THE DESTINATION WORKBOOK AND STARTED ROW
    Set dst = ThisWorkbook
    mynextrow = 1
        
    ' SET FILESYSTEMOBJECT
    Set objFs = CreateObject("Scripting.FileSystemObject")
    
    ' LOOP THROUGH ALL THE PATHS OF THE SOURCE FOLDER
    For i = 1 To WorksheetFunction.CountA(Sheet2.Columns("A:A"))
    Set objFolder = objFs.GetFolder(Sheet2.Range("A" & i).Value)
    
    ' LOOP THROUGH ALL THE WORKBOOKS AND WORKSHEETS IN THE SOURCE FOLDER
    For Each file In objFolder.Files
            
        ' THE SOURCE WORKBOOK
        Set src = Workbooks.Open(file.Path, True, True)
        
        For Each wks In src.Worksheets
            dst.Sheets("sheet1").Cells(mynextrow, 1).Value = file & " (" & wks.Name & ")"
            dst.Sheets("sheet1").Cells(mynextrow, 1).Font.Bold = True
            wks.UsedRange.Copy
            dst.Sheets("sheet1").Cells(mynextrow + 1, 1).PasteSpecial Paste:=xlPasteValues
            mynextrow = dst.Sheets("sheet1").UsedRange.Rows.Count + 2
        Next wks
    
        ' CLOSE SOURCE WORKBOOK AND SET TO NOTHING
        src.Close False
        Set src = Nothing
      
    Next file
    
    Next i
    
ErrHandler:
    Application.EnableEvents = True
    Application.ScreenUpdating = True

End Sub

Semoga bermanfaat.
Salam,HK
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[belajar-excel] otomatis entri date setelah input data

Milis Belajar Excel mailing list
Dear Master excel,
saya punya kode berikut ( download lebih tepatnya).. hehee
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("C2:C100")) Is Nothing Then
        With Target(1, 0)
        .Value = Date
        .EntireColumn.AutoFit
        End With
    End If
End Sub
maksud kode tersebut kurang lebih, kalau ada input data atau value di cell C2 misalnya, maka akan otomatis terisi tanggal di cell B2.
yang ingin saya tanyakan, kalau misalnya buat macro delete satu baris dari B2:F2 misalnya (B2 tempat tgl otomatis tadi).. maka tanggal di B2 masih tetap ada dan tidak ikut kedelete ..
Mohon pencerahannya para master semua
 Best Regards,
Fajar Fatahillah






Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [belajar-excel] otomatis entri date setelah input data

Milis Belajar Excel mailing list
Dear Fajar

Untuk email selanjutnya pada pertanyaan baru (threat baru) jangan
mereply treat lama.

Mungkinkah seperti ini:

Sub hapus()
Dim y As Integer
y = ActiveCell.Row   'mencari nomor baris cell yang aktif dimasukkan
dalam variabel y
Range("C" & y & ":F" & y).ClearContents  'menghapus cell Cy:Fy
End Sub


Salam

NangAgus


On 8/3/2017 5:43 PM, Fajar Fatahillah [hidden email]
[belajar-excel] wrote:

> Dear Master excel,
>
> saya punya kode berikut ( download lebih tepatnya).. hehee
>
> Private Sub Worksheet_Change(ByVal Target As Range)
>     If Target.Cells.Count > 1 Then Exit Sub
>     If Not Intersect(Target, Range("C2:C100")) Is Nothing Then
>         With Target(1, 0)
>         .Value = Date
>         .EntireColumn.AutoFit
>         End With
>     End If
> End Sub
>
> maksud kode tersebut kurang lebih, kalau ada input data atau value di
> cell C2 misalnya, maka akan otomatis terisi tanggal di cell B2.
> yang ingin saya tanyakan, kalau misalnya buat macro delete satu baris
> dari B2:F2 misalnya (B2 tempat tgl otomatis tadi).. maka tanggal di B2
> masih tetap ada dan tidak ikut kedelete ..
>
> Mohon pencerahannya para master semua
> Best Regards,
> Fajar Fatahillah
>
>
>
>
>

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [belajar-excel] otomatis entri date setelah input data

Milis Belajar Excel mailing list
Yang ini cuma ikutan tentang script mas Nang :
Hapus baris 5 sampai 6  dan 8 sampai 11, tapi yang kolom B sampai D, kolom
F, dan kolom K:P di active sheet
Intersect( range("5:6,8:11") , range("b:d,f:f,k:p") ).clearcontents

Regards,
Kid



2017-08-04 6:49 GMT+07:00 nangagus [hidden email] [belajar-excel] <
[hidden email]>:

>
>
> Dear Fajar
>
> Untuk email selanjutnya pada pertanyaan baru (threat baru) jangan mereply
> treat lama.
>
> Mungkinkah seperti ini:
>
> Sub hapus()
> Dim y As Integer
> y = ActiveCell.Row   'mencari nomor baris cell yang aktif dimasukkan dalam
> variabel y
> Range("C" & y & ":F" & y).ClearContents  'menghapus cell Cy:Fy
> End Sub
>
>
> Salam
>
> NangAgus
>
> On 8/3/2017 5:43 PM, Fajar Fatahillah [hidden email]
> [belajar-excel] wrote:
>
>
> Dear Master excel,
>
> saya punya kode berikut ( download lebih tepatnya).. hehee
>
> Private Sub Worksheet_Change(ByVal Target As Range)
>     If Target.Cells.Count > 1 Then Exit Sub
>     If Not Intersect(Target, Range("C2:C100")) Is Nothing Then
>         With Target(1, 0)
>         .Value = Date
>         .EntireColumn.AutoFit
>         End With
>     End If
> End Sub
>
> maksud kode tersebut kurang lebih, kalau ada input data atau value di cell
> C2 misalnya, maka akan otomatis terisi tanggal di cell B2.
> yang ingin saya tanyakan, kalau misalnya buat macro delete satu baris dari
> B2:F2 misalnya (B2 tempat tgl otomatis tadi).. maka tanggal di B2 masih
> tetap ada dan tidak ikut kedelete ..
>
> Mohon pencerahannya para master semua
>
> Best Regards,
> Fajar Fatahillah
>
>
>
>
>
>
>
Loading...