15 New Messages
Digest #2580
1a
Re: Bls: Bls: [belajar-excel] Need Help melakukan copy paste (breakd by "Mr. Kid" nmkid.family@ymail.com
2a
Re: Bls: [belajar-excel] Need Help melakukan copy paste (breakdown) by "hendrik karnadi" hendrikkarnadi
3a
Re: Bls: Bls: [belajar-excel] Need Help melakukan copy paste (breakd by "Mr. Kid" nmkid.family@ymail.com
3b
Re: Bls: Bls: [belajar-excel] Need Help melakukan copy paste (breakd by "hendrik karnadi" hendrikkarnadi
3d
Re: Bls: Bls: [belajar-excel] Need Help melakukan copy paste (breakd by "Mr. Kid" nmkid.family@ymail.com
3f
Re: Bls: Bls: [belajar-excel] Need Help melakukan copy paste (breakd by "Mr. Kid" nmkid.family@ymail.com
3h
Re: Bls: Bls: [belajar-excel] Need Help melakukan copy paste (breakd by "Mr. Kid" nmkid.family@ymail.com
Messages
Fri Oct 4, 2013 7:59 am (PDT) . Posted by:
"Mr. Kid" nmkid.family@ymail.com
Supaya ndak perlu mengaktifkan sheet rekap detail, coba baris kode :
Sheets("rekap detail").Activate
Set SrcData = Sheets("rekap detail").Range("E2",
Range("E2").End(xlDown))
diubah menjadi :
Set SrcData = Sheets("rekap detail").Range("E2", Sheets("rekap detail").
Range("E2").End(xlDown))
Wassalam,
Kid.
2013/10/4 hendrik karnadi <hendrikkarnadi@yahoo.com>
> **
>
>
> Jangan putus asa dulu.
> Coba copas lagi macro ini pada VBE Sheet (Module1).
>
> Sub Masukin()
> Dim SrcData As Range, Rng As Range
> Dim cKode As New Collection
> Dim LRow As Long
>
> Application.ScreenUpdating = False
> Sheets("rekap detail").Activate
> Set SrcData = Sheets("rekap detail").Range("E2",
> Range("E2").End(xlDown))
>
> On Error Resume Next
> For Each Rng In SrcData
> cKode.Add Trim(Rng), CStr(Rng)
> Next
>
> For LRow = 1 To cKode.Count
> Set Rng = SrcData.CurrentRegion.Offset(1,
> 0).Resize(SrcData.Rows.Count, 6)
> SrcData.CurrentRegion.AutoFilter Field:=5,
> Criteria1:=cKode.Item(LRow)
> Rng.SpecialCells(xlCellTypeVisible).Copy
> Sheets(cKode.Item(LRow)).Range("A2")
> SrcData.CurrentRegion.AutoFilter
> Next
> Application.ScreenUpdating = True
> End Sub
>
> Mengapa timbul run time error ?
> Waktu menjalankan macro, anda tidak berada pada Sheet "rekap detail".
>
> Jika anda mau menjalankan macro tsb dari Sheet "rekap" (setelah macronya
> dicopas di VBE Sheet) maka perlu ditambahkan instruksi warna merah, artinya
> Sheet "rekap detail" harus diaktifkan dulu.
>
> Salam,
> HK
>
>
> ------------------------------
> *From:* Ahmad Habibillah <abiel_1108@yahoo.com>
> *To:* belajar-excel@yahoogroups.com
> *Sent:* Friday, 4 October 2013, 14:54
> *Subject:* Bls: Bls: [belajar-excel] Need Help melakukan copy paste
> (breakdown) sheet to sheet [1 Attachment]
>
>
> Dear bro Hendrik,
>
> sekali lagi mohon bantuannya ya bro, mohon dimaklumi ye bro... namanya
> newbe and juga pengen tau bisa gimana caranya.
>
> kalau itu bisa terealisasi efisiensi waktunya lumayan bro, kan bisa buat
> ngerjain yang lain.. hehehe
>
> terlampir format data yang biasa digunakan.
>
>
>
> many thanks
> Ahmad H
>
>
>
> ------------------------------
> *Dari:* hendrik karnadi <hendrikkarnadi@yahoo.com>
> *Kepada:* "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
> *Dikirim:* Jumat, 4 Oktober 2013 14:33
> *Judul:* Re: Bls: [belajar-excel] Need Help melakukan copy paste
> (breakdown) sheet to sheet
>
>
> Saya sdh tes dan filenya masih disimpan.
>
> Coba kirim file yang ada "run time errornya" karena dengan
> mengetahui/memperbaiki kesalahan tersebut kita dapat semakin memahami dan
> menikmati macro.
>
> JIka anda mau email satu persatu (balasan email anda kepada Miss Jan)
> kenapa ga langung disave sebagai workbook (pada Dir yang sama) per nama PT ?
>
> Salam,
> HK
>
> ------------------------------
> *From:* Ahmad Habibillah <abiel_1108@yahoo.com>
> *To:* belajar-excel@yahoogroups.com
> *Sent:* Friday, 4 October 2013, 14:02
> *Subject:* Bls: [belajar-excel] Need Help melakukan copy paste
> (breakdown) sheet to sheet
>
>
> Dear Bro Hendrik,
>
> kok nggak bisa ya.. "run time error"
>
> maaf newbe nih... hihihihiihi
>
> mohon bantuannya lagi ya bro...
>
>
> many thanks,
> cheers
> Ahmad H
>
>
>
> ------------------------------
> *Dari:* hendrik karnadi <hendrikkarnadi@yahoo.com>
> *Kepada:* "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
> *Dikirim:* Jumat, 4 Oktober 2013 12:36
> *Judul:* Re: [belajar-excel] Need Help melakukan copy paste (breakdown)
> sheet to sheet
>
>
> Pak De, boleh pinjam codenya ya ?
> Coba copas macro Pak De Premor di bawah ini pada Sheet VBA Module1
> (diambil dari kasus filtering sebelumnya),
>
> Sub Masukin()
> Dim SrcData As Range, Rng As Range
> Dim cKode As New Collection
> Dim LRow As Long
>
> Application.ScreenUpdating = False
> Set SrcData = Sheets("rekap detail").Range("E2", Range("E2
> ").End(xlDown))
>
> On Error Resume Next
> For Each Rng In SrcData
> cKode.Add Trim(Rng), CStr(Rng)
> Next
>
> For LRow = 1 To cKode.Count
> Set Rng = SrcData.CurrentRegion.Offset(1, 0).Resize(SrcData.Rows.Count,
> 6)
> SrcData.CurrentRegion.AutoFilter Field:=5,
> Criteria1:=cKode.Item(LRow)
> Rng.SpecialCells(xlCellTypeVisible).Copy
> Sheets(cKode.Item(LRow)).Range("A2")
> SrcData.CurrentRegion.AutoFilter
> Next
> Application.ScreenUpdating = True
> End Sub
>
> Warna merah adalah bagian yang disesuaikan.
>
> Salam,
> HK
>
>
> ------------------------------
> *From:* Ahmad Habibillah <abiel_1108@yahoo.com>
> *To:* belajar-excel@yahoogroups.com
> *Sent:* Friday, 4 October 2013, 10:57
> *Subject:* [belajar-excel] Need Help melakukan copy paste (breakdown)
> sheet to sheet [1 Attachment]
>
>
> Selamat Pagi,
>
> mudah-mudah an semua anggota di belajar-excel ini selalu mendapatkan
> keberkahan dalam hidup. amin
>
> dalam hal ini saya mau minta mohon bantuannya untuk permasalahan yang saya
> alami,
>
> dikarenakan olah data ini dilakukan 2 hari sekali maka akan sangat
> membantu jika dapat di lakukan otomasi by vb or macro.
>
> dalam 1 file excel terdapat sheet file detail dan beberapa sheet breakdown
> nya.
>
> berikut saya lampirkan file yang dimaksud.
>
> atas perhatian dan bantuannya terima kasih
>
> cheers,
> Ahmad H
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
Sheets("
Set SrcData = Sheets("
Range("
diubah menjadi :
Set SrcData = Sheets("
Range("
Wassalam,
Kid.
2013/10/4 hendrik karnadi <hendrikkarnadi@
> **
>
>
> Jangan putus asa dulu.
> Coba copas lagi macro ini pada VBE Sheet (Module1).
>
> Sub Masukin()
> Dim SrcData As Range, Rng As Range
> Dim cKode As New Collection
> Dim LRow As Long
>
> Application.
> Sheets("
> Set SrcData = Sheets("
> Range("
>
> On Error Resume Next
> For Each Rng In SrcData
> cKode.Add Trim(Rng), CStr(Rng)
> Next
>
> For LRow = 1 To cKode.Count
> Set Rng = SrcData.CurrentRegi
> 0).Resize(SrcData.
> SrcData.CurrentRegi
> Criteria1:=cKode.
> Rng.SpecialCells(
> Sheets(cKode.
> SrcData.CurrentRegi
> Next
> Application.
> End Sub
>
> Mengapa timbul run time error ?
> Waktu menjalankan macro, anda tidak berada pada Sheet "rekap detail"
>
> Jika anda mau menjalankan macro tsb dari Sheet "rekap" (setelah macronya
> dicopas di VBE Sheet) maka perlu ditambahkan instruksi warna merah, artinya
> Sheet "rekap detail" harus diaktifkan dulu.
>
> Salam,
> HK
>
>
> ------------
> *From:* Ahmad Habibillah <abiel_1108@yahoo.
> *To:* belajar-excel@
> *Sent:* Friday, 4 October 2013, 14:54
> *Subject:* Bls: Bls: [belajar-excel] Need Help melakukan copy paste
> (breakdown) sheet to sheet [1 Attachment]
>
>
> Dear bro Hendrik,
>
> sekali lagi mohon bantuannya ya bro, mohon dimaklumi ye bro... namanya
> newbe and juga pengen tau bisa gimana caranya.
>
> kalau itu bisa terealisasi efisiensi waktunya lumayan bro, kan bisa buat
> ngerjain yang lain.. hehehe
>
> terlampir format data yang biasa digunakan.
>
>
>
> many thanks
> Ahmad H
>
>
>
> ------------
> *Dari:* hendrik karnadi <hendrikkarnadi@
> *Kepada:* "belajar-excel@
> *Dikirim:* Jumat, 4 Oktober 2013 14:33
> *Judul:* Re: Bls: [belajar-excel] Need Help melakukan copy paste
> (breakdown) sheet to sheet
>
>
> Saya sdh tes dan filenya masih disimpan.
>
> Coba kirim file yang ada "run time errornya" karena dengan
> mengetahui/memperba
> menikmati macro.
>
> JIka anda mau email satu persatu (balasan email anda kepada Miss Jan)
> kenapa ga langung disave sebagai workbook (pada Dir yang sama) per nama PT ?
>
> Salam,
> HK
>
> ------------
> *From:* Ahmad Habibillah <abiel_1108@yahoo.
> *To:* belajar-excel@
> *Sent:* Friday, 4 October 2013, 14:02
> *Subject:* Bls: [belajar-excel] Need Help melakukan copy paste
> (breakdown) sheet to sheet
>
>
> Dear Bro Hendrik,
>
> kok nggak bisa ya.. "run time error"
>
> maaf newbe nih... hihihihiihi
>
> mohon bantuannya lagi ya bro...
>
>
> many thanks,
> cheers
> Ahmad H
>
>
>
> ------------
> *Dari:* hendrik karnadi <hendrikkarnadi@
> *Kepada:* "belajar-excel@
> *Dikirim:* Jumat, 4 Oktober 2013 12:36
> *Judul:* Re: [belajar-excel] Need Help melakukan copy paste (breakdown)
> sheet to sheet
>
>
> Pak De, boleh pinjam codenya ya ?
> Coba copas macro Pak De Premor di bawah ini pada Sheet VBA Module1
> (diambil dari kasus filtering sebelumnya),
>
> Sub Masukin()
> Dim SrcData As Range, Rng As Range
> Dim cKode As New Collection
> Dim LRow As Long
>
> Application.
> Set SrcData = Sheets("
> ").End(
>
> On Error Resume Next
> For Each Rng In SrcData
> cKode.Add Trim(Rng), CStr(Rng)
> Next
>
> For LRow = 1 To cKode.Count
> Set Rng = SrcData.CurrentRegi
> 6)
> SrcData.CurrentRegi
> Criteria1:=cKode.
> Rng.SpecialCells(
> Sheets(cKode.
> SrcData.CurrentRegi
> Next
> Application.
> End Sub
>
> Warna merah adalah bagian yang disesuaikan.
>
> Salam,
> HK
>
>
> ------------
> *From:* Ahmad Habibillah <abiel_1108@yahoo.
> *To:* belajar-excel@
> *Sent:* Friday, 4 October 2013, 10:57
> *Subject:* [belajar-excel] Need Help melakukan copy paste (breakdown)
> sheet to sheet [1 Attachment]
>
>
> Selamat Pagi,
>
> mudah-mudah an semua anggota di belajar-excel ini selalu mendapatkan
> keberkahan dalam hidup. amin
>
> dalam hal ini saya mau minta mohon bantuannya untuk permasalahan yang saya
> alami,
>
> dikarenakan olah data ini dilakukan 2 hari sekali maka akan sangat
> membantu jika dapat di lakukan otomasi by vb or macro.
>
> dalam 1 file excel terdapat sheet file detail dan beberapa sheet breakdown
> nya.
>
> berikut saya lampirkan file yang dimaksud.
>
> atas perhatian dan bantuannya terima kasih
>
> cheers,
> Ahmad H
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
Fri Oct 4, 2013 8:08 am (PDT) . Posted by:
"hendrik karnadi" hendrikkarnadi
Kalau masih penasaran mau pencet-pencet tombol dan copy datanya pada sheets yang disediakan,
silakan mainkan file pada lampiran email ini.
- Tombol Copy to Sheet untuk mengcopy rekap detail ke Vendor Sheets
- Tombol CLEAR DATA untuk menghapus data pada Vendor Sheets (hanya tinggal judul saja)
Salam,
HK
________________________________
From: Ahmad Habibillah <abiel_1108@yahoo.com>
To: belajar-excel@yahoogroups.com
Sent: Friday, 4 October 2013, 14:59
Subject: Bls: [belajar-excel] Need Help melakukan copy paste (breakdown) sheet to sheet
dear Miss Jan,
thanks atas bantuannya Miss,
yes miss dengan cara itu ok sip, its work..
tapi kalau aja.. hehehhehe bisa by command button..
hasil nya pastinya akan lebih sempurna dengan format atau bentuk data yang sesuai dengan yang diinginkan.
bai de wei... eni wei... bas wei... tengkyuuu pisan...
thanks
Ahmad H
________________________________
Dari: Jan Raisin <miss.jan.raisin@gmail.com>
Kepada: belajar-excel@yahoogroups.com
Dikirim: Jumat, 4 Oktober 2013 14:22
Judul: Re: [belajar-excel] Need Help melakukan copy paste (breakdown) sheet to sheet
owh.. jadi nanti hasilnya mau dicopas ke workbook lain
lalu workbook tersebut akan dikirim ke masing-masing perusahaan ya..
maaf deh.. Jan kan gak tau.. xixixixi ^_^
bai de wei... eni wei... bas wei..
pernah dengar istilah paste special? ^_^
caranya waktu mau paste ke sheet yang diinginkan, jangan tekan tombol CTRL + V atau klik Paste
tetapi.... klik kanan tombol kanan mouse, pilih Paste Special..
lalu pilih jenis pastenya seperti apa..
kalo dalam kasus ini berarti seperti gambar di bawah ini:
karena yang diinginkan hanya nilai dan format angkanya saja, maka pilih Values and number formats
setelah itu klik OK
kalo yang diinginkan beda.. tinggal dipilih saja yang sesuai.. karena di situ banyak pilihannya kok..
tetap semangat.. ^_^
-Miss Jan Raisin-
Pada 4 Oktober 2013 14.00, Ahmad Habibillah <abiel_1108@yahoo.com> menulis:
>
>hai juga Miss Jan,
>
>
>waduh... many thanks untuk solusinya, mantaaapppp.
>
>
>tapi masih ada tapi nya nih... :(
>
>
>kalau yang seperti itu saya gunakan untuk diinternal,
>
>
>sebenarnya nantinya jika sudah bisa di copy paste sheet to sheet, masing sheet PT A, PT B dst bakalan saya move or copy satu satu, dan akan saya kirimkan by mail ke masing-masing PT,
>
>
>kalau masih dengan format pivot kan bisa di filter nya select all terbuka deh semua PT nya.
>
>
>mohon bantuannya ya Miss.
>
>
>many thanks
>cheers,
>Ahmad H
>
>
silakan mainkan file pada lampiran email ini.
- Tombol Copy to Sheet untuk mengcopy rekap detail ke Vendor Sheets
- Tombol CLEAR DATA untuk menghapus data pada Vendor Sheets (hanya tinggal judul saja)
Salam,
HK
____________
From: Ahmad Habibillah <abiel_1108@yahoo.
To: belajar-excel@
Sent: Friday, 4 October 2013, 14:59
Subject: Bls: [belajar-excel] Need Help melakukan copy paste (breakdown) sheet to sheet
dear Miss Jan,
thanks atas bantuannya Miss,
yes miss dengan cara itu ok sip, its work..
tapi kalau aja.. hehehhehe bisa by command button..
hasil nya pastinya akan lebih sempurna dengan format atau bentuk data yang sesuai dengan yang diinginkan.
bai de wei... eni wei... bas wei... tengkyuuu pisan...
thanks
Ahmad H
____________
Dari: Jan Raisin <miss.jan.raisin@
Kepada: belajar-excel@
Dikirim: Jumat, 4 Oktober 2013 14:22
Judul: Re: [belajar-excel] Need Help melakukan copy paste (breakdown) sheet to sheet
owh.. jadi nanti hasilnya mau dicopas ke workbook lain
lalu workbook tersebut akan dikirim ke masing-masing perusahaan ya..
maaf deh.. Jan kan gak tau.. xixixixi ^_^
bai de wei... eni wei... bas wei..
pernah dengar istilah paste special? ^_^
caranya waktu mau paste ke sheet yang diinginkan, jangan tekan tombol CTRL + V atau klik Paste
tetapi.... klik kanan tombol kanan mouse, pilih Paste Special..
lalu pilih jenis pastenya seperti apa..
kalo dalam kasus ini berarti seperti gambar di bawah ini:
karena yang diinginkan hanya nilai dan format angkanya saja, maka pilih Values and number formats
setelah itu klik OK
kalo yang diinginkan beda.. tinggal dipilih saja yang sesuai.. karena di situ banyak pilihannya kok..
tetap semangat.. ^_^
-Miss Jan Raisin-
Pada 4 Oktober 2013 14.00, Ahmad Habibillah <abiel_1108@yahoo.
>
>hai juga Miss Jan,
>
>
>waduh... many thanks untuk solusinya, mantaaapppp.
>
>
>tapi masih ada tapi nya nih... :(
>
>
>kalau yang seperti itu saya gunakan untuk diinternal,
>
>
>sebenarnya nantinya jika sudah bisa di copy paste sheet to sheet, masing sheet PT A, PT B dst bakalan saya move or copy satu satu, dan akan saya kirimkan by mail ke masing-masing PT,
>
>
>kalau masih dengan format pivot kan bisa di filter nya select all terbuka deh semua PT nya.
>
>
>mohon bantuannya ya Miss.
>
>
>many thanks
>cheers,
>Ahmad H
>
>
Fri Oct 4, 2013 8:10 am (PDT) . Posted by:
"Mr. Kid" nmkid.family@ymail.com
PakD,
script dengan loop add collection dibuat terpisah dengan proses susun
output file itu dibandingkan dengan kalau loop add collection diisi
sekalian dengan proses susun output file, akan cepat mana ya ? (sorry ndak
sempet nyoba).
mungkin bisa lebih cepat kalau dalam add collection ada proses susun output
file deh.
Wassalam,
Kid.
2013/10/4 De Premor <de@premor.net>
> **
>
>
> ikutan nimbrung ya mas HK
> Buat error yang sebelumnya bisa tanpa berpindah sheet dulu dengan cara
> begini
>
> Set SrcData = Sheets("rekap detail").Range("E2", Sheets("rekap detail").
> Range("E2").End(xlDown))
>
> berikut kode buat ngefilter per pt, kemudian mengkopy ke sheet baru, lalu
> dipindah ke workbook baru, selanjutnya disimpen, setelah itu di close
> workbook barunya.
> *kalau perlu ditambahi kode buat ngirim email ke masing2 tujuan sekalian,
> jadi tinggal pencet tombol trus duduk manis atau "**ngerjain **yang lain**"
> hehehe*
>
> Sub ExportPerPT()
> Dim SrcData As Range, Rng As Range, cKode As New Collection
> Dim LRow As Long, Sh As Worksheet, Fld As String, NamaFile as String
>
> Application.ScreenUpdating = False
> Application.DisplayAlerts = False
>
> Set SrcData = Sheets("rekap detail").Range("E2", Sheets("rekap
> detail").Range("E2").End(xlDown))
>
> On Error Resume Next 'Proses setelah ini akan menghasilkan error jika
> ada data duplikat, maka buat error handlernya
>
> For Each Rng In SrcData
> cKode.Add Trim(Rng),
> CStr(Rng) 'Buat List Unique
> Nama2 PT
> Next
>
> Fld = ThisWorkbook.Path & "\Buat
> Dikirim\" 'Lokasi Pulder buat nyimpen
> data export'an
> If Dir(Fld, vbDirectory) = "" Then MkDir
> Fld 'Jika belum ada foldernya, dibuat ajah
>
> Set Rng = SrcData.CurrentRegion.Resize(SrcData.Rows.Count,
> 6) 'Inget2 lokasi Data yang mau dicopy
>
>
> For LRow = 1 To cKode.Count
> SrcData.CurrentRegion.AutoFilter Field:=5,
> Criteria1:=cKode.Item(LRow) 'AutoFilter
>
> Worksheets.Add 'Buat
> Sheet Baru
> Set Sh =
> ActiveSheet 'Ingat2
> Sheet barunya
> Sh.Name = Left(cKode.Item(LRow),
> 31) 'Ganti Nama Sheet baru menjadi
> nama PT (Max 31 Karakter)
> Rng.SpecialCells(xlCellTypeVisible).Copy
> Sh.Range("A1") 'Copy Data Dari Rekap Detail ke Sheet Baru
>
> Sh.Range("A1:F1").EntireColumn.AutoFit 'Pas
> kan lebar kolom
>
> Sh.Move 'Pindahkan
> Sheetbaru ke workbook baru
> NamaFile = Fld & ActiveSheet.[E2] & ".xlsx"
> ActiveWorkbook.SaveAs NamaFile
> 'Simpen workbook barunya sesuai nama PT
>
> ActiveWorkbook.Close 'Kalau
> udah kesimpen, Tutup Aje
> SrcData.CurrentRegion.AutoFilter
> 'Buang fitur autopilternya
> 'Disini bisa diisi kode buat nyisipin kode mengirimkan email
> kemasing2
> 'tujuan sesuai dengan file hasil export terakhir
> 'Ex:
> 'SendEmail "Email@gw.com" <Email@gw.com>,"Email@lu.net"<Email@lu.net>,"Bro,
> Ini Rekap PT Lu","Liat Aja dilampiran", NamaFile
> 'Kalau memang mau langsung dikirim seperti ini, berarti perlu
> sebuah tabel lagi yang berisi alamat email dan nama PT :D
> Next
>
> MsgBox "Export selesai, Target folder -> " & Fld, vbInformation
>
> Application.DisplayAlerts = True
>
> Application.ScreenUpdating = True
> End Sub
>
>
> Contoh kode sederhana (*Jika email server tidak memerlukan authentikasi
> buat kirim emailnya*) seperti berikut :
>
> Function SendMail(ePengirim As String, eTujuan As String, eSubject As
> String, ByVal eBody As String, eLampiran As String)
> Set oEmail = CreateObject("CDO.Message")
>
> With oEmail
> .From = ePengirim
> .To = eTujuan
> .Subject = eSubject
> .Textbody = eBody
> .AddAttachment eLampiran
>
> With .Configuration.Fields
> .Item(
> "http://schemas.microsoft.com/cdo/configuration/sendusing"<http://schemas.microsoft.com/cdo/configuration/sendusing>)
> = 2
> .Item(
> "http://schemas.microsoft.com/cdo/configuration/smtpserver"<http://schemas.microsoft.com/cdo/configuration/smtpserver>)
> = "192.168.7.7"
> .Item(
> "http://schemas.microsoft.com/cdo/configuration/authenticate"<http://schemas.microsoft.com/cdo/configuration/authenticate>)
> = 1
> .Update
> End With
>
> .Send
> End With
> Set oEmail = Nothing
> End Function
>
> On 04-10-2013 15:53, hendrik karnadi wrote:
>
>
> Jangan putus asa dulu.
> Coba copas lagi macro ini pada VBE Sheet (Module1).
>
> Sub Masukin()
> Dim SrcData As Range, Rng As Range
> Dim cKode As New Collection
> Dim LRow As Long
>
> Application.ScreenUpdating = False
> Sheets("rekap detail").Activate
> Set SrcData = Sheets("rekap detail").Range("E2",
> Range("E2").End(xlDown))
>
> On Error Resume Next
> For Each Rng In SrcData
> cKode.Add Trim(Rng), CStr(Rng)
> Next
>
> For LRow = 1 To cKode.Count
> Set Rng = SrcData.CurrentRegion.Offset(1,
> 0).Resize(SrcData.Rows.Count, 6)
> SrcData.CurrentRegion.AutoFilter Field:=5,
> Criteria1:=cKode.Item(LRow)
> Rng.SpecialCells(xlCellTypeVisible).Copy
> Sheets(cKode.Item(LRow)).Range("A2")
> SrcData.CurrentRegion.AutoFilter
> Next
> Application.ScreenUpdating = True
> End Sub
>
> Mengapa timbul run time error ?
> Waktu menjalankan macro, anda tidak berada pada Sheet "rekap detail".
>
> Jika anda mau menjalankan macro tsb dari Sheet "rekap" (setelah macronya
> dicopas di VBE Sheet) maka perlu ditambahkan instruksi warna merah, artinya
> Sheet "rekap detail" harus diaktifkan dulu.
>
> Salam,
> HK
>
>
> ------------------------------
> *From:* Ahmad Habibillah <abiel_1108@yahoo.com> <abiel_1108@yahoo.com>
> *To:* belajar-excel@yahoogroups.com
> *Sent:* Friday, 4 October 2013, 14:54
> *Subject:* Bls: Bls: [belajar-excel] Need Help melakukan copy paste
> (breakdown) sheet to sheet [1 Attachment]
>
>
> Dear bro Hendrik,
>
> sekali lagi mohon bantuannya ya bro, mohon dimaklumi ye bro... namanya
> newbe and juga pengen tau bisa gimana caranya.
>
> kalau itu bisa terealisasi efisiensi waktunya lumayan bro, kan bisa buat
> ngerjain yang lain.. hehehe
>
> terlampir format data yang biasa digunakan.
>
>
>
> many thanks
> Ahmad H
>
>
>
> ------------------------------
> *Dari:* hendrik karnadi <hendrikkarnadi@yahoo.com><hendrikkarnadi@yahoo.com>
> *Kepada:* "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
> <belajar-excel@yahoogroups.com> <belajar-excel@yahoogroups.com>
> *Dikirim:* Jumat, 4 Oktober 2013 14:33
> *Judul:* Re: Bls: [belajar-excel] Need Help melakukan copy paste
> (breakdown) sheet to sheet
>
>
> Saya sdh tes dan filenya masih disimpan.
>
> Coba kirim file yang ada "run time errornya" karena dengan
> mengetahui/memperbaiki kesalahan tersebut kita dapat semakin memahami dan
> menikmati macro.
>
> JIka anda mau email satu persatu (balasan email anda kepada Miss Jan)
> kenapa ga langung disave sebagai workbook (pada Dir yang sama) per nama PT ?
>
> Salam,
> HK
>
> ------------------------------
> *From:* Ahmad Habibillah <abiel_1108@yahoo.com> <abiel_1108@yahoo.com>
> *To:* belajar-excel@yahoogroups.com
> *Sent:* Friday, 4 October 2013, 14:02
> *Subject:* Bls: [belajar-excel] Need Help melakukan copy paste
> (breakdown) sheet to sheet
>
>
> Dear Bro Hendrik,
>
> kok nggak bisa ya.. "run time error"
>
> maaf newbe nih... hihihihiihi
>
> mohon bantuannya lagi ya bro...
>
>
> many thanks,
> cheers
> Ahmad H
>
>
>
> ------------------------------
> *Dari:* hendrik karnadi <hendrikkarnadi@yahoo.com><hendrikkarnadi@yahoo.com>
> *Kepada:* "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
> <belajar-excel@yahoogroups.com> <belajar-excel@yahoogroups.com>
> *Dikirim:* Jumat, 4 Oktober 2013 12:36
> *Judul:* Re: [belajar-excel] Need Help melakukan copy paste (breakdown)
> sheet to sheet
>
>
> Pak De, boleh pinjam codenya ya ?
> Coba copas macro Pak De Premor di bawah ini pada Sheet VBA Module1
> (diambil dari kasus filtering sebelumnya),
>
> Sub Masukin()
> Dim SrcData As Range, Rng As Range
> Dim cKode As New Collection
> Dim LRow As Long
>
> Application.ScreenUpdating = False
> Set SrcData = Sheets("rekap detail").Range("E2", Range("E2
> ").End(xlDown))
>
> On Error Resume Next
> For Each Rng In SrcData
> cKode.Add Trim(Rng), CStr(Rng)
> Next
>
> For LRow = 1 To cKode.Count
> Set Rng = SrcData.CurrentRegion.Offset(1, 0).Resize(SrcData.Rows.Count,
> 6)
> SrcData.CurrentRegion.AutoFilter Field:=5,
> Criteria1:=cKode.Item(LRow)
> Rng.SpecialCells(xlCellTypeVisible).Copy
> Sheets(cKode.Item(LRow)).Range("A2")
> SrcData.CurrentRegion.AutoFilter
> Next
> Application.ScreenUpdating = True
> End Sub
>
> Warna merah adalah bagian yang disesuaikan.
>
> Salam,
> HK
>
>
> ------------------------------
> *From:* Ahmad Habibillah <abiel_1108@yahoo.com> <abiel_1108@yahoo.com>
> *To:* belajar-excel@yahoogroups.com
> *Sent:* Friday, 4 October 2013, 10:57
> *Subject:* [belajar-excel] Need Help melakukan copy paste (breakdown)
> sheet to sheet [1 Attachment]
>
>
> Selamat Pagi,
>
> mudah-mudah an semua anggota di belajar-excel ini selalu mendapatkan
> keberkahan dalam hidup. amin
>
> dalam hal ini saya mau minta mohon bantuannya untuk permasalahan yang
> saya alami,
>
> dikarenakan olah data ini dilakukan 2 hari sekali maka akan sangat
> membantu jika dapat di lakukan otomasi by vb or macro.
>
> dalam 1 file excel terdapat sheet file detail dan beberapa sheet
> breakdown nya.
>
> berikut saya lampirkan file yang dimaksud.
>
> atas perhatian dan bantuannya terima kasih
>
> cheers,
> Ahmad H
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
script dengan loop add collection dibuat terpisah dengan proses susun
output file itu dibandingkan dengan kalau loop add collection diisi
sekalian dengan proses susun output file, akan cepat mana ya ? (sorry ndak
sempet nyoba).
mungkin bisa lebih cepat kalau dalam add collection ada proses susun output
file deh.
Wassalam,
Kid.
2013/10/4 De Premor <de@premor.net>
> **
>
>
> ikutan nimbrung ya mas HK
> Buat error yang sebelumnya bisa tanpa berpindah sheet dulu dengan cara
> begini
>
> Set SrcData = Sheets("
> Range("
>
> berikut kode buat ngefilter per pt, kemudian mengkopy ke sheet baru, lalu
> dipindah ke workbook baru, selanjutnya disimpen, setelah itu di close
> workbook barunya.
> *kalau perlu ditambahi kode buat ngirim email ke masing2 tujuan sekalian,
> jadi tinggal pencet tombol trus duduk manis atau "**ngerjain **yang lain**"
> hehehe*
>
> Sub ExportPerPT(
> Dim SrcData As Range, Rng As Range, cKode As New Collection
> Dim LRow As Long, Sh As Worksheet, Fld As String, NamaFile as String
>
> Application.
> Application.
>
> Set SrcData = Sheets("
> detail"
>
> On Error Resume Next 'Proses setelah ini akan menghasilkan error jika
> ada data duplikat, maka buat error handlernya
>
> For Each Rng In SrcData
> cKode.Add Trim(Rng),
> CStr(Rng) 'Buat List Unique
> Nama2 PT
> Next
>
> Fld = ThisWorkbook.
> Dikirim\
> data export'an
> If Dir(Fld, vbDirectory) = "" Then MkDir
> Fld 'Jika belum ada foldernya, dibuat ajah
>
> Set Rng = SrcData.CurrentRegi
> 6) 'Inget2 lokasi Data yang mau dicopy
>
>
> For LRow = 1 To cKode.Count
> SrcData.CurrentRegi
> Criteria1:=cKode.
>
> Worksheets.Add 'Buat
> Sheet Baru
> Set Sh =
> ActiveSheet 'Ingat2
> Sheet barunya
> Sh.Name = Left(cKode.Item(
> 31) 'Ganti Nama Sheet baru menjadi
> nama PT (Max 31 Karakter)
> Rng.SpecialCells(
> Sh.Range("
>
> Sh.Range("
> kan lebar kolom
>
> Sh.Move 'Pindahkan
> Sheetbaru ke workbook baru
> NamaFile = Fld & ActiveSheet.
> ActiveWorkbook.
> 'Simpen workbook barunya sesuai nama PT
>
> ActiveWorkbook.
> udah kesimpen, Tutup Aje
> SrcData.CurrentRegi
> 'Buang fitur autopilternya
> 'Disini bisa diisi kode buat nyisipin kode mengirimkan email
> kemasing2
> 'tujuan sesuai dengan file hasil export terakhir
> 'Ex:
> 'SendEmail "Email@gw.com" <Email@gw.com>,"Email@lu.net"<Email@lu.net>,"Bro,
> Ini Rekap PT Lu","
> 'Kalau memang mau langsung dikirim seperti ini, berarti perlu
> sebuah tabel lagi yang berisi alamat email dan nama PT :D
> Next
>
> MsgBox "Export selesai, Target folder -> " & Fld, vbInformation
>
> Application.
>
> Application.
> End Sub
>
>
> Contoh kode sederhana (*Jika email server tidak memerlukan authentikasi
> buat kirim emailnya*) seperti berikut :
>
> Function SendMail(ePengirim As String, eTujuan As String, eSubject As
> String, ByVal eBody As String, eLampiran As String)
> Set oEmail = CreateObject(
>
> With oEmail
> .From = ePengirim
> .To = eTujuan
> .Subject = eSubject
> .Textbody = eBody
> .AddAttachment eLampiran
>
> With .Configuration.
> .Item(
> "http://schemas.
> = 2
> .Item(
> "http://schemas.
> = "192.168.
> .Item(
> "http://schemas.
> = 1
> .Update
> End With
>
> .Send
> End With
> Set oEmail = Nothing
> End Function
>
> On 04-10-2013 15:53, hendrik karnadi wrote:
>
>
> Jangan putus asa dulu.
> Coba copas lagi macro ini pada VBE Sheet (Module1).
>
> Sub Masukin()
> Dim SrcData As Range, Rng As Range
> Dim cKode As New Collection
> Dim LRow As Long
>
> Application.
> Sheets("
> Set SrcData = Sheets("
> Range("
>
> On Error Resume Next
> For Each Rng In SrcData
> cKode.Add Trim(Rng), CStr(Rng)
> Next
>
> For LRow = 1 To cKode.Count
> Set Rng = SrcData.CurrentRegi
> 0).Resize(SrcData.
> SrcData.CurrentRegi
> Criteria1:=cKode.
> Rng.SpecialCells(
> Sheets(cKode.
> SrcData.CurrentRegi
> Next
> Application.
> End Sub
>
> Mengapa timbul run time error ?
> Waktu menjalankan macro, anda tidak berada pada Sheet "rekap detail"
>
> Jika anda mau menjalankan macro tsb dari Sheet "rekap" (setelah macronya
> dicopas di VBE Sheet) maka perlu ditambahkan instruksi warna merah, artinya
> Sheet "rekap detail" harus diaktifkan dulu.
>
> Salam,
> HK
>
>
> ------------
> *From:* Ahmad Habibillah <abiel_1108@yahoo.
> *To:* belajar-excel@
> *Sent:* Friday, 4 October 2013, 14:54
> *Subject:* Bls: Bls: [belajar-excel] Need Help melakukan copy paste
> (breakdown) sheet to sheet [1 Attachment]
>
>
> Dear bro Hendrik,
>
> sekali lagi mohon bantuannya ya bro, mohon dimaklumi ye bro... namanya
> newbe and juga pengen tau bisa gimana caranya.
>
> kalau itu bisa terealisasi efisiensi waktunya lumayan bro, kan bisa buat
> ngerjain yang lain.. hehehe
>
> terlampir format data yang biasa digunakan.
>
>
>
> many thanks
> Ahmad H
>
>
>
> ------------
> *Dari:* hendrik karnadi <hendrikkarnadi@
> *Kepada:* "belajar-excel@
> <belajar-excel@
> *Dikirim:* Jumat, 4 Oktober 2013 14:33
> *Judul:* Re: Bls: [belajar-excel] Need Help melakukan copy paste
> (breakdown) sheet to sheet
>
>
> Saya sdh tes dan filenya masih disimpan.
>
> Coba kirim file yang ada "run time errornya" karena dengan
> mengetahui/memperba
> menikmati macro.
>
> JIka anda mau email satu persatu (balasan email anda kepada Miss Jan)
> kenapa ga langung disave sebagai workbook (pada Dir yang sama) per nama PT ?
>
> Salam,
> HK
>
> ------------
> *From:* Ahmad Habibillah <abiel_1108@yahoo.
> *To:* belajar-excel@
> *Sent:* Friday, 4 October 2013, 14:02
> *Subject:* Bls: [belajar-excel] Need Help melakukan copy paste
> (breakdown) sheet to sheet
>
>
> Dear Bro Hendrik,
>
> kok nggak bisa ya.. "run time error"
>
> maaf newbe nih... hihihihiihi
>
> mohon bantuannya lagi ya bro...
>
>
> many thanks,
> cheers
> Ahmad H
>
>
>
> ------------
> *Dari:* hendrik karnadi <hendrikkarnadi@
> *Kepada:* "belajar-excel@
> <belajar-excel@
> *Dikirim:* Jumat, 4 Oktober 2013 12:36
> *Judul:* Re: [belajar-excel] Need Help melakukan copy paste (breakdown)
> sheet to sheet
>
>
> Pak De, boleh pinjam codenya ya ?
> Coba copas macro Pak De Premor di bawah ini pada Sheet VBA Module1
> (diambil dari kasus filtering sebelumnya),
>
> Sub Masukin()
> Dim SrcData As Range, Rng As Range
> Dim cKode As New Collection
> Dim LRow As Long
>
> Application.
> Set SrcData = Sheets("
> ").End(
>
> On Error Resume Next
> For Each Rng In SrcData
> cKode.Add Trim(Rng), CStr(Rng)
> Next
>
> For LRow = 1 To cKode.Count
> Set Rng = SrcData.CurrentRegi
> 6)
> SrcData.CurrentRegi
> Criteria1:=cKode.
> Rng.SpecialCells(
> Sheets(cKode.
> SrcData.CurrentRegi
> Next
> Application.
> End Sub
>
> Warna merah adalah bagian yang disesuaikan.
>
> Salam,
> HK
>
>
> ------------
> *From:* Ahmad Habibillah <abiel_1108@yahoo.
> *To:* belajar-excel@
> *Sent:* Friday, 4 October 2013, 10:57
> *Subject:* [belajar-excel] Need Help melakukan copy paste (breakdown)
> sheet to sheet [1 Attachment]
>
>
> Selamat Pagi,
>
> mudah-mudah an semua anggota di belajar-excel ini selalu mendapatkan
> keberkahan dalam hidup. amin
>
> dalam hal ini saya mau minta mohon bantuannya untuk permasalahan yang
> saya alami,
>
> dikarenakan olah data ini dilakukan 2 hari sekali maka akan sangat
> membantu jika dapat di lakukan otomasi by vb or macro.
>
> dalam 1 file excel terdapat sheet file detail dan beberapa sheet
> breakdown nya.
>
> berikut saya lampirkan file yang dimaksud.
>
> atas perhatian dan bantuannya terima kasih
>
> cheers,
> Ahmad H
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
Fri Oct 4, 2013 8:23 am (PDT) . Posted by:
"hendrik karnadi" hendrikkarnadi
Nah, kalau sdh soal susun-menyusun begini, saya mungkin belum bisa ikut bermain ......
Salam,
HK
________________________________
From: Mr. Kid <mr.nmkid@gmail.com>
To: BeExcel <belajar-excel@yahoogroups.com>
Sent: Friday, 4 October 2013, 22:09
Subject: Re: Bls: Bls: [belajar-excel] Need Help melakukan copy paste (breakdown) sheet to sheet
PakD,
script dengan loop add collection dibuat terpisah dengan proses susun output file itu dibandingkan dengan kalau loop add collection diisi sekalian dengan proses susun output file, akan cepat mana ya ? (sorry ndak sempet nyoba).
mungkin bisa lebih cepat kalau dalam add collection ada proses susun output file deh.
Wassalam,
Kid.
2013/10/4 De Premor <de@premor.net>
>
>ikutan nimbrung ya mas HK
>Buat error yang sebelumnya bisa tanpa berpindah sheet dulu dengan
cara begini
>
>Set SrcData = Sheets("rekap detail").Range("E2", Sheets("rekap detail").Range("E2").End(xlDown))
>
>berikut kode buat ngefilter per pt, kemudian mengkopy ke sheet baru,
lalu dipindah ke workbook baru, selanjutnya disimpen, setelah itu di
close workbook barunya.
>kalau perlu ditambahi kode buat ngirim email ke masing2 tujuan sekalian, jadi tinggal pencet tombol trus duduk manis atau "ngerjain yang lain" hehehe
>
>Sub ExportPerPT()
> Dim SrcData As Range, Rng As Range, cKode As New Collection
> Dim LRow As Long, Sh As Worksheet, Fld As String, NamaFile
as String
>
> Application.ScreenUpdating = False
> Application.DisplayAlerts = False
>
> Set SrcData = Sheets("rekap detail").Range("E2",
Sheets("rekap detail").Range("E2").End(xlDown))
>
> On Error Resume Next 'Proses setelah ini akan menghasilkan error jika ada data duplikat, maka buat error handlernya
>
> For Each Rng In SrcData
> cKode.Add Trim(Rng), CStr(Rng) 'Buat List Unique Nama2 PT
> Next
>
> Fld = ThisWorkbook.Path & "\Buat
Dikirim\" 'Lokasi Pulder buat nyimpen data export'an
> If Dir(Fld, vbDirectory) = "" Then MkDir
Fld 'Jika belum ada foldernya, dibuat ajah
>
> Set Rng = SrcData.CurrentRegion.Resize(SrcData.Rows.Count,
6) 'Inget2 lokasi Data yang mau dicopy
>
>
> For LRow = 1 To cKode.Count
>
SrcData.CurrentRegion.AutoFilter Field:=5, Criteria1:=cKode.Item(LRow) 'AutoFilter
>
Worksheets.Add 'Buat Sheet Baru
> Set Sh =
ActiveSheet 'Ingat2 Sheet barunya
> Sh.Name = Left(cKode.Item(LRow),
31) 'Ganti Nama Sheet baru menjadi nama PT (Max 31 Karakter)
> Rng.SpecialCells(xlCellTypeVisible).Copy
Sh.Range("A1") 'Copy Data Dari Rekap Detail ke Sheet Baru
>
Sh.Range("A1:F1").EntireColumn.AutoFit 'Pas kan lebar kolom
>
Sh.Move 'Pindahkan Sheetbaru ke workbook baru
> NamaFile = Fld & ActiveSheet.[E2] & ".xlsx"
> ActiveWorkbook.SaveAs NamaFile 'Simpen workbook barunya sesuai nama PT
>
ActiveWorkbook.Close 'Kalau udah kesimpen, Tutup Aje
> SrcData.CurrentRegion.AutoFilter 'Buang fitur autopilternya
> 'Disini bisa diisi kode buat nyisipin kode mengirimkan email kemasing2
> 'tujuan sesuai dengan file hasil export terakhir
> 'Ex:
> 'SendEmail "Email@gw.com","Email@lu.net","Bro, Ini Rekap PT Lu","Liat Aja dilampiran", NamaFile
> 'Kalau memang mau langsung dikirim seperti ini,
berarti perlu sebuah tabel lagi yang berisi alamat email dan
nama PT :D
> Next
>
> MsgBox "Export selesai, Target folder -> " & Fld,
vbInformation
>
> Application.DisplayAlerts = True
>
> Application.ScreenUpdating = True
>End Sub
>
>Contoh kode sederhana (Jika email server tidak memerlukan authentikasi buat kirim emailnya) seperti berikut :
>
>Function SendMail(ePengirim As String, eTujuan As String, eSubject As String, ByVal eBody As String, eLampiran As String)
> Set oEmail = CreateObject("CDO.Message")
>
> With oEmail
> .From = ePengirim
> .To = eTujuan
> .Subject = eSubject
> .Textbody = eBody
> .AddAttachment eLampiran
>
> With .Configuration.Fields
>
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
>
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "192.168.7.7"
>
.Item("http://schemas.microsoft.com/cdo/configuration/authenticate") = 1
> .Update
> End With
>
> .Send
> End With
> Set oEmail = Nothing
>End Function
>
>
>On 04-10-2013 15:53, hendrik karnadi wrote:
>
>
>>Jangan putus asa dulu.
>>Coba copas lagi macro ini pada VBE Sheet (Module1).
>>
>>
>>Sub Masukin()
>>
>> Dim SrcData As Range, Rng As Range
>> Dim cKode As New Collection
>> Dim LRow As Long
>>
>>
>> Application.ScreenUpdating = False
>> Sheets("rekap detail").Activate
>> Set SrcData = Sheets("rekap detail").Range("E2", Range("E2").End(xlDown))
>>
>> On Error Resume Next
>> For Each Rng In SrcData
>> cKode.Add Trim(Rng), CStr(Rng)
>> Next
>>
>> For LRow = 1 To cKode.Count
>> Set Rng = SrcData.CurrentRegion.Offset(1, 0).Resize(SrcData.Rows.Count, 6)
>> SrcData.CurrentRegion.AutoFilter Field:=5, Criteria1:=cKode.Item(LRow)
>> Rng.SpecialCells(xlCellTypeVisible).Copy Sheets(cKode.Item(LRow)).Range("A2")
>> SrcData.CurrentRegion.AutoFilter
>> Next
>> Application.ScreenUpdating = True
>>End Sub
>>
>>
>>Mengapa timbul run time error ?
>>Waktu menjalankan macro, anda tidak berada pada Sheet "rekap detail".
>>
>>
>>
>>Jika anda mau menjalankan macro tsb dari Sheet "rekap" (setelah macronya dicopas di VBE Sheet) maka perlu ditambahkan instruksi warna merah, artinya Sheet "rekap detail" harus diaktifkan dulu.
>>
>>
>>Salam,
>>HK
>>
>>
>>
>>
>>
>>________________________________
>> From: Ahmad Habibillah <abiel_1108@yahoo.com>
>>To: belajar-excel@yahoogroups.com
>>Sent: Friday, 4 October 2013, 14:54
>>Subject: Bls: Bls: [belajar-excel] Need Help melakukan copy paste (breakdown) sheet to sheet [1 Attachment]
>>
>>
>>
>>
>>Dear bro Hendrik,
>>
>>
>>sekali lagi mohon bantuannya ya bro, mohon dimaklumi ye bro... namanya newbe and juga pengen tau bisa gimana caranya.
>>
>>
>>kalau itu bisa terealisasi efisiensi waktunya lumayan bro, kan bisa buat ngerjain yang lain.. hehehe
>>
>>
>>terlampir format data yang biasa digunakan.
>>
>>
>>
>>
>>
>>
>>many thanks
>>Ahmad H
>>
>>
>>
>>
>>
>>________________________________
>> Dari: hendrik karnadi <hendrikkarnadi@yahoo.com>
>>Kepada: "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
>>Dikirim: Jumat, 4 Oktober 2013 14:33
>>Judul: Re: Bls: [belajar-excel] Need Help melakukan copy paste (breakdown) sheet to sheet
>>
>>
>>
>>
>>Saya sdh tes dan filenya masih disimpan.
>>
>>
>>Coba kirim file yang ada "run time errornya" karena dengan mengetahui/memperbaiki kesalahan tersebut kita dapat semakin memahami dan menikmati macro.
>>
>>
>>JIka anda mau email satu persatu (balasan email anda kepada Miss Jan) kenapa ga langung disave sebagai workbook (pada Dir yang sama) per nama PT ?
>>
>>
>>Salam,
>>HK
>>
>>
>>
>>________________________________
>> From: Ahmad Habibillah <abiel_1108@yahoo.com>
>>To: belajar-excel@yahoogroups.com
>>Sent: Friday, 4 October 2013, 14:02
>>Subject: Bls: [belajar-excel] Need Help melakukan copy paste (breakdown) sheet to sheet
>>
>>
>>
>>
>>Dear Bro Hendrik,
>>
>>
>>kok nggak bisa ya.. "run time error"
>>
>>
>>maaf newbe nih... hihihihiihi
>>
>>
>>mohon bantuannya lagi ya bro...
>>
>>
>>
>>
>>many thanks,
>>cheers
>>Ahmad H
>>
>>
>>
>>
>>
>>
>>________________________________
>> Dari: hendrik karnadi <hendrikkarnadi@yahoo.com>
>>Kepada: "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
>>Dikirim: Jumat, 4 Oktober 2013 12:36
>>Judul: Re: [belajar-excel] Need Help melakukan copy paste (breakdown) sheet to sheet
>>
>>
>>
>>
>>Pak De, boleh pinjam codenya ya ?
>>Coba copas macro Pak De Premor di bawah ini pada Sheet VBA Module1 (diambil dari kasus filtering sebelumnya),
>>
>>
>>Sub Masukin()
>> Dim SrcData As Range, Rng As Range
>> Dim cKode As New Collection
>> Dim LRow As Long
>>
>>
>> Application.ScreenUpdating = False
>> Set SrcData = Sheets("rekap detail").Range("E2", Range("E2").End(xlDown))
>>
>> On Error Resume Next
>> For Each Rng In SrcData
>> cKode.Add Trim(Rng), CStr(Rng)
>> Next
>>
>> For LRow = 1 To cKode.Count
>> Set Rng = SrcData.CurrentRegion.Offset(1, 0).Resize(SrcData.Rows.Count, 6)
>> SrcData.CurrentRegion.AutoFilter Field:=5,
Criteria1:=cKode.Item(LRow)
>> Rng.SpecialCells(xlCellTypeVisible).Copy
Sheets(cKode.Item(LRow)).Range("A2")
>> SrcData.CurrentRegion.AutoFilter
>> Next
>> Application.ScreenUpdating = True
>>End Sub
>>
>>
>>Warna merah adalah bagian yang disesuaikan.
>>
>>
>>Salam,
>>HK
>>
>>
>>
>>
>>
>>________________________________
>> From: Ahmad Habibillah <abiel_1108@yahoo.com>
>>To: belajar-excel@yahoogroups.com
>>Sent: Friday, 4 October 2013, 10:57
>>Subject: [belajar-excel] Need Help melakukan copy paste (breakdown) sheet to sheet [1 Attachment]
>>
>>
>>
>>
>>Selamat Pagi,
>>
>>
>>mudah-mudah an semua anggota di belajar-excel ini selalu mendapatkan keberkahan dalam hidup. amin
>>
>>
>>dalam hal ini saya mau minta mohon bantuannya untuk permasalahan yang saya alami,
>>
>>
>>dikarenakan olah data ini dilakukan 2 hari sekali maka akan sangat membantu jika dapat di lakukan otomasi by vb or macro.
>>
>>
>>dalam 1 file excel terdapat sheet file detail dan beberapa sheet breakdown nya.
>>
>>
>>berikut saya lampirkan file yang dimaksud.
>>
>>
>>atas perhatian dan bantuannya terima kasih
>>
>>
>>cheers,
>>Ahmad H
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>
Salam,
HK
____________
From: Mr. Kid <mr.nmkid@gmail.
To: BeExcel <belajar-excel@
Sent: Friday, 4 October 2013, 22:09
Subject: Re: Bls: Bls: [belajar-excel] Need Help melakukan copy paste (breakdown) sheet to sheet
PakD,
script dengan loop add collection dibuat terpisah dengan proses susun output file itu dibandingkan dengan kalau loop add collection diisi sekalian dengan proses susun output file, akan cepat mana ya ? (sorry ndak sempet nyoba).
mungkin bisa lebih cepat kalau dalam add collection ada proses susun output file deh.
Wassalam,
Kid.
2013/10/4 De Premor <de@premor.net>
>
>ikutan nimbrung ya mas HK
>Buat error yang sebelumnya bisa tanpa berpindah sheet dulu dengan
cara begini
>
>Set SrcData = Sheets("
>
>berikut kode buat ngefilter per pt, kemudian mengkopy ke sheet baru,
lalu dipindah ke workbook baru, selanjutnya disimpen, setelah itu di
close workbook barunya.
>kalau perlu ditambahi kode buat ngirim email ke masing2 tujuan sekalian, jadi tinggal pencet tombol trus duduk manis atau "ngerjain yang lain" hehehe
>
>Sub ExportPerPT(
> Dim SrcData As Range, Rng As Range, cKode As New Collection
> Dim LRow As Long, Sh As Worksheet, Fld As String, NamaFile
as String
>
> Application.
> Application.
>
> Set SrcData = Sheets("
Sheets("
>
> On Error Resume Next 'Proses setelah ini akan menghasilkan error jika ada data duplikat, maka buat error handlernya
>
> For Each Rng In SrcData
> cKode.Add Trim(Rng), CStr(Rng) 'Buat List Unique Nama2 PT
> Next
>
> Fld = ThisWorkbook.
Dikirim\
> If Dir(Fld, vbDirectory) = "" Then MkDir
Fld 'Jika belum ada foldernya, dibuat ajah
>
> Set Rng = SrcData.CurrentRegi
6) 'Inget2 lokasi Data yang mau dicopy
>
>
> For LRow = 1 To cKode.Count
>
SrcData.CurrentRegi
>
Worksheets.Add 'Buat Sheet Baru
> Set Sh =
ActiveSheet 'Ingat2 Sheet barunya
> Sh.Name = Left(cKode.Item(
31) 'Ganti Nama Sheet baru menjadi nama PT (Max 31 Karakter)
> Rng.SpecialCells(
Sh.Range("
>
Sh.Range("
>
Sh.Move 'Pindahkan Sheetbaru ke workbook baru
> NamaFile = Fld & ActiveSheet.
> ActiveWorkbook.
>
ActiveWorkbook.
> SrcData.CurrentRegi
> 'Disini bisa diisi kode buat nyisipin kode mengirimkan email kemasing2
> 'tujuan sesuai dengan file hasil export terakhir
> 'Ex:
> 'SendEmail "Email@gw.com","Email@lu.net","
> 'Kalau memang mau langsung dikirim seperti ini,
berarti perlu sebuah tabel lagi yang berisi alamat email dan
nama PT :D
> Next
>
> MsgBox "Export selesai, Target folder -> " & Fld,
vbInformation
>
> Application.
>
> Application.
>End Sub
>
>Contoh kode sederhana (Jika email server tidak memerlukan authentikasi buat kirim emailnya) seperti berikut :
>
>Function SendMail(ePengirim As String, eTujuan As String, eSubject As String, ByVal eBody As String, eLampiran As String)
> Set oEmail = CreateObject(
>
> With oEmail
> .From = ePengirim
> .To = eTujuan
> .Subject = eSubject
> .Textbody = eBody
> .AddAttachment eLampiran
>
> With .Configuration.
>
.Item("http://schemas.
>
.Item("http://schemas.
>
.Item("http://schemas.
> .Update
> End With
>
> .Send
> End With
> Set oEmail = Nothing
>End Function
>
>
>On 04-10-2013 15:53, hendrik karnadi wrote:
>
>
>>Jangan putus asa dulu.
>>Coba copas lagi macro ini pada VBE Sheet (Module1).
>>
>>
>>Sub Masukin()
>>
>> Dim SrcData As Range, Rng As Range
>> Dim cKode As New Collection
>> Dim LRow As Long
>>
>>
>> Application.
>> Sheets("
>> Set SrcData = Sheets("
>>
>> On Error Resume Next
>> For Each Rng In SrcData
>> cKode.Add Trim(Rng), CStr(Rng)
>> Next
>>
>> For LRow = 1 To cKode.Count
>> Set Rng = SrcData.CurrentRegi
>> SrcData.CurrentRegi
>> Rng.SpecialCells(
>> SrcData.CurrentRegi
>> Next
>> Application.
>>End Sub
>>
>>
>>Mengapa timbul run time error ?
>>Waktu menjalankan macro, anda tidak berada pada Sheet "rekap detail"
>>
>>
>>
>>Jika anda mau menjalankan macro tsb dari Sheet "rekap" (setelah macronya dicopas di VBE Sheet) maka perlu ditambahkan instruksi warna merah, artinya Sheet "rekap detail" harus diaktifkan dulu.
>>
>>
>>Salam,
>>HK
>>
>>
>>
>>
>>
>>____
>> From: Ahmad Habibillah <abiel_1108@yahoo.
>>To: belajar-excel@
>>Sent: Friday, 4 October 2013, 14:54
>>Subject: Bls: Bls: [belajar-excel] Need Help melakukan copy paste (breakdown) sheet to sheet [1 Attachment]
>>
>>
>>
>>
>>Dear bro Hendrik,
>>
>>
>>sekali lagi mohon bantuannya ya bro, mohon dimaklumi ye bro... namanya newbe and juga pengen tau bisa gimana caranya.
>>
>>
>>kalau itu bisa terealisasi efisiensi waktunya lumayan bro, kan bisa buat ngerjain yang lain.. hehehe
>>
>>
>>terlampir format data yang biasa digunakan.
>>
>>
>>
>>
>>
>>
>>many thanks
>>Ahmad H
>>
>>
>>
>>
>>
>>____
>> Dari: hendrik karnadi <hendrikkarnadi@
>>Kepada: "belajar-excel@
>>Dikirim: Jumat, 4 Oktober 2013 14:33
>>Judul: Re: Bls: [belajar-excel] Need Help melakukan copy paste (breakdown) sheet to sheet
>>
>>
>>
>>
>>Saya sdh tes dan filenya masih disimpan.
>>
>>
>>Coba kirim file yang ada "run time errornya" karena dengan mengetahui/memperba
>>
>>
>>JIka anda mau email satu persatu (balasan email anda kepada Miss Jan) kenapa ga langung disave sebagai workbook (pada Dir yang sama) per nama PT ?
>>
>>
>>Salam,
>>HK
>>
>>
>>
>>____
>> From: Ahmad Habibillah <abiel_1108@yahoo.
>>To: belajar-excel@
>>Sent: Friday, 4 October 2013, 14:02
>>Subject: Bls: [belajar-excel] Need Help melakukan copy paste (breakdown) sheet to sheet
>>
>>
>>
>>
>>Dear Bro Hendrik,
>>
>>
>>kok nggak bisa ya.. "run time error"
>>
>>
>>maaf newbe nih... hihihihiihi
>>
>>
>>mohon bantuannya lagi ya bro...
>>
>>
>>
>>
>>many thanks,
>>cheers
>>Ahmad H
>>
>>
>>
>>
>>
>>
>>____
>> Dari: hendrik karnadi <hendrikkarnadi@
>>Kepada: "belajar-excel@
>>Dikirim: Jumat, 4 Oktober 2013 12:36
>>Judul: Re: [belajar-excel] Need Help melakukan copy paste (breakdown) sheet to sheet
>>
>>
>>
>>
>>Pak De, boleh pinjam codenya ya ?
>>Coba copas macro Pak De Premor di bawah ini pada Sheet VBA Module1 (diambil dari kasus filtering sebelumnya),
>>
>>
>>Sub Masukin()
>> Dim SrcData As Range, Rng As Range
>> Dim cKode As New Collection
>> Dim LRow As Long
>>
>>
>> Application.
>> Set SrcData = Sheets("
>>
>> On Error Resume Next
>> For Each Rng In SrcData
>> cKode.Add Trim(Rng), CStr(Rng)
>> Next
>>
>> For LRow = 1 To cKode.Count
>> Set Rng = SrcData.CurrentRegi
>> SrcData.CurrentRegi
Criteria1:=cKode.
>> Rng.SpecialCells(
Sheets(cKode.
>> SrcData.CurrentRegi
>> Next
>> Application.
>>End Sub
>>
>>
>>Warna merah adalah bagian yang disesuaikan.
>>
>>
>>Salam,
>>HK
>>
>>
>>
>>
>>
>>____
>> From: Ahmad Habibillah <abiel_1108@yahoo.
>>To: belajar-excel@
>>Sent: Friday, 4 October 2013, 10:57
>>Subject: [belajar-excel] Need Help melakukan copy paste (breakdown) sheet to sheet [1 Attachment]
>>
>>
>>
>>
>>Selamat Pagi,
>>
>>
>>mudah-
>>
>>
>>dalam hal ini saya mau minta mohon bantuannya untuk permasalahan yang saya alami,
>>
>>
>>dikarenakan olah data ini dilakukan 2 hari sekali maka akan sangat membantu jika dapat di lakukan otomasi by vb or macro.
>>
>>
>>dalam 1 file excel terdapat sheet file detail dan beberapa sheet breakdown nya.
>>
>>
>>berikut saya lampirkan file yang dimaksud.
>>
>>
>>atas perhatian dan bantuannya terima kasih
>>
>>
>>cheers,
>>Ahmad H
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>
Fri Oct 4, 2013 9:14 am (PDT) . Posted by:
"De Premor" de.premor
Setelah dicoba2 tetep cepet yang lama ya, apa caraku yg kurang pas yak,
selisihnya kalau dirata-rata 0,2 detik disini :-\
Sub ExportPerPTBaru()
Dim SrcData As Range, Rng As Range, CopyRng As Range, cKode As New
Collection
Dim LRow As Long, Sh As Worksheet, Fld As String, NamaFile As
String, StrRng As String
Dim Timex As Double
Timex = Timer
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set SrcData = Sheets("rekap detail").Range("E2", Sheets("rekap
detail").Range("E2").End(xlDown))
Fld = ThisWorkbook.Path & "\Buat Dikirin\"
If Dir(Fld, vbDirectory) = "" Then MkDir Fld
Set CopyRng = SrcData.CurrentRegion.Resize(SrcData.Rows.Count, 6)
On Error Resume Next
For Each Rng In SrcData
StrRng = Rng.Value
cKode.Add Trim(StrRng), CStr(StrRng)
If Err.Number <> 457 Then
SrcData.CurrentRegion.AutoFilter Field:=5, Criteria1:=StrRng
Worksheets.Add
Set Sh = ActiveSheet
Sh.Name = Left(StrRng, 31)
CopyRng.SpecialCells(xlCellTypeVisible).Copy Sh.Range("A1")
Sh.Range("A1:F1").EntireColumn.AutoFit
Sh.Move
NamaFile = Fld & StrRng & ".xlsx"
ActiveWorkbook.SaveAs NamaFile
ActiveWorkbook.Close
SrcData.CurrentRegion.AutoFilter
End If
Err.Clear
Next
MsgBox "Export selesai dalam waktu " & Timer - Timex & " detik" &
vbCrLf & "Target folder -> " & Fld, vbInformation
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Pada 04/10/2013 22:23, hendrik karnadi menulis:
> Nah, kalau sdh soal susun-menyusun begini, saya mungkin belum bisa
> ikut bermain ......
>
> Salam,
> HK
>
> ----------------------------------------------------------
> *From:* Mr. Kid <mr.nmkid@gmail.com>
> *To:* BeExcel <belajar-excel@yahoogroups.com>
> *Sent:* Friday, 4 October 2013, 22:09
> *Subject:* Re: Bls: Bls: [belajar-excel] Need Help melakukan copy
> paste (breakdown) sheet to sheet
>
> PakD,
>
> script dengan loop add collection dibuat terpisah dengan proses susun
> output file itu dibandingkan dengan kalau loop add collection diisi
> sekalian dengan proses susun output file, akan cepat mana ya ? (sorry
> ndak sempet nyoba).
> mungkin bisa lebih cepat kalau dalam add collection ada proses susun
> output file deh.
>
> Wassalam,
> Kid.
>
>
>
>
>
> 2013/10/4 De Premor <de@premor.net <mailto:de@premor.net>>
>
> ikutan nimbrung ya mas HK
> Buat error yang sebelumnya bisa tanpa berpindah sheet dulu dengan
> cara begini
>
> Set SrcData = Sheets("rekap detail").Range("E2", Sheets("rekap
> detail").Range("E2").End(xlDown))
>
> berikut kode buat ngefilter per pt, kemudian mengkopy ke sheet
> baru, lalu dipindah ke workbook baru, selanjutnya disimpen,
> setelah itu di close workbook barunya.
> /kalau perlu ditambahi kode buat ngirim email ke masing2 tujuan
> sekalian, jadi tinggal pencet tombol trus duduk manis atau
> "//*ngerjain *//*yang lain*//" hehehe/
>
> Sub ExportPerPT()
> Dim SrcData As Range, Rng As Range, cKode As New Collection
> Dim LRow As Long, Sh As Worksheet, Fld As String, NamaFile as
> String
>
> Application.ScreenUpdating = False
> Application.DisplayAlerts = False
>
> Set SrcData = Sheets("rekap detail").Range("E2", Sheets("rekap
> detail").Range("E2").End(xlDown))
>
> On Error Resume Next 'Proses setelah ini akan menghasilkan
> error jika ada data duplikat, maka buat error handlernya
>
> For Each Rng In SrcData
> cKode.Add Trim(Rng), CStr(Rng) 'Buat List Unique Nama2 PT
> Next
>
> Fld = ThisWorkbook.Path & "\Buat Dikirim\" 'Lokasi Pulder buat
> nyimpen data export'an
> If Dir(Fld, vbDirectory) = "" Then MkDir Fld 'Jika belum ada
> foldernya, dibuat ajah
>
> Set Rng = SrcData.CurrentRegion.Resize(SrcData.Rows.Count, 6)
> 'Inget2 lokasi Data yang mau dicopy
>
>
> For LRow = 1 To cKode.Count
> SrcData.CurrentRegion.AutoFilter Field:=5,
> Criteria1:=cKode.Item(LRow) 'AutoFilter
> Worksheets.Add 'Buat Sheet Baru
> Set Sh = ActiveSheet 'Ingat2 Sheet barunya
> Sh.Name = Left(cKode.Item(LRow), 31) 'Ganti Nama Sheet
> baru menjadi nama PT (Max 31 Karakter)
> Rng.SpecialCells(xlCellTypeVisible).Copy Sh.Range("A1") 'Copy Data
> Dari Rekap Detail ke Sheet Baru
> Sh.Range("A1:F1").EntireColumn.AutoFit 'Pas kan lebar kolom
> Sh.Move 'Pindahkan Sheetbaru ke workbook baru
> NamaFile = Fld & ActiveSheet.[E2] & ".xlsx"
> ActiveWorkbook.SaveAs NamaFile 'Simpen workbook
> barunya sesuai nama PT
> ActiveWorkbook.Close 'Kalau udah kesimpen, Tutup Aje
> SrcData.CurrentRegion.AutoFilter 'Buang fitur autopilternya
> 'Disini bisa diisi kode buat nyisipin kode mengirimkan email
> kemasing2
> 'tujuan sesuai dengan file hasil export terakhir
> 'Ex:
> 'SendEmail "Email@gw.com"
> <mailto:Email@gw.com>,"Email@lu.net" <mailto:Email@lu.net>,"Bro,
> Ini Rekap PT Lu","Liat Aja dilampiran", NamaFile
> 'Kalau memang mau langsung dikirim seperti ini, berarti
> perlu sebuah tabel lagi yang berisi alamat email dan nama PT :D
> Next
>
> MsgBox "Export selesai, Target folder -> " & Fld, vbInformation
>
> Application.DisplayAlerts = True
>
> Application.ScreenUpdating = True
> End Sub
>
>
> Contoh kode sederhana (*Jika email server tidak memerlukan
> authentikasi buat kirim emailnya*) seperti berikut :
>
> Function SendMail(ePengirim As String, eTujuan As String, eSubject
> As String, ByVal eBody As String, eLampiran As String)
> Set oEmail = CreateObject("CDO.Message")
>
> With oEmail
> .From = ePengirim
> .To = eTujuan
> .Subject = eSubject
> .Textbody = eBody
> .AddAttachment eLampiran
>
> With .Configuration.Fields
>
> .Item("http://schemas.microsoft.com/cdo/configuration/sendusing"
> <http://schemas.microsoft.com/cdo/configuration/sendusing>) = 2
>
> .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver"
> <http://schemas.microsoft.com/cdo/configuration/smtpserver>) =
> "192.168.7.7"
>
> .Item("http://schemas.microsoft.com/cdo/configuration/authenticate" <http://schemas.microsoft.com/cdo/configuration/authenticate>)
> = 1
> .Update
> End With
>
> .Send
> End With
> Set oEmail = Nothing
> End Function
>
> On 04-10-2013 15:53, hendrik karnadi wrote:
>> Jangan putus asa dulu.
>> Coba copas lagi macro ini pada VBE Sheet (Module1).
>>
>> Sub Masukin()
>> Dim SrcData As Range, Rng As Range
>> Dim cKode As New Collection
>> Dim LRow As Long
>>
>> Application.ScreenUpdating = False
>> Sheets("rekap detail").Activate
>> Set SrcData = Sheets("rekap detail").Range("E2",
>> Range("E2").End(xlDown))
>> On Error Resume Next
>> For Each Rng In SrcData
>> cKode.Add Trim(Rng), CStr(Rng)
>> Next
>> For LRow = 1 To cKode.Count
>> Set Rng = SrcData.CurrentRegion.Offset(1,
>> 0).Resize(SrcData.Rows.Count, 6)
>> SrcData.CurrentRegion.AutoFilter Field:=5,
>> Criteria1:=cKode.Item(LRow)
>> Rng.SpecialCells(xlCellTypeVisible).Copy
>> Sheets(cKode.Item(LRow)).Range("A2")
>> SrcData.CurrentRegion.AutoFilter
>> Next
>> Application.ScreenUpdating = True
>> End Sub
>>
>> Mengapa timbul run time error ?
>> Waktu menjalankan macro, anda tidak berada pada Sheet "rekap detail".
>>
>> Jika anda mau menjalankan macro tsb dari Sheet "rekap" (setelah
>> macronya dicopas di VBE Sheet) maka perlu ditambahkan instruksi
>> warna merah, artinya Sheet "rekap detail" harus diaktifkan dulu.
>>
>> Salam,
>> HK
>>
>>
>> ----------------------------------------------------------
>> *From:* Ahmad Habibillah <abiel_1108@yahoo.com>
>> <mailto:abiel_1108@yahoo.com>
>> *To:* belajar-excel@yahoogroups.com
>> <mailto:belajar-excel@yahoogroups.com>
>> *Sent:* Friday, 4 October 2013, 14:54
>> *Subject:* Bls: Bls: [belajar-excel] Need Help melakukan copy
>> paste (breakdown) sheet to sheet [1 Attachment]
>>
>> Dear bro Hendrik,
>>
>> sekali lagi mohon bantuannya ya bro, mohon dimaklumi ye bro...
>> namanya newbe and juga pengen tau bisa gimana caranya.
>>
>> kalau itu bisa terealisasi efisiensi waktunya lumayan bro, kan
>> bisa buat ngerjain yang lain.. hehehe
>>
>> terlampir format data yang biasa digunakan.
>>
>>
>>
>> many thanks
>> Ahmad H
>>
>>
>>
>> ----------------------------------------------------------
>> *Dari:* hendrik karnadi <hendrikkarnadi@yahoo.com>
>> <mailto:hendrikkarnadi@yahoo.com>
>> *Kepada:* "belajar-excel@yahoogroups.com"
>> <mailto:belajar-excel@yahoogroups.com>
>> <belajar-excel@yahoogroups.com>
>> <mailto:belajar-excel@yahoogroups.com>
>> *Dikirim:* Jumat, 4 Oktober 2013 14:33
>> *Judul:* Re: Bls: [belajar-excel] Need Help melakukan copy paste
>> (breakdown) sheet to sheet
>>
>> Saya sdh tes dan filenya masih disimpan.
>>
>> Coba kirim file yang ada "run time errornya" karena dengan
>> mengetahui/memperbaiki kesalahan tersebut kita dapat semakin
>> memahami dan menikmati macro.
>>
>> JIka anda mau email satu persatu (balasan email anda kepada Miss
>> Jan) kenapa ga langung disave sebagai workbook (pada Dir yang
>> sama) per nama PT ?
>>
>> Salam,
>> HK
>>
>> ----------------------------------------------------------
>> *From:* Ahmad Habibillah <abiel_1108@yahoo.com>
>> <mailto:abiel_1108@yahoo.com>
>> *To:* belajar-excel@yahoogroups.com
>> <mailto:belajar-excel@yahoogroups.com>
>> *Sent:* Friday, 4 October 2013, 14:02
>> *Subject:* Bls: [belajar-excel] Need Help melakukan copy paste
>> (breakdown) sheet to sheet
>>
>> Dear Bro Hendrik,
>>
>> kok nggak bisa ya.. "run time error"
>>
>> maaf newbe nih... hihihihiihi
>>
>> mohon bantuannya lagi ya bro...
>>
>>
>> many thanks,
>> cheers
>> Ahmad H
>>
>>
>>
>> ----------------------------------------------------------
>> *Dari:* hendrik karnadi <hendrikkarnadi@yahoo.com>
>> <mailto:hendrikkarnadi@yahoo.com>
>> *Kepada:* "belajar-excel@yahoogroups.com"
>> <mailto:belajar-excel@yahoogroups.com>
>> <belajar-excel@yahoogroups.com>
>> <mailto:belajar-excel@yahoogroups.com>
>> *Dikirim:* Jumat, 4 Oktober 2013 12:36
>> *Judul:* Re: [belajar-excel] Need Help melakukan copy paste
>> (breakdown) sheet to sheet
>>
>> Pak De, boleh pinjam codenya ya ?
>> Coba copas macro Pak De Premor di bawah ini pada Sheet VBA
>> Module1 (diambil dari kasus filtering sebelumnya),
>>
>> Sub Masukin()
>> Dim SrcData As Range, Rng As Range
>> Dim cKode As New Collection
>> Dim LRow As Long
>>
>> Application.ScreenUpdating = False
>> Set SrcData = Sheets("rekap
>> detail").Range("E2", Range("E2").End(xlDown))
>> On Error Resume Next
>> For Each Rng In SrcData
>> cKode.Add Trim(Rng), CStr(Rng)
>> Next
>> For LRow = 1 To cKode.Count
>> Set Rng = SrcData.CurrentRegion.Offset(1,
>> 0).Resize(SrcData.Rows.Count, 6)
>> SrcData.CurrentRegion.AutoFilter Field:=5,
>> Criteria1:=cKode.Item(LRow)
>> Rng.SpecialCells(xlCellTypeVisible).Copy
>> Sheets(cKode.Item(LRow)).Range("A2")
>> SrcData.CurrentRegion.AutoFilter
>> Next
>> Application.ScreenUpdating = True
>> End Sub
>>
>> Warna merah adalah bagian yang disesuaikan.
>>
>> Salam,
>> HK
>>
>>
>> ----------------------------------------------------------
>> *From:* Ahmad Habibillah <abiel_1108@yahoo.com>
>> <mailto:abiel_1108@yahoo.com>
>> *To:* belajar-excel@yahoogroups.com
>> <mailto:belajar-excel@yahoogroups.com>
>> *Sent:* Friday, 4 October 2013, 10:57
>> *Subject:* [belajar-excel] Need Help melakukan copy paste
>> (breakdown) sheet to sheet [1 Attachment]
>>
>> Selamat Pagi,
>>
>> mudah-mudah an semua anggota di belajar-excel ini selalu
>> mendapatkan keberkahan dalam hidup. amin
>>
>> dalam hal ini saya mau minta mohon bantuannya untuk permasalahan
>> yang saya alami,
>>
>> dikarenakan olah data ini dilakukan 2 hari sekali maka akan
>> sangat membantu jika dapat di lakukan otomasi by vb or macro.
>>
>> dalam 1 file excel terdapat sheet file detail dan beberapa sheet
>> breakdown nya.
>>
>> berikut saya lampirkan file yang dimaksud.
>>
>> atas perhatian dan bantuannya terima kasih
>>
>> cheers,
>> Ahmad H
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>
>
>
>
>
selisihnya kalau dirata-rata 0,2 detik disini :-\
Sub ExportPerPTBaru(
Dim SrcData As Range, Rng As Range, CopyRng As Range, cKode As New
Collection
Dim LRow As Long, Sh As Worksheet, Fld As String, NamaFile As
String, StrRng As String
Dim Timex As Double
Timex = Timer
Application.
Application.
Set SrcData = Sheets("
detail"
Fld = ThisWorkbook.
If Dir(Fld, vbDirectory) = "" Then MkDir Fld
Set CopyRng = SrcData.CurrentRegi
On Error Resume Next
For Each Rng In SrcData
StrRng = Rng.Value
cKode.Add Trim(StrRng)
If Err.Number <> 457 Then
SrcData.CurrentRegi
Worksheets.Add
Set Sh = ActiveSheet
Sh.Name = Left(StrRng, 31)
CopyRng.SpecialCell
Sh.Range("
Sh.Move
NamaFile = Fld & StrRng & ".xlsx"
ActiveWorkbook.
ActiveWorkbook.
SrcData.CurrentRegi
End If
Err.Clear
Next
MsgBox "Export selesai dalam waktu " & Timer - Timex & " detik" &
vbCrLf & "Target folder -> " & Fld, vbInformation
Application.
Application.
End Sub
Pada 04/10/2013 22:23, hendrik karnadi menulis:
> Nah, kalau sdh soal susun-menyusun begini, saya mungkin belum bisa
> ikut bermain ......
>
> Salam,
> HK
>
> ------------
> *From:* Mr. Kid <mr.nmkid@gmail.
> *To:* BeExcel <belajar-excel@
> *Sent:* Friday, 4 October 2013, 22:09
> *Subject:* Re: Bls: Bls: [belajar-excel] Need Help melakukan copy
> paste (breakdown) sheet to sheet
>
> PakD,
>
> script dengan loop add collection dibuat terpisah dengan proses susun
> output file itu dibandingkan dengan kalau loop add collection diisi
> sekalian dengan proses susun output file, akan cepat mana ya ? (sorry
> ndak sempet nyoba).
> mungkin bisa lebih cepat kalau dalam add collection ada proses susun
> output file deh.
>
> Wassalam,
> Kid.
>
>
>
>
>
> 2013/10/4 De Premor <de@premor.net <mailto:de@premor.net>>
>
> ikutan nimbrung ya mas HK
> Buat error yang sebelumnya bisa tanpa berpindah sheet dulu dengan
> cara begini
>
> Set SrcData = Sheets("
> detail"
>
> berikut kode buat ngefilter per pt, kemudian mengkopy ke sheet
> baru, lalu dipindah ke workbook baru, selanjutnya disimpen,
> setelah itu di close workbook barunya.
> /kalau perlu ditambahi kode buat ngirim email ke masing2 tujuan
> sekalian, jadi tinggal pencet tombol trus duduk manis atau
> "//*ngerjain *//*yang lain*//" hehehe/
>
> Sub ExportPerPT(
> Dim SrcData As Range, Rng As Range, cKode As New Collection
> Dim LRow As Long, Sh As Worksheet, Fld As String, NamaFile as
> String
>
> Application.
> Application.
>
> Set SrcData = Sheets("
> detail"
>
> On Error Resume Next 'Proses setelah ini akan menghasilkan
> error jika ada data duplikat, maka buat error handlernya
>
> For Each Rng In SrcData
> cKode.Add Trim(Rng), CStr(Rng) 'Buat List Unique Nama2 PT
> Next
>
> Fld = ThisWorkbook.
> nyimpen data export'an
> If Dir(Fld, vbDirectory) = "" Then MkDir Fld 'Jika belum ada
> foldernya, dibuat ajah
>
> Set Rng = SrcData.CurrentRegi
> 'Inget2 lokasi Data yang mau dicopy
>
>
> For LRow = 1 To cKode.Count
> SrcData.CurrentRegi
> Criteria1:=cKode.
> Worksheets.Add 'Buat Sheet Baru
> Set Sh = ActiveSheet 'Ingat2 Sheet barunya
> Sh.Name = Left(cKode.Item(
> baru menjadi nama PT (Max 31 Karakter)
> Rng.SpecialCells(
> Dari Rekap Detail ke Sheet Baru
> Sh.Range("
> Sh.Move 'Pindahkan Sheetbaru ke workbook baru
> NamaFile = Fld & ActiveSheet.
> ActiveWorkbook.
> barunya sesuai nama PT
> ActiveWorkbook.
> SrcData.CurrentRegi
> 'Disini bisa diisi kode buat nyisipin kode mengirimkan email
> kemasing2
> 'tujuan sesuai dengan file hasil export terakhir
> 'Ex:
> 'SendEmail "Email@gw.com"
> <mailto:Email@gw.com>,"Email@lu.net" <mailto:Email@lu.net>,"Bro,
> Ini Rekap PT Lu","
> 'Kalau memang mau langsung dikirim seperti ini, berarti
> perlu sebuah tabel lagi yang berisi alamat email dan nama PT :D
> Next
>
> MsgBox "Export selesai, Target folder -> " & Fld, vbInformation
>
> Application.
>
> Application.
> End Sub
>
>
> Contoh kode sederhana (*Jika email server tidak memerlukan
> authentikasi buat kirim emailnya*) seperti berikut :
>
> Function SendMail(ePengirim As String, eTujuan As String, eSubject
> As String, ByVal eBody As String, eLampiran As String)
> Set oEmail = CreateObject(
>
> With oEmail
> .From = ePengirim
> .To = eTujuan
> .Subject = eSubject
> .Textbody = eBody
> .AddAttachment eLampiran
>
> With .Configuration.
>
> .Item("http://schemas.
> <http://schemas.
>
> .Item("http://schemas.
> <http://schemas.
> "192.168.
>
> .Item("http://schemas.
> = 1
> .Update
> End With
>
> .Send
> End With
> Set oEmail = Nothing
> End Function
>
> On 04-10-2013 15:53, hendrik karnadi wrote:
>> Jangan putus asa dulu.
>> Coba copas lagi macro ini pada VBE Sheet (Module1).
>>
>> Sub Masukin()
>> Dim SrcData As Range, Rng As Range
>> Dim cKode As New Collection
>> Dim LRow As Long
>>
>> Application.
>> Sheets("
>> Set SrcData = Sheets("
>> Range("
>> On Error Resume Next
>> For Each Rng In SrcData
>> cKode.Add Trim(Rng), CStr(Rng)
>> Next
>> For LRow = 1 To cKode.Count
>> Set Rng = SrcData.CurrentRegi
>> 0).Resize(SrcData.
>> SrcData.CurrentRegi
>> Criteria1:=cKode.
>> Rng.SpecialCells(
>> Sheets(cKode.
>> SrcData.CurrentRegi
>> Next
>> Application.
>> End Sub
>>
>> Mengapa timbul run time error ?
>> Waktu menjalankan macro, anda tidak berada pada Sheet "rekap detail"
>>
>> Jika anda mau menjalankan macro tsb dari Sheet "rekap" (setelah
>> macronya dicopas di VBE Sheet) maka perlu ditambahkan instruksi
>> warna merah, artinya Sheet "rekap detail" harus diaktifkan dulu.
>>
>> Salam,
>> HK
>>
>>
>> ------------
>> *From:* Ahmad Habibillah <abiel_1108@yahoo.
>> <mailto:abiel_1108@yahoo.
>> *To:* belajar-excel@
>> <mailto:belajar-excel@
>> *Sent:* Friday, 4 October 2013, 14:54
>> *Subject:* Bls: Bls: [belajar-excel] Need Help melakukan copy
>> paste (breakdown) sheet to sheet [1 Attachment]
>>
>> Dear bro Hendrik,
>>
>> sekali lagi mohon bantuannya ya bro, mohon dimaklumi ye bro...
>> namanya newbe and juga pengen tau bisa gimana caranya.
>>
>> kalau itu bisa terealisasi efisiensi waktunya lumayan bro, kan
>> bisa buat ngerjain yang lain.. hehehe
>>
>> terlampir format data yang biasa digunakan.
>>
>>
>>
>> many thanks
>> Ahmad H
>>
>>
>>
>> ------------
>> *Dari:* hendrik karnadi <hendrikkarnadi@
>> <mailto:hendrikkarnadi@
>> *Kepada:* "belajar-excel@
>> <mailto:belajar-excel@
>> <belajar-excel@
>> <mailto:belajar-excel@
>> *Dikirim:* Jumat, 4 Oktober 2013 14:33
>> *Judul:* Re: Bls: [belajar-excel] Need Help melakukan copy paste
>> (breakdown) sheet to sheet
>>
>> Saya sdh tes dan filenya masih disimpan.
>>
>> Coba kirim file yang ada "run time errornya" karena dengan
>> mengetahui/memperba
>> memahami dan menikmati macro.
>>
>> JIka anda mau email satu persatu (balasan email anda kepada Miss
>> Jan) kenapa ga langung disave sebagai workbook (pada Dir yang
>> sama) per nama PT ?
>>
>> Salam,
>> HK
>>
>> ------------
>> *From:* Ahmad Habibillah <abiel_1108@yahoo.
>> <mailto:abiel_1108@yahoo.
>> *To:* belajar-excel@
>> <mailto:belajar-excel@
>> *Sent:* Friday, 4 October 2013, 14:02
>> *Subject:* Bls: [belajar-excel] Need Help melakukan copy paste
>> (breakdown) sheet to sheet
>>
>> Dear Bro Hendrik,
>>
>> kok nggak bisa ya.. "run time error"
>>
>> maaf newbe nih... hihihihiihi
>>
>> mohon bantuannya lagi ya bro...
>>
>>
>> many thanks,
>> cheers
>> Ahmad H
>>
>>
>>
>> ------------
>> *Dari:* hendrik karnadi <hendrikkarnadi@
>> <mailto:hendrikkarnadi@
>> *Kepada:* "belajar-excel@
>> <mailto:belajar-excel@
>> <belajar-excel@
>> <mailto:belajar-excel@
>> *Dikirim:* Jumat, 4 Oktober 2013 12:36
>> *Judul:* Re: [belajar-excel] Need Help melakukan copy paste
>> (breakdown) sheet to sheet
>>
>> Pak De, boleh pinjam codenya ya ?
>> Coba copas macro Pak De Premor di bawah ini pada Sheet VBA
>> Module1 (diambil dari kasus filtering sebelumnya),
>>
>> Sub Masukin()
>> Dim SrcData As Range, Rng As Range
>> Dim cKode As New Collection
>> Dim LRow As Long
>>
>> Application.
>> Set SrcData = Sheets("
>> detail"
>> On Error Resume Next
>> For Each Rng In SrcData
>> cKode.Add Trim(Rng), CStr(Rng)
>> Next
>> For LRow = 1 To cKode.Count
>> Set Rng = SrcData.CurrentRegi
>> 0).Resize(SrcData.
>> SrcData.CurrentRegi
>> Criteria1:=cKode.
>> Rng.SpecialCells(
>> Sheets(cKode.
>> SrcData.CurrentRegi
>> Next
>> Application.
>> End Sub
>>
>> Warna merah adalah bagian yang disesuaikan.
>>
>> Salam,
>> HK
>>
>>
>> ------------
>> *From:* Ahmad Habibillah <abiel_1108@yahoo.
>> <mailto:abiel_1108@yahoo.
>> *To:* belajar-excel@
>> <mailto:belajar-excel@
>> *Sent:* Friday, 4 October 2013, 10:57
>> *Subject:* [belajar-excel] Need Help melakukan copy paste
>> (breakdown) sheet to sheet [1 Attachment]
>>
>> Selamat Pagi,
>>
>> mudah-mudah an semua anggota di belajar-excel ini selalu
>> mendapatkan keberkahan dalam hidup. amin
>>
>> dalam hal ini saya mau minta mohon bantuannya untuk permasalahan
>> yang saya alami,
>>
>> dikarenakan olah data ini dilakukan 2 hari sekali maka akan
>> sangat membantu jika dapat di lakukan otomasi by vb or macro.
>>
>> dalam 1 file excel terdapat sheet file detail dan beberapa sheet
>> breakdown nya.
>>
>> berikut saya lampirkan file yang dimaksud.
>>
>> atas perhatian dan bantuannya terima kasih
>>
>> cheers,
>> Ahmad H
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>
>
>
>
>
Fri Oct 4, 2013 9:29 am (PDT) . Posted by:
"Mr. Kid" nmkid.family@ymail.com
thanks loh ya...
gimana kalo bagian loop jadi :
with err
.clear
For Each Rng In SrcData
StrRng = Rng.Value
cKode.Add Trim(StrRng), CStr(StrRng)
If .Number <> 0 Then
.clear
else
SrcData.CurrentRegion.AutoFilter Field:=5, Criteria1:=StrRng
Worksheets.Add
Set Sh = ActiveSheet
Sh.Name = Left(StrRng, 31)
CopyRng.SpecialCells(xlCellTypeVisible).Copy Sh.Range("A1")
Sh.Range("A1:F1").EntireColumn.AutoFit
Sh.Move
NamaFile = Fld & StrRng & ".xlsx"
ActiveWorkbook.SaveAs NamaFile
ActiveWorkbook.Close
SrcData.CurrentRegion.AutoFilter
End If
Next rng
end with
Coba kalo gini Pak D.
xixixixi.... mumpung ada yang bisa running test... gpp kan ya pakD...
Wassalam,
Kid.
2013/10/4 De Premor <de@premor.net>
> **
>
>
> Setelah dicoba2 tetep cepet yang lama ya, apa caraku yg kurang pas yak,
> selisihnya kalau dirata-rata 0,2 detik disini :-\
>
> Sub ExportPerPTBaru()
> Dim SrcData As Range, Rng As Range, CopyRng As Range, cKode As New
> Collection
> Dim LRow As Long, Sh As Worksheet, Fld As String, NamaFile As String,
> StrRng As String
> Dim Timex As Double
>
> Timex = Timer
>
> Application.ScreenUpdating = False
> Application.DisplayAlerts = False
>
> Set SrcData = Sheets("rekap detail").Range("E2", Sheets("rekap
> detail").Range("E2").End(xlDown))
>
> Fld = ThisWorkbook.Path & "\Buat Dikirin\"
> If Dir(Fld, vbDirectory) = "" Then MkDir Fld
>
> Set CopyRng = SrcData.CurrentRegion.Resize(SrcData.Rows.Count, 6)
>
> On Error Resume Next
> For Each Rng In SrcData
> StrRng = Rng.Value
> cKode.Add Trim(StrRng), CStr(StrRng)
> If Err.Number <> 457 Then
> SrcData.CurrentRegion.AutoFilter Field:=5, Criteria1:=StrRng
> Worksheets.Add
> Set Sh = ActiveSheet
> Sh.Name = Left(StrRng, 31)
> CopyRng.SpecialCells(xlCellTypeVisible).Copy Sh.Range("A1")
> Sh.Range("A1:F1").EntireColumn.AutoFit
> Sh.Move
> NamaFile = Fld & StrRng & ".xlsx"
> ActiveWorkbook.SaveAs NamaFile
> ActiveWorkbook.Close
> SrcData.CurrentRegion.AutoFilter
> End If
> Err.Clear
> Next
>
> MsgBox "Export selesai dalam waktu " & Timer - Timex & " detik" &
> vbCrLf & "Target folder -> " & Fld, vbInformation
>
> Application.DisplayAlerts = True
> Application.ScreenUpdating = True
> End Sub
>
> Pada 04/10/2013 22:23, hendrik karnadi menulis:
>
>
> Nah, kalau sdh soal susun-menyusun begini, saya mungkin belum bisa ikut
> bermain ......
>
> Salam,
> HK
>
> ------------------------------
> *From:* Mr. Kid <mr.nmkid@gmail.com> <mr.nmkid@gmail.com>
> *To:* BeExcel <belajar-excel@yahoogroups.com><belajar-excel@yahoogroups.com>
> *Sent:* Friday, 4 October 2013, 22:09
> *Subject:* Re: Bls: Bls: [belajar-excel] Need Help melakukan copy paste
> (breakdown) sheet to sheet
>
>
> PakD,
>
> script dengan loop add collection dibuat terpisah dengan proses susun
> output file itu dibandingkan dengan kalau loop add collection diisi
> sekalian dengan proses susun output file, akan cepat mana ya ? (sorry ndak
> sempet nyoba).
> mungkin bisa lebih cepat kalau dalam add collection ada proses susun
> output file deh.
>
> Wassalam,
> Kid.
>
>
>
>
>
> 2013/10/4 De Premor <de@premor.net>
>
>
> ikutan nimbrung ya mas HK
> Buat error yang sebelumnya bisa tanpa berpindah sheet dulu dengan cara
> begini
>
> Set SrcData = Sheets("rekap detail").Range("E2", Sheets("rekap detail").
> Range("E2").End(xlDown))
>
> berikut kode buat ngefilter per pt, kemudian mengkopy ke sheet baru, lalu
> dipindah ke workbook baru, selanjutnya disimpen, setelah itu di close
> workbook barunya.
> *kalau perlu ditambahi kode buat ngirim email ke masing2 tujuan sekalian,
> jadi tinggal pencet tombol trus duduk manis atau "**ngerjain **yang lain**"
> hehehe*
>
> Sub ExportPerPT()
> Dim SrcData As Range, Rng As Range, cKode As New Collection
> Dim LRow As Long, Sh As Worksheet, Fld As String, NamaFile as String
>
> Application.ScreenUpdating = False
> Application.DisplayAlerts = False
>
> Set SrcData = Sheets("rekap detail").Range("E2", Sheets("rekap
> detail").Range("E2").End(xlDown))
>
> On Error Resume Next 'Proses setelah ini akan menghasilkan error jika
> ada data duplikat, maka buat error handlernya
>
> For Each Rng In SrcData
> cKode.Add Trim(Rng),
> CStr(Rng) 'Buat List Unique
> Nama2 PT
> Next
>
> Fld = ThisWorkbook.Path & "\Buat
> Dikirim\" 'Lokasi Pulder buat nyimpen
> data export'an
> If Dir(Fld, vbDirectory) = "" Then MkDir
> Fld 'Jika belum ada foldernya, dibuat ajah
>
> Set Rng = SrcData.CurrentRegion.Resize(SrcData.Rows.Count,
> 6) 'Inget2 lokasi Data yang mau dicopy
>
>
> For LRow = 1 To cKode.Count
> SrcData.CurrentRegion.AutoFilter Field:=5,
> Criteria1:=cKode.Item(LRow) 'AutoFilter
>
> Worksheets.Add 'Buat
> Sheet Baru
> Set Sh =
> ActiveSheet 'Ingat2
> Sheet barunya
> Sh.Name = Left(cKode.Item(LRow),
> 31) 'Ganti Nama Sheet baru menjadi
> nama PT (Max 31 Karakter)
> Rng.SpecialCells(xlCellTypeVisible).Copy
> Sh.Range("A1") 'Copy Data Dari Rekap Detail ke Sheet Baru
>
> Sh.Range("A1:F1").EntireColumn.AutoFit 'Pas
> kan lebar kolom
>
> Sh.Move 'Pindahkan
> Sheetbaru ke workbook baru
> NamaFile = Fld & ActiveSheet.[E2] & ".xlsx"
> ActiveWorkbook.SaveAs NamaFile
> 'Simpen workbook barunya sesuai nama PT
>
> ActiveWorkbook.Close 'Kalau
> udah kesimpen, Tutup Aje
> SrcData.CurrentRegion.AutoFilter
> 'Buang fitur autopilternya
> 'Disini bisa diisi kode buat nyisipin kode mengirimkan email
> kemasing2
> 'tujuan sesuai dengan file hasil export terakhir
> 'Ex:
> 'SendEmail "Email@gw.com" <Email@gw.com>,"Email@lu.net"<Email@lu.net>,"Bro,
> Ini Rekap PT Lu","Liat Aja dilampiran", NamaFile
> 'Kalau memang mau langsung dikirim seperti ini, berarti perlu
> sebuah tabel lagi yang berisi alamat email dan nama PT :D
> Next
>
> MsgBox "Export selesai, Target folder -> " & Fld, vbInformation
>
> Application.DisplayAlerts = True
>
> Application.ScreenUpdating = True
> End Sub
>
>
> Contoh kode sederhana (*Jika email server tidak memerlukan authentikasi
> buat kirim emailnya*) seperti berikut :
>
> Function SendMail(ePengirim As String, eTujuan As String, eSubject As
> String, ByVal eBody As String, eLampiran As String)
> Set oEmail = CreateObject("CDO.Message")
>
> With oEmail
> .From = ePengirim
> .To = eTujuan
> .Subject = eSubject
> .Textbody = eBody
> .AddAttachment eLampiran
>
> With .Configuration.Fields
> .Item(
> "http://schemas.microsoft.com/cdo/configuration/sendusing"<http://schemas.microsoft.com/cdo/configuration/sendusing>)
> = 2
> .Item(
> "http://schemas.microsoft.com/cdo/configuration/smtpserver"<http://schemas.microsoft.com/cdo/configuration/smtpserver>)
> = "192.168.7.7"
> .Item(
> "http://schemas.microsoft.com/cdo/configuration/authenticate"<http://schemas.microsoft.com/cdo/configuration/authenticate>)
> = 1
> .Update
> End With
>
> .Send
> End With
> Set oEmail = Nothing
> End Function
>
> On 04-10-2013 15:53, hendrik karnadi wrote:
>
>
> Jangan putus asa dulu.
> Coba copas lagi macro ini pada VBE Sheet (Module1).
>
> Sub Masukin()
> Dim SrcData As Range, Rng As Range
> Dim cKode As New Collection
> Dim LRow As Long
>
> Application.ScreenUpdating = False
> Sheets("rekap detail").Activate
> Set SrcData = Sheets("rekap detail").Range("E2",
> Range("E2").End(xlDown))
>
> On Error Resume Next
> For Each Rng In SrcData
> cKode.Add Trim(Rng), CStr(Rng)
> Next
>
> For LRow = 1 To cKode.Count
> Set Rng = SrcData.CurrentRegion.Offset(1,
> 0).Resize(SrcData.Rows.Count, 6)
> SrcData.CurrentRegion.AutoFilter Field:=5,
> Criteria1:=cKode.Item(LRow)
> Rng.SpecialCells(xlCellTypeVisible).Copy
> Sheets(cKode.Item(LRow)).Range("A2")
> SrcData.CurrentRegion.AutoFilter
> Next
> Application.ScreenUpdating = True
> End Sub
>
> Mengapa timbul run time error ?
> Waktu menjalankan macro, anda tidak berada pada Sheet "rekap detail".
>
> Jika anda mau menjalankan macro tsb dari Sheet "rekap" (setelah macronya
> dicopas di VBE Sheet) maka perlu ditambahkan instruksi warna merah, artinya
> Sheet "rekap detail" harus diaktifkan dulu.
>
> Salam,
> HK
>
>
> ------------------------------
> *From:* Ahmad Habibillah <abiel_1108@yahoo.com> <abiel_1108@yahoo.com>
> *To:* belajar-excel@yahoogroups.com
> *Sent:* Friday, 4 October 2013, 14:54
> *Subject:* Bls: Bls: [belajar-excel] Need Help melakukan copy paste
> (breakdown) sheet to sheet [1 Attachment]
>
>
> Dear bro Hendrik,
>
> sekali lagi mohon bantuannya ya bro, mohon dimaklumi ye bro... namanya
> newbe and juga pengen tau bisa gimana caranya.
>
> kalau itu bisa terealisasi efisiensi waktunya lumayan bro, kan bisa buat
> ngerjain yang lain.. hehehe
>
> terlampir format data yang biasa digunakan.
>
>
>
> many thanks
> Ahmad H
>
>
>
> ------------------------------
> *Dari:* hendrik karnadi <hendrikkarnadi@yahoo.com><hendrikkarnadi@yahoo.com>
> *Kepada:* "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
> <belajar-excel@yahoogroups.com> <belajar-excel@yahoogroups.com>
> *Dikirim:* Jumat, 4 Oktober 2013 14:33
> *Judul:* Re: Bls: [belajar-excel] Need Help melakukan copy paste
> (breakdown) sheet to sheet
>
>
> Saya sdh tes dan filenya masih disimpan.
>
> Coba kirim file yang ada "run time errornya" karena dengan
> mengetahui/memperbaiki kesalahan tersebut kita dapat semakin memahami dan
> menikmati macro.
>
> JIka anda mau email satu persatu (balasan email anda kepada Miss Jan)
> kenapa ga langung disave sebagai workbook (pada Dir yang sama) per nama PT ?
>
> Salam,
> HK
>
> ------------------------------
> *From:* Ahmad Habibillah <abiel_1108@yahoo.com> <abiel_1108@yahoo.com>
> *To:* belajar-excel@yahoogroups.com
> *Sent:* Friday, 4 October 2013, 14:02
> *Subject:* Bls: [belajar-excel] Need Help melakukan copy paste
> (breakdown) sheet to sheet
>
>
> Dear Bro Hendrik,
>
> kok nggak bisa ya.. "run time error"
>
> maaf newbe nih... hihihihiihi
>
> mohon bantuannya lagi ya bro...
>
>
> many thanks,
> cheers
> Ahmad H
>
>
>
> ------------------------------
> *Dari:* hendrik karnadi <hendrikkarnadi@yahoo.com><hendrikkarnadi@yahoo.com>
> *Kepada:* "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
> <belajar-excel@yahoogroups.com> <belajar-excel@yahoogroups.com>
> *Dikirim:* Jumat, 4 Oktober 2013 12:36
> *Judul:* Re: [belajar-excel] Need Help melakukan copy paste (breakdown)
> sheet to sheet
>
>
> Pak De, boleh pinjam codenya ya ?
> Coba copas macro Pak De Premor di bawah ini pada Sheet VBA Module1
> (diambil dari kasus filtering sebelumnya),
>
> Sub Masukin()
> Dim SrcData As Range, Rng As Range
> Dim cKode As New Collection
> Dim LRow As Long
>
> Application.ScreenUpdating = False
> Set SrcData = Sheets("rekap detail").Range("E2", Range("E2
> ").End(xlDown))
>
> On Error Resume Next
> For Each Rng In SrcData
> cKode.Add Trim(Rng), CStr(Rng)
> Next
>
> For LRow = 1 To cKode.Count
> Set Rng = SrcData.CurrentRegion.Offset(1, 0).Resize(SrcData.Rows.Count,
> 6)
> SrcData.CurrentRegion.AutoFilter Field:=5,
> Criteria1:=cKode.Item(LRow)
> Rng.SpecialCells(xlCellTypeVisible).Copy
> Sheets(cKode.Item(LRow)).Range("A2")
> SrcData.CurrentRegion.AutoFilter
> Next
> Application.ScreenUpdating = True
> End Sub
>
> Warna merah adalah bagian yang disesuaikan.
>
> Salam,
> HK
>
>
> ------------------------------
> *From:* Ahmad Habibillah <abiel_1108@yahoo.com> <abiel_1108@yahoo.com>
> *To:* belajar-excel@yahoogroups.com
> *Sent:* Friday, 4 October 2013, 10:57
> *Subject:* [belajar-excel] Need Help melakukan copy paste (breakdown)
> sheet to sheet [1 Attachment]
>
>
> Selamat Pagi,
>
> mudah-mudah an semua anggota di belajar-excel ini selalu mendapatkan
> keberkahan dalam hidup. amin
>
> dalam hal ini saya mau minta mohon bantuannya untuk permasalahan yang
> saya alami,
>
> dikarenakan olah data ini dilakukan 2 hari sekali maka akan sangat
> membantu jika dapat di lakukan otomasi by vb or macro.
>
> dalam 1 file excel terdapat sheet file detail dan beberapa sheet
> breakdown nya.
>
> berikut saya lampirkan file yang dimaksud.
>
> atas perhatian dan bantuannya terima kasih
>
> cheers,
> Ahmad H
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
gimana kalo bagian loop jadi :
with err
.clear
For Each Rng In SrcData
StrRng = Rng.Value
cKode.Add Trim(StrRng)
If .Number <> 0 Then
.clear
else
SrcData.CurrentRegi
Worksheets.Add
Set Sh = ActiveSheet
Sh.Name = Left(StrRng, 31)
CopyRng.SpecialCell
Sh.Range("
Sh.Move
NamaFile = Fld & StrRng & ".xlsx"
ActiveWorkbook.
ActiveWorkbook.
SrcData.CurrentRegi
End If
Next rng
end with
Coba kalo gini Pak D.
xixixixi.... mumpung ada yang bisa running test... gpp kan ya pakD...
Wassalam,
Kid.
2013/10/4 De Premor <de@premor.net>
> **
>
>
> Setelah dicoba2 tetep cepet yang lama ya, apa caraku yg kurang pas yak,
> selisihnya kalau dirata-rata 0,2 detik disini :-\
>
> Sub ExportPerPTBaru(
> Dim SrcData As Range, Rng As Range, CopyRng As Range, cKode As New
> Collection
> Dim LRow As Long, Sh As Worksheet, Fld As String, NamaFile As String,
> StrRng As String
> Dim Timex As Double
>
> Timex = Timer
>
> Application.
> Application.
>
> Set SrcData = Sheets("
> detail"
>
> Fld = ThisWorkbook.
> If Dir(Fld, vbDirectory) = "" Then MkDir Fld
>
> Set CopyRng = SrcData.CurrentRegi
>
> On Error Resume Next
> For Each Rng In SrcData
> StrRng = Rng.Value
> cKode.Add Trim(StrRng)
> If Err.Number <> 457 Then
> SrcData.CurrentRegi
> Worksheets.Add
> Set Sh = ActiveSheet
> Sh.Name = Left(StrRng, 31)
> CopyRng.SpecialCell
> Sh.Range("
> Sh.Move
> NamaFile = Fld & StrRng & ".xlsx"
> ActiveWorkbook.
> ActiveWorkbook.
> SrcData.CurrentRegi
> End If
> Err.Clear
> Next
>
> MsgBox "Export selesai dalam waktu " & Timer - Timex & " detik" &
> vbCrLf & "Target folder -> " & Fld, vbInformation
>
> Application.
> Application.
> End Sub
>
> Pada 04/10/2013 22:23, hendrik karnadi menulis:
>
>
> Nah, kalau sdh soal susun-menyusun begini, saya mungkin belum bisa ikut
> bermain ......
>
> Salam,
> HK
>
> ------------
> *From:* Mr. Kid <mr.nmkid@gmail.
> *To:* BeExcel <belajar-excel@
> *Sent:* Friday, 4 October 2013, 22:09
> *Subject:* Re: Bls: Bls: [belajar-excel] Need Help melakukan copy paste
> (breakdown) sheet to sheet
>
>
> PakD,
>
> script dengan loop add collection dibuat terpisah dengan proses susun
> output file itu dibandingkan dengan kalau loop add collection diisi
> sekalian dengan proses susun output file, akan cepat mana ya ? (sorry ndak
> sempet nyoba).
> mungkin bisa lebih cepat kalau dalam add collection ada proses susun
> output file deh.
>
> Wassalam,
> Kid.
>
>
>
>
>
> 2013/10/4 De Premor <de@premor.net>
>
>
> ikutan nimbrung ya mas HK
> Buat error yang sebelumnya bisa tanpa berpindah sheet dulu dengan cara
> begini
>
> Set SrcData = Sheets("
> Range("
>
> berikut kode buat ngefilter per pt, kemudian mengkopy ke sheet baru, lalu
> dipindah ke workbook baru, selanjutnya disimpen, setelah itu di close
> workbook barunya.
> *kalau perlu ditambahi kode buat ngirim email ke masing2 tujuan sekalian,
> jadi tinggal pencet tombol trus duduk manis atau "**ngerjain **yang lain**"
> hehehe*
>
> Sub ExportPerPT(
> Dim SrcData As Range, Rng As Range, cKode As New Collection
> Dim LRow As Long, Sh As Worksheet, Fld As String, NamaFile as String
>
> Application.
> Application.
>
> Set SrcData = Sheets("
> detail"
>
> On Error Resume Next 'Proses setelah ini akan menghasilkan error jika
> ada data duplikat, maka buat error handlernya
>
> For Each Rng In SrcData
> cKode.Add Trim(Rng),
> CStr(Rng) 'Buat List Unique
> Nama2 PT
> Next
>
> Fld = ThisWorkbook.
> Dikirim\
> data export'an
> If Dir(Fld, vbDirectory) = "" Then MkDir
> Fld 'Jika belum ada foldernya, dibuat ajah
>
> Set Rng = SrcData.CurrentRegi
> 6) 'Inget2 lokasi Data yang mau dicopy
>
>
> For LRow = 1 To cKode.Count
> SrcData.CurrentRegi
> Criteria1:=cKode.
>
> Worksheets.Add 'Buat
> Sheet Baru
> Set Sh =
> ActiveSheet 'Ingat2
> Sheet barunya
> Sh.Name = Left(cKode.Item(
> 31) 'Ganti Nama Sheet baru menjadi
> nama PT (Max 31 Karakter)
> Rng.SpecialCells(
> Sh.Range("
>
> Sh.Range("
> kan lebar kolom
>
> Sh.Move 'Pindahkan
> Sheetbaru ke workbook baru
> NamaFile = Fld & ActiveSheet.
> ActiveWorkbook.
> 'Simpen workbook barunya sesuai nama PT
>
> ActiveWorkbook.
> udah kesimpen, Tutup Aje
> SrcData.CurrentRegi
> 'Buang fitur autopilternya
> 'Disini bisa diisi kode buat nyisipin kode mengirimkan email
> kemasing2
> 'tujuan sesuai dengan file hasil export terakhir
> 'Ex:
> 'SendEmail "Email@gw.com" <Email@gw.com>,"Email@lu.net"<Email@lu.net>,"Bro,
> Ini Rekap PT Lu","
> 'Kalau memang mau langsung dikirim seperti ini, berarti perlu
> sebuah tabel lagi yang berisi alamat email dan nama PT :D
> Next
>
> MsgBox "Export selesai, Target folder -> " & Fld, vbInformation
>
> Application.
>
> Application.
> End Sub
>
>
> Contoh kode sederhana (*Jika email server tidak memerlukan authentikasi
> buat kirim emailnya*) seperti berikut :
>
> Function SendMail(ePengirim As String, eTujuan As String, eSubject As
> String, ByVal eBody As String, eLampiran As String)
> Set oEmail = CreateObject(
>
> With oEmail
> .From = ePengirim
> .To = eTujuan
> .Subject = eSubject
> .Textbody = eBody
> .AddAttachment eLampiran
>
> With .Configuration.
> .Item(
> "http://schemas.
> = 2
> .Item(
> "http://schemas.
> = "192.168.
> .Item(
> "http://schemas.
> = 1
> .Update
> End With
>
> .Send
> End With
> Set oEmail = Nothing
> End Function
>
> On 04-10-2013 15:53, hendrik karnadi wrote:
>
>
> Jangan putus asa dulu.
> Coba copas lagi macro ini pada VBE Sheet (Module1).
>
> Sub Masukin()
> Dim SrcData As Range, Rng As Range
> Dim cKode As New Collection
> Dim LRow As Long
>
> Application.
> Sheets("
> Set SrcData = Sheets("
> Range("
>
> On Error Resume Next
> For Each Rng In SrcData
> cKode.Add Trim(Rng), CStr(Rng)
> Next
>
> For LRow = 1 To cKode.Count
> Set Rng = SrcData.CurrentRegi
> 0).Resize(SrcData.
> SrcData.CurrentRegi
> Criteria1:=cKode.
> Rng.SpecialCells(
> Sheets(cKode.
> SrcData.CurrentRegi
> Next
> Application.
> End Sub
>
> Mengapa timbul run time error ?
> Waktu menjalankan macro, anda tidak berada pada Sheet "rekap detail"
>
> Jika anda mau menjalankan macro tsb dari Sheet "rekap" (setelah macronya
> dicopas di VBE Sheet) maka perlu ditambahkan instruksi warna merah, artinya
> Sheet "rekap detail" harus diaktifkan dulu.
>
> Salam,
> HK
>
>
> ------------
> *From:* Ahmad Habibillah <abiel_1108@yahoo.
> *To:* belajar-excel@
> *Sent:* Friday, 4 October 2013, 14:54
> *Subject:* Bls: Bls: [belajar-excel] Need Help melakukan copy paste
> (breakdown) sheet to sheet [1 Attachment]
>
>
> Dear bro Hendrik,
>
> sekali lagi mohon bantuannya ya bro, mohon dimaklumi ye bro... namanya
> newbe and juga pengen tau bisa gimana caranya.
>
> kalau itu bisa terealisasi efisiensi waktunya lumayan bro, kan bisa buat
> ngerjain yang lain.. hehehe
>
> terlampir format data yang biasa digunakan.
>
>
>
> many thanks
> Ahmad H
>
>
>
> ------------
> *Dari:* hendrik karnadi <hendrikkarnadi@
> *Kepada:* "belajar-excel@
> <belajar-excel@
> *Dikirim:* Jumat, 4 Oktober 2013 14:33
> *Judul:* Re: Bls: [belajar-excel] Need Help melakukan copy paste
> (breakdown) sheet to sheet
>
>
> Saya sdh tes dan filenya masih disimpan.
>
> Coba kirim file yang ada "run time errornya" karena dengan
> mengetahui/memperba
> menikmati macro.
>
> JIka anda mau email satu persatu (balasan email anda kepada Miss Jan)
> kenapa ga langung disave sebagai workbook (pada Dir yang sama) per nama PT ?
>
> Salam,
> HK
>
> ------------
> *From:* Ahmad Habibillah <abiel_1108@yahoo.
> *To:* belajar-excel@
> *Sent:* Friday, 4 October 2013, 14:02
> *Subject:* Bls: [belajar-excel] Need Help melakukan copy paste
> (breakdown) sheet to sheet
>
>
> Dear Bro Hendrik,
>
> kok nggak bisa ya.. "run time error"
>
> maaf newbe nih... hihihihiihi
>
> mohon bantuannya lagi ya bro...
>
>
> many thanks,
> cheers
> Ahmad H
>
>
>
> ------------
> *Dari:* hendrik karnadi <hendrikkarnadi@
> *Kepada:* "belajar-excel@
> <belajar-excel@
> *Dikirim:* Jumat, 4 Oktober 2013 12:36
> *Judul:* Re: [belajar-excel] Need Help melakukan copy paste (breakdown)
> sheet to sheet
>
>
> Pak De, boleh pinjam codenya ya ?
> Coba copas macro Pak De Premor di bawah ini pada Sheet VBA Module1
> (diambil dari kasus filtering sebelumnya),
>
> Sub Masukin()
> Dim SrcData As Range, Rng As Range
> Dim cKode As New Collection
> Dim LRow As Long
>
> Application.
> Set SrcData = Sheets("
> ").End(
>
> On Error Resume Next
> For Each Rng In SrcData
> cKode.Add Trim(Rng), CStr(Rng)
> Next
>
> For LRow = 1 To cKode.Count
> Set Rng = SrcData.CurrentRegi
> 6)
> SrcData.CurrentRegi
> Criteria1:=cKode.
> Rng.SpecialCells(
> Sheets(cKode.
> SrcData.CurrentRegi
> Next
> Application.
> End Sub
>
> Warna merah adalah bagian yang disesuaikan.
>
> Salam,
> HK
>
>
> ------------
> *From:* Ahmad Habibillah <abiel_1108@yahoo.
> *To:* belajar-excel@
> *Sent:* Friday, 4 October 2013, 10:57
> *Subject:* [belajar-excel] Need Help melakukan copy paste (breakdown)
> sheet to sheet [1 Attachment]
>
>
> Selamat Pagi,
>
> mudah-mudah an semua anggota di belajar-excel ini selalu mendapatkan
> keberkahan dalam hidup. amin
>
> dalam hal ini saya mau minta mohon bantuannya untuk permasalahan yang
> saya alami,
>
> dikarenakan olah data ini dilakukan 2 hari sekali maka akan sangat
> membantu jika dapat di lakukan otomasi by vb or macro.
>
> dalam 1 file excel terdapat sheet file detail dan beberapa sheet
> breakdown nya.
>
> berikut saya lampirkan file yang dimaksud.
>
> atas perhatian dan bantuannya terima kasih
>
> cheers,
> Ahmad H
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
Fri Oct 4, 2013 10:00 am (PDT) . Posted by:
"De Premor" de.premor
hehehe
kayaknya sama saja nih, hasil pastinya nga bisa didapat dengan pasti
karena faktor penentunya banyak (ada proses akses IO)
Kalau menurut itung2an kode, setiap kali loop sicode baru akan melakukan
pengecekan error number (1), kalau ketemu error akan ngeclear error (2)
dari potongan kode perbandingan yang *"keliahatannya adil*" ini kalau
ditempat saya masih cepet yg bawah (Sub Diluar) :D
Sub Didalam()
Dim mCol As New Collection, Timex As Double
Dim lRow As Long, nRow As Long, Cnt As Long
Timex = Timer
On Error Resume Next
For lRow = 1 To 100000
For nRow = 1 To 10
mCol.Add nRow, CStr(lRow)
If Err.Number <> 0 Then
Err.Clear
Else
Cnt = Cnt + 1
End If
Next
Next
MsgBox Cnt & vbCrLf & Timer - Timex & " detik"
End Sub
Sub Diluar()
Dim mCol As New Collection, Timex As Double
Dim lRow As Long, nRow As Long, Cnt As Long
Timex = Timer
On Error Resume Next
For lRow = 1 To 100000
For nRow = 1 To 10
mCol.Add nRow, CStr(lRow)
Next
Next
For lRow = 1 To mCol.Count
Cnt = Cnt + 1
Next
MsgBox Cnt & vbCrLf & Timer - Timex & " detik"
End Sub
On 04-10-2013 23:29, Mr. Kid wrote:
> thanks loh ya...
>
> gimana kalo bagian loop jadi :
> with err
> .clear
> For Each Rng In SrcData
> StrRng = Rng.Value
> cKode.Add Trim(StrRng), CStr(StrRng)
> If .Number <> 0 Then
> .clear
> else
> SrcData.CurrentRegion.AutoFilter Field:=5, Criteria1:=StrRng
> Worksheets.Add
> Set Sh = ActiveSheet
> Sh.Name = Left(StrRng, 31)
> CopyRng.SpecialCells(xlCellTypeVisible).Copy Sh.Range("A1")
> Sh.Range("A1:F1").EntireColumn.AutoFit
> Sh.Move
> NamaFile = Fld & StrRng & ".xlsx"
> ActiveWorkbook.SaveAs NamaFile
> ActiveWorkbook.Close
> SrcData.CurrentRegion.AutoFilter
> End If
>
> Next rng
> end with
>
> Coba kalo gini Pak D.
>
> xixixixi.... mumpung ada yang bisa running test... gpp kan ya pakD...
>
>
> Wassalam,
> Kid.
>
>
>
> 2013/10/4 De Premor <de@premor.net <mailto:de@premor.net>>
>
> Setelah dicoba2 tetep cepet yang lama ya, apa caraku yg kurang pas
> yak, selisihnya kalau dirata-rata 0,2 detik disini :-\
>
> Sub ExportPerPTBaru()
> Dim SrcData As Range, Rng As Range, CopyRng As Range, cKode As
> New Collection
> Dim LRow As Long, Sh As Worksheet, Fld As String, NamaFile As
> String, StrRng As String
> Dim Timex As Double
>
> Timex = Timer
>
> Application.ScreenUpdating = False
> Application.DisplayAlerts = False
>
> Set SrcData = Sheets("rekap detail").Range("E2", Sheets("rekap
> detail").Range("E2").End(xlDown))
>
> Fld = ThisWorkbook.Path & "\Buat Dikirin\"
> If Dir(Fld, vbDirectory) = "" Then MkDir Fld
>
> Set CopyRng = SrcData.CurrentRegion.Resize(SrcData.Rows.Count, 6)
>
> On Error Resume Next
> For Each Rng In SrcData
> StrRng = Rng.Value
> cKode.Add Trim(StrRng), CStr(StrRng)
> If Err.Number <> 457 Then
> SrcData.CurrentRegion.AutoFilter Field:=5, Criteria1:=StrRng
> Worksheets.Add
> Set Sh = ActiveSheet
> Sh.Name = Left(StrRng, 31)
> CopyRng.SpecialCells(xlCellTypeVisible).Copy Sh.Range("A1")
> Sh.Range("A1:F1").EntireColumn.AutoFit
> Sh.Move
> NamaFile = Fld & StrRng & ".xlsx"
> ActiveWorkbook.SaveAs NamaFile
> ActiveWorkbook.Close
> SrcData.CurrentRegion.AutoFilter
> End If
> Err.Clear
> Next
>
> MsgBox "Export selesai dalam waktu " & Timer - Timex & "
> detik" & vbCrLf & "Target folder -> " & Fld, vbInformation
>
> Application.DisplayAlerts = True
> Application.ScreenUpdating = True
> End Sub
>
> Pada 04/10/2013 22:23, hendrik karnadi menulis:
>> Nah, kalau sdh soal susun-menyusun begini, saya mungkin belum
>> bisa ikut bermain ......
>>
>> Salam,
>> HK
>>
>> ----------------------------------------------------------
>> *From:* Mr. Kid <mr.nmkid@gmail.com> <mailto:mr.nmkid@gmail.com>
>> *To:* BeExcel <belajar-excel@yahoogroups.com>
>> <mailto:belajar-excel@yahoogroups.com>
>> *Sent:* Friday, 4 October 2013, 22:09
>> *Subject:* Re: Bls: Bls: [belajar-excel] Need Help melakukan copy
>> paste (breakdown) sheet to sheet
>>
>> PakD,
>>
>> script dengan loop add collection dibuat terpisah dengan proses
>> susun output file itu dibandingkan dengan kalau loop add
>> collection diisi sekalian dengan proses susun output file, akan
>> cepat mana ya ? (sorry ndak sempet nyoba).
>> mungkin bisa lebih cepat kalau dalam add collection ada proses
>> susun output file deh.
>>
>> Wassalam,
>> Kid.
>>
>>
>>
>>
>>
>> 2013/10/4 De Premor <de@premor.net <mailto:de@premor.net>>
>>
>> ikutan nimbrung ya mas HK
>> Buat error yang sebelumnya bisa tanpa berpindah sheet dulu
>> dengan cara begini
>>
>> Set SrcData = Sheets("rekap detail").Range("E2",
>> Sheets("rekap detail").Range("E2").End(xlDown))
>>
>> berikut kode buat ngefilter per pt, kemudian mengkopy ke
>> sheet baru, lalu dipindah ke workbook baru, selanjutnya
>> disimpen, setelah itu di close workbook barunya.
>> /kalau perlu ditambahi kode buat ngirim email ke masing2
>> tujuan sekalian, jadi tinggal pencet tombol trus duduk manis
>> atau "//*ngerjain *//*yang lain*//" hehehe/
>>
>> Sub ExportPerPT()
>> Dim SrcData As Range, Rng As Range, cKode As New Collection
>> Dim LRow As Long, Sh As Worksheet, Fld As String,
>> NamaFile as String
>>
>> Application.ScreenUpdating = False
>> Application.DisplayAlerts = False
>>
>> Set SrcData = Sheets("rekap detail").Range("E2",
>> Sheets("rekap detail").Range("E2").End(xlDown))
>>
>> On Error Resume Next 'Proses setelah ini akan
>> menghasilkan error jika ada data duplikat, maka buat error
>> handlernya
>>
>> For Each Rng In SrcData
>> cKode.Add Trim(Rng), CStr(Rng) 'Buat List Unique Nama2 PT
>> Next
>>
>> Fld = ThisWorkbook.Path & "\Buat Dikirim\" 'Lokasi Pulder
>> buat nyimpen data export'an
>> If Dir(Fld, vbDirectory) = "" Then MkDir Fld 'Jika belum
>> ada foldernya, dibuat ajah
>>
>> Set Rng =
>> SrcData.CurrentRegion.Resize(SrcData.Rows.Count, 6) 'Inget2
>> lokasi Data yang mau dicopy
>>
>>
>> For LRow = 1 To cKode.Count
>> SrcData.CurrentRegion.AutoFilter Field:=5,
>> Criteria1:=cKode.Item(LRow) 'AutoFilter
>> Worksheets.Add 'Buat Sheet Baru
>> Set Sh = ActiveSheet 'Ingat2 Sheet barunya
>> Sh.Name = Left(cKode.Item(LRow), 31) 'Ganti Nama Sheet baru
>> menjadi nama PT (Max 31 Karakter)
>> Rng.SpecialCells(xlCellTypeVisible).Copy Sh.Range("A1") 'Copy
>> Data Dari Rekap Detail ke Sheet Baru
>> Sh.Range("A1:F1").EntireColumn.AutoFit 'Pas kan lebar kolom
>> Sh.Move 'Pindahkan Sheetbaru ke workbook baru
>> NamaFile = Fld & ActiveSheet.[E2] & ".xlsx"
>> ActiveWorkbook.SaveAs NamaFile 'Simpen workbook barunya
>> sesuai nama PT
>> ActiveWorkbook.Close 'Kalau udah kesimpen, Tutup Aje
>> SrcData.CurrentRegion.AutoFilter 'Buang fitur autopilternya
>> 'Disini bisa diisi kode buat nyisipin kode mengirimkan
>> email kemasing2
>> 'tujuan sesuai dengan file hasil export terakhir
>> 'Ex:
>> 'SendEmail "Email@gw.com"
>> <mailto:Email@gw.com>,"Email@lu.net"
>> <mailto:Email@lu.net>,"Bro, Ini Rekap PT Lu","Liat Aja
>> dilampiran", NamaFile
>> 'Kalau memang mau langsung dikirim seperti ini,
>> berarti perlu sebuah tabel lagi yang berisi alamat email dan
>> nama PT :D
>> Next
>>
>> MsgBox "Export selesai, Target folder -> " & Fld,
>> vbInformation
>>
>> Application.DisplayAlerts = True
>>
>> Application.ScreenUpdating = True
>> End Sub
>>
>>
>> Contoh kode sederhana (*Jika email server tidak memerlukan
>> authentikasi buat kirim emailnya*) seperti berikut :
>>
>> Function SendMail(ePengirim As String, eTujuan As String,
>> eSubject As String, ByVal eBody As String, eLampiran As String)
>> Set oEmail = CreateObject("CDO.Message")
>>
>> With oEmail
>> .From = ePengirim
>> .To = eTujuan
>> .Subject = eSubject
>> .Textbody = eBody
>> .AddAttachment eLampiran
>>
>> With .Configuration.Fields
>> .Item("http://schemas.microsoft.com/cdo/configuration/sendusing"
>> <http://schemas.microsoft.com/cdo/configuration/sendusing>) = 2
>> .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver"
>> <http://schemas.microsoft.com/cdo/configuration/smtpserver>)
>> = "192.168.7.7"
>> .Item("http://schemas.microsoft.com/cdo/configuration/authenticate"
>> <http://schemas.microsoft.com/cdo/configuration/authenticate>) =
>> 1
>> .Update
>> End With
>>
>> .Send
>> End With
>> Set oEmail = Nothing
>> End Function
>>
>> On 04-10-2013 15:53, hendrik karnadi wrote:
>>> Jangan putus asa dulu.
>>> Coba copas lagi macro ini pada VBE Sheet (Module1).
>>>
>>> Sub Masukin()
>>> Dim SrcData As Range, Rng As Range
>>> Dim cKode As New Collection
>>> Dim LRow As Long
>>>
>>> Application.ScreenUpdating = False
>>> Sheets("rekap detail").Activate
>>> Set SrcData = Sheets("rekap detail").Range("E2",
>>> Range("E2").End(xlDown))
>>> On Error Resume Next
>>> For Each Rng In SrcData
>>> cKode.Add Trim(Rng), CStr(Rng)
>>> Next
>>> For LRow = 1 To cKode.Count
>>> Set Rng = SrcData.CurrentRegion.Offset(1,
>>> 0).Resize(SrcData.Rows.Count, 6)
>>> SrcData.CurrentRegion.AutoFilter Field:=5,
>>> Criteria1:=cKode.Item(LRow)
>>> Rng.SpecialCells(xlCellTypeVisible).Copy
>>> Sheets(cKode.Item(LRow)).Range("A2")
>>> SrcData.CurrentRegion.AutoFilter
>>> Next
>>> Application.ScreenUpdating = True
>>> End Sub
>>>
>>> Mengapa timbul run time error ?
>>> Waktu menjalankan macro, anda tidak berada pada Sheet "rekap
>>> detail".
>>>
>>> Jika anda mau menjalankan macro tsb dari Sheet "rekap"
>>> (setelah macronya dicopas di VBE Sheet) maka perlu
>>> ditambahkan instruksi warna merah, artinya Sheet "rekap
>>> detail" harus diaktifkan dulu.
>>>
>>> Salam,
>>> HK
>>>
>>>
>>> ----------------------------------------------------------
>>> *From:* Ahmad Habibillah <abiel_1108@yahoo.com>
>>> <mailto:abiel_1108@yahoo.com>
>>> *To:* belajar-excel@yahoogroups.com
>>> <mailto:belajar-excel@yahoogroups.com>
>>> *Sent:* Friday, 4 October 2013, 14:54
>>> *Subject:* Bls: Bls: [belajar-excel] Need Help melakukan
>>> copy paste (breakdown) sheet to sheet [1 Attachment]
>>>
>>> Dear bro Hendrik,
>>>
>>> sekali lagi mohon bantuannya ya bro, mohon dimaklumi ye
>>> bro... namanya newbe and juga pengen tau bisa gimana caranya.
>>>
>>> kalau itu bisa terealisasi efisiensi waktunya lumayan bro,
>>> kan bisa buat ngerjain yang lain.. hehehe
>>>
>>> terlampir format data yang biasa digunakan.
>>>
>>>
>>>
>>> many thanks
>>> Ahmad H
>>>
>>>
>>>
>>> ----------------------------------------------------------
>>> *Dari:* hendrik karnadi <hendrikkarnadi@yahoo.com>
>>> <mailto:hendrikkarnadi@yahoo.com>
>>> *Kepada:* "belajar-excel@yahoogroups.com"
>>> <mailto:belajar-excel@yahoogroups.com>
>>> <belajar-excel@yahoogroups.com>
>>> <mailto:belajar-excel@yahoogroups.com>
>>> *Dikirim:* Jumat, 4 Oktober 2013 14:33
>>> *Judul:* Re: Bls: [belajar-excel] Need Help melakukan copy
>>> paste (breakdown) sheet to sheet
>>>
>>> Saya sdh tes dan filenya masih disimpan.
>>>
>>> Coba kirim file yang ada "run time errornya" karena dengan
>>> mengetahui/memperbaiki kesalahan tersebut kita dapat semakin
>>> memahami dan menikmati macro.
>>>
>>> JIka anda mau email satu persatu (balasan email anda kepada
>>> Miss Jan) kenapa ga langung disave sebagai workbook (pada
>>> Dir yang sama) per nama PT ?
>>>
>>> Salam,
>>> HK
>>>
>>> ----------------------------------------------------------
>>> *From:* Ahmad Habibillah <abiel_1108@yahoo.com>
>>> <mailto:abiel_1108@yahoo.com>
>>> *To:* belajar-excel@yahoogroups.com
>>> <mailto:belajar-excel@yahoogroups.com>
>>> *Sent:* Friday, 4 October 2013, 14:02
>>> *Subject:* Bls: [belajar-excel] Need Help melakukan copy
>>> paste (breakdown) sheet to sheet
>>>
>>> Dear Bro Hendrik,
>>>
>>> kok nggak bisa ya.. "run time error"
>>>
>>> maaf newbe nih... hihihihiihi
>>>
>>> mohon bantuannya lagi ya bro...
>>>
>>>
>>> many thanks,
>>> cheers
>>> Ahmad H
>>>
>>>
>>>
>>> ----------------------------------------------------------
>>> *Dari:* hendrik karnadi <hendrikkarnadi@yahoo.com>
>>> <mailto:hendrikkarnadi@yahoo.com>
>>> *Kepada:* "belajar-excel@yahoogroups.com"
>>> <mailto:belajar-excel@yahoogroups.com>
>>> <belajar-excel@yahoogroups.com>
>>> <mailto:belajar-excel@yahoogroups.com>
>>> *Dikirim:* Jumat, 4 Oktober 2013 12:36
>>> *Judul:* Re: [belajar-excel] Need Help melakukan copy paste
>>> (breakdown) sheet to sheet
>>>
>>> Pak De, boleh pinjam codenya ya ?
>>> Coba copas macro Pak De Premor di bawah ini pada Sheet VBA
>>> Module1 (diambil dari kasus filtering sebelumnya),
>>>
>>> Sub Masukin()
>>> Dim SrcData As Range, Rng As Range
>>> Dim cKode As New Collection
>>> Dim LRow As Long
>>>
>>> Application.ScreenUpdating = False
>>> Set SrcData = Sheets("rekap
>>> detail").Range("E2", Range("E2").End(xlDown))
>>> On Error Resume Next
>>> For Each Rng In SrcData
>>> cKode.Add Trim(Rng), CStr(Rng)
>>> Next
>>> For LRow = 1 To cKode.Count
>>> Set Rng = SrcData.CurrentRegion.Offset(1,
>>> 0).Resize(SrcData.Rows.Count, 6)
>>> SrcData.CurrentRegion.AutoFilter Field:=5,
>>> Criteria1:=cKode.Item(LRow)
>>> Rng.SpecialCells(xlCellTypeVisible).Copy
>>> Sheets(cKode.Item(LRow)).Range("A2")
>>> SrcData.CurrentRegion.AutoFilter
>>> Next
>>> Application.ScreenUpdating = True
>>> End Sub
>>>
>>> Warna merah adalah bagian yang disesuaikan.
>>>
>>> Salam,
>>> HK
>>>
>>>
>>> ----------------------------------------------------------
>>> *From:* Ahmad Habibillah <abiel_1108@yahoo.com>
>>> <mailto:abiel_1108@yahoo.com>
>>> *To:* belajar-excel@yahoogroups.com
>>> <mailto:belajar-excel@yahoogroups.com>
>>> *Sent:* Friday, 4 October 2013, 10:57
>>> *Subject:* [belajar-excel] Need Help melakukan copy paste
>>> (breakdown) sheet to sheet [1 Attachment]
>>>
>>> Selamat Pagi,
>>>
>>> mudah-mudah an semua anggota di belajar-excel ini selalu
>>> mendapatkan keberkahan dalam hidup. amin
>>>
>>> dalam hal ini saya mau minta mohon bantuannya untuk
>>> permasalahan yang saya alami,
>>>
>>> dikarenakan olah data ini dilakukan 2 hari sekali maka akan
>>> sangat membantu jika dapat di lakukan otomasi by vb or macro.
>>>
>>> dalam 1 file excel terdapat sheet file detail dan beberapa
>>> sheet breakdown nya.
>>>
>>> berikut saya lampirkan file yang dimaksud.
>>>
>>> atas perhatian dan bantuannya terima kasih
>>>
>>> cheers,
>>> Ahmad H
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>>
>>
>
>
>
kayaknya sama saja nih, hasil pastinya nga bisa didapat dengan pasti
karena faktor penentunya banyak (ada proses akses IO)
Kalau menurut itung2an kode, setiap kali loop sicode baru akan melakukan
pengecekan error number (1), kalau ketemu error akan ngeclear error (2)
dari potongan kode perbandingan yang *"keliahatanny
ditempat saya masih cepet yg bawah (Sub Diluar) :D
Sub Didalam()
Dim mCol As New Collection, Timex As Double
Dim lRow As Long, nRow As Long, Cnt As Long
Timex = Timer
On Error Resume Next
For lRow = 1 To 100000
For nRow = 1 To 10
mCol.Add nRow, CStr(lRow)
If Err.Number <> 0 Then
Err.Clear
Else
Cnt = Cnt + 1
End If
Next
Next
MsgBox Cnt & vbCrLf & Timer - Timex & " detik"
End Sub
Sub Diluar()
Dim mCol As New Collection, Timex As Double
Dim lRow As Long, nRow As Long, Cnt As Long
Timex = Timer
On Error Resume Next
For lRow = 1 To 100000
For nRow = 1 To 10
mCol.Add nRow, CStr(lRow)
Next
Next
For lRow = 1 To mCol.Count
Cnt = Cnt + 1
Next
MsgBox Cnt & vbCrLf & Timer - Timex & " detik"
End Sub
On 04-10-2013 23:29, Mr. Kid wrote:
> thanks loh ya...
>
> gimana kalo bagian loop jadi :
> with err
> .clear
> For Each Rng In SrcData
> StrRng = Rng.Value
> cKode.Add Trim(StrRng)
> If .Number <> 0 Then
> .clear
> else
> SrcData.CurrentRegi
> Worksheets.Add
> Set Sh = ActiveSheet
> Sh.Name = Left(StrRng, 31)
> CopyRng.SpecialCell
> Sh.Range("
> Sh.Move
> NamaFile = Fld & StrRng & ".xlsx"
> ActiveWorkbook.
> ActiveWorkbook.
> SrcData.CurrentRegi
> End If
>
> Next rng
> end with
>
> Coba kalo gini Pak D.
>
> xixixixi.... mumpung ada yang bisa running test... gpp kan ya pakD...
>
>
> Wassalam,
> Kid.
>
>
>
> 2013/10/4 De Premor <de@premor.net <mailto:de@premor.net>>
>
> Setelah dicoba2 tetep cepet yang lama ya, apa caraku yg kurang pas
> yak, selisihnya kalau dirata-rata 0,2 detik disini :-\
>
> Sub ExportPerPTBaru(
> Dim SrcData As Range, Rng As Range, CopyRng As Range, cKode As
> New Collection
> Dim LRow As Long, Sh As Worksheet, Fld As String, NamaFile As
> String, StrRng As String
> Dim Timex As Double
>
> Timex = Timer
>
> Application.
> Application.
>
> Set SrcData = Sheets("
> detail"
>
> Fld = ThisWorkbook.
> If Dir(Fld, vbDirectory) = "" Then MkDir Fld
>
> Set CopyRng = SrcData.CurrentRegi
>
> On Error Resume Next
> For Each Rng In SrcData
> StrRng = Rng.Value
> cKode.Add Trim(StrRng)
> If Err.Number <> 457 Then
> SrcData.CurrentRegi
> Worksheets.Add
> Set Sh = ActiveSheet
> Sh.Name = Left(StrRng, 31)
> CopyRng.SpecialCell
> Sh.Range("
> Sh.Move
> NamaFile = Fld & StrRng & ".xlsx"
> ActiveWorkbook.
> ActiveWorkbook.
> SrcData.CurrentRegi
> End If
> Err.Clear
> Next
>
> MsgBox "Export selesai dalam waktu " & Timer - Timex & "
> detik" & vbCrLf & "Target folder -> " & Fld, vbInformation
>
> Application.
> Application.
> End Sub
>
> Pada 04/10/2013 22:23, hendrik karnadi menulis:
>> Nah, kalau sdh soal susun-menyusun begini, saya mungkin belum
>> bisa ikut bermain ......
>>
>> Salam,
>> HK
>>
>> ------------
>> *From:* Mr. Kid <mr.nmkid@gmail.
>> *To:* BeExcel <belajar-excel@
>> <mailto:belajar-excel@
>> *Sent:* Friday, 4 October 2013, 22:09
>> *Subject:* Re: Bls: Bls: [belajar-excel] Need Help melakukan copy
>> paste (breakdown) sheet to sheet
>>
>> PakD,
>>
>> script dengan loop add collection dibuat terpisah dengan proses
>> susun output file itu dibandingkan dengan kalau loop add
>> collection diisi sekalian dengan proses susun output file, akan
>> cepat mana ya ? (sorry ndak sempet nyoba).
>> mungkin bisa lebih cepat kalau dalam add collection ada proses
>> susun output file deh.
>>
>> Wassalam,
>> Kid.
>>
>>
>>
>>
>>
>> 2013/10/4 De Premor <de@premor.net <mailto:de@premor.net>>
>>
>> ikutan nimbrung ya mas HK
>> Buat error yang sebelumnya bisa tanpa berpindah sheet dulu
>> dengan cara begini
>>
>> Set SrcData = Sheets("
>> Sheets("
>>
>> berikut kode buat ngefilter per pt, kemudian mengkopy ke
>> sheet baru, lalu dipindah ke workbook baru, selanjutnya
>> disimpen, setelah itu di close workbook barunya.
>> /kalau perlu ditambahi kode buat ngirim email ke masing2
>> tujuan sekalian, jadi tinggal pencet tombol trus duduk manis
>> atau "//*ngerjain *//*yang lain*//" hehehe/
>>
>> Sub ExportPerPT(
>> Dim SrcData As Range, Rng As Range, cKode As New Collection
>> Dim LRow As Long, Sh As Worksheet, Fld As String,
>> NamaFile as String
>>
>> Application.
>> Application.
>>
>> Set SrcData = Sheets("
>> Sheets("
>>
>> On Error Resume Next 'Proses setelah ini akan
>> menghasilkan error jika ada data duplikat, maka buat error
>> handlernya
>>
>> For Each Rng In SrcData
>> cKode.Add Trim(Rng), CStr(Rng) 'Buat List Unique Nama2 PT
>> Next
>>
>> Fld = ThisWorkbook.
>> buat nyimpen data export'an
>> If Dir(Fld, vbDirectory) = "" Then MkDir Fld 'Jika belum
>> ada foldernya, dibuat ajah
>>
>> Set Rng =
>> SrcData.CurrentRegi
>> lokasi Data yang mau dicopy
>>
>>
>> For LRow = 1 To cKode.Count
>> SrcData.CurrentRegi
>> Criteria1:=cKode.
>> Worksheets.Add 'Buat Sheet Baru
>> Set Sh = ActiveSheet 'Ingat2 Sheet barunya
>> Sh.Name = Left(cKode.Item(
>> menjadi nama PT (Max 31 Karakter)
>> Rng.SpecialCells(
>> Data Dari Rekap Detail ke Sheet Baru
>> Sh.Range("
>> Sh.Move 'Pindahkan Sheetbaru ke workbook baru
>> NamaFile = Fld & ActiveSheet.
>> ActiveWorkbook.
>> sesuai nama PT
>> ActiveWorkbook.
>> SrcData.CurrentRegi
>> 'Disini bisa diisi kode buat nyisipin kode mengirimkan
>> email kemasing2
>> 'tujuan sesuai dengan file hasil export terakhir
>> 'Ex:
>> 'SendEmail "Email@gw.com"
>> <mailto:Email@gw.com>,"Email@lu.net"
>> <mailto:Email@lu.net>,"Bro, Ini Rekap PT Lu","
>> dilampiran"
>> 'Kalau memang mau langsung dikirim seperti ini,
>> berarti perlu sebuah tabel lagi yang berisi alamat email dan
>> nama PT :D
>> Next
>>
>> MsgBox "Export selesai, Target folder -> " & Fld,
>> vbInformation
>>
>> Application.
>>
>> Application.
>> End Sub
>>
>>
>> Contoh kode sederhana (*Jika email server tidak memerlukan
>> authentikasi buat kirim emailnya*) seperti berikut :
>>
>> Function SendMail(ePengirim As String, eTujuan As String,
>> eSubject As String, ByVal eBody As String, eLampiran As String)
>> Set oEmail = CreateObject(
>>
>> With oEmail
>> .From = ePengirim
>> .To = eTujuan
>> .Subject = eSubject
>> .Textbody = eBody
>> .AddAttachment eLampiran
>>
>> With .Configuration.
>> .Item("http://schemas.
>> <http://schemas.
>> .Item("http://schemas.
>> <http://schemas.
>> = "192.168.
>> .Item("http://schemas.
>> <http://schemas.
>> 1
>> .Update
>> End With
>>
>> .Send
>> End With
>> Set oEmail = Nothing
>> End Function
>>
>> On 04-10-2013 15:53, hendrik karnadi wrote:
>>> Jangan putus asa dulu.
>>> Coba copas lagi macro ini pada VBE Sheet (Module1).
>>>
>>> Sub Masukin()
>>> Dim SrcData As Range, Rng As Range
>>> Dim cKode As New Collection
>>> Dim LRow As Long
>>>
>>> Application.
>>> Sheets("
>>> Set SrcData = Sheets("
>>> Range("
>>> On Error Resume Next
>>> For Each Rng In SrcData
>>> cKode.Add Trim(Rng), CStr(Rng)
>>> Next
>>> For LRow = 1 To cKode.Count
>>> Set Rng = SrcData.CurrentRegi
>>> 0).Resize(SrcData.
>>> SrcData.CurrentRegi
>>> Criteria1:=cKode.
>>> Rng.SpecialCells(
>>> Sheets(cKode.
>>> SrcData.CurrentRegi
>>> Next
>>> Application.
>>> End Sub
>>>
>>> Mengapa timbul run time error ?
>>> Waktu menjalankan macro, anda tidak berada pada Sheet "rekap
>>> detail"
>>>
>>> Jika anda mau menjalankan macro tsb dari Sheet "rekap"
>>> (setelah macronya dicopas di VBE Sheet) maka perlu
>>> ditambahkan instruksi warna merah, artinya Sheet "rekap
>>> detail" harus diaktifkan dulu.
>>>
>>> Salam,
>>> HK
>>>
>>>
>>> ------------
>>> *From:* Ahmad Habibillah <abiel_1108@yahoo.
>>> <mailto:abiel_1108@yahoo.
>>> *To:* belajar-excel@
>>> <mailto:belajar-excel@
>>> *Sent:* Friday, 4 October 2013, 14:54
>>> *Subject:* Bls: Bls: [belajar-excel] Need Help melakukan
>>> copy paste (breakdown) sheet to sheet [1 Attachment]
>>>
>>> Dear bro Hendrik,
>>>
>>> sekali lagi mohon bantuannya ya bro, mohon dimaklumi ye
>>> bro... namanya newbe and juga pengen tau bisa gimana caranya.
>>>
>>> kalau itu bisa terealisasi efisiensi waktunya lumayan bro,
>>> kan bisa buat ngerjain yang lain.. hehehe
>>>
>>> terlampir format data yang biasa digunakan.
>>>
>>>
>>>
>>> many thanks
>>> Ahmad H
>>>
>>>
>>>
>>> ------------
>>> *Dari:* hendrik karnadi <hendrikkarnadi@
>>> <mailto:hendrikkarnadi@
>>> *Kepada:* "belajar-excel@
>>> <mailto:belajar-excel@
>>> <belajar-excel@
>>> <mailto:belajar-excel@
>>> *Dikirim:* Jumat, 4 Oktober 2013 14:33
>>> *Judul:* Re: Bls: [belajar-excel] Need Help melakukan copy
>>> paste (breakdown) sheet to sheet
>>>
>>> Saya sdh tes dan filenya masih disimpan.
>>>
>>> Coba kirim file yang ada "run time errornya" karena dengan
>>> mengetahui/memperba
>>> memahami dan menikmati macro.
>>>
>>> JIka anda mau email satu persatu (balasan email anda kepada
>>> Miss Jan) kenapa ga langung disave sebagai workbook (pada
>>> Dir yang sama) per nama PT ?
>>>
>>> Salam,
>>> HK
>>>
>>> ------------
>>> *From:* Ahmad Habibillah <abiel_1108@yahoo.
>>> <mailto:abiel_1108@yahoo.
>>> *To:* belajar-excel@
>>> <mailto:belajar-excel@
>>> *Sent:* Friday, 4 October 2013, 14:02
>>> *Subject:* Bls: [belajar-excel] Need Help melakukan copy
>>> paste (breakdown) sheet to sheet
>>>
>>> Dear Bro Hendrik,
>>>
>>> kok nggak bisa ya.. "run time error"
>>>
>>> maaf newbe nih... hihihihiihi
>>>
>>> mohon bantuannya lagi ya bro...
>>>
>>>
>>> many thanks,
>>> cheers
>>> Ahmad H
>>>
>>>
>>>
>>> ------------
>>> *Dari:* hendrik karnadi <hendrikkarnadi@
>>> <mailto:hendrikkarnadi@
>>> *Kepada:* "belajar-excel@
>>> <mailto:belajar-excel@
>>> <belajar-excel@
>>> <mailto:belajar-excel@
>>> *Dikirim:* Jumat, 4 Oktober 2013 12:36
>>> *Judul:* Re: [belajar-excel] Need Help melakukan copy paste
>>> (breakdown) sheet to sheet
>>>
>>> Pak De, boleh pinjam codenya ya ?
>>> Coba copas macro Pak De Premor di bawah ini pada Sheet VBA
>>> Module1 (diambil dari kasus filtering sebelumnya),
>>>
>>> Sub Masukin()
>>> Dim SrcData As Range, Rng As Range
>>> Dim cKode As New Collection
>>> Dim LRow As Long
>>>
>>> Application.
>>> Set SrcData = Sheets("
>>> detail"
>>> On Error Resume Next
>>> For Each Rng In SrcData
>>> cKode.Add Trim(Rng), CStr(Rng)
>>> Next
>>> For LRow = 1 To cKode.Count
>>> Set Rng = SrcData.CurrentRegi
>>> 0).Resize(SrcData.
>>> SrcData.CurrentRegi
>>> Criteria1:=cKode.
>>> Rng.SpecialCells(
>>> Sheets(cKode.
>>> SrcData.CurrentRegi
>>> Next
>>> Application.
>>> End Sub
>>>
>>> Warna merah adalah bagian yang disesuaikan.
>>>
>>> Salam,
>>> HK
>>>
>>>
>>> ------------
>>> *From:* Ahmad Habibillah <abiel_1108@yahoo.
>>> <mailto:abiel_1108@yahoo.
>>> *To:* belajar-excel@
>>> <mailto:belajar-excel@
>>> *Sent:* Friday, 4 October 2013, 10:57
>>> *Subject:* [belajar-excel] Need Help melakukan copy paste
>>> (breakdown) sheet to sheet [1 Attachment]
>>>
>>> Selamat Pagi,
>>>
>>> mudah-mudah an semua anggota di belajar-excel ini selalu
>>> mendapatkan keberkahan dalam hidup. amin
>>>
>>> dalam hal ini saya mau minta mohon bantuannya untuk
>>> permasalahan yang saya alami,
>>>
>>> dikarenakan olah data ini dilakukan 2 hari sekali maka akan
>>> sangat membantu jika dapat di lakukan otomasi by vb or macro.
>>>
>>> dalam 1 file excel terdapat sheet file detail dan beberapa
>>> sheet breakdown nya.
>>>
>>> berikut saya lampirkan file yang dimaksud.
>>>
>>> atas perhatian dan bantuannya terima kasih
>>>
>>> cheers,
>>> Ahmad H
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>>
>>
>
>
>
Fri Oct 4, 2013 10:07 am (PDT) . Posted by:
"Mr. Kid" nmkid.family@ymail.com
Kalo gitu for each rng nya diganti for lVar=1 to srcdata.count aja
gimana ?
2013/10/4 De Premor <de@premor.net>
> **
>
>
> hehehe
> kayaknya sama saja nih, hasil pastinya nga bisa didapat dengan pasti
> karena faktor penentunya banyak (ada proses akses IO)
> Kalau menurut itung2an kode, setiap kali loop sicode baru akan melakukan
> pengecekan error number (1), kalau ketemu error akan ngeclear error (2)
>
> dari potongan kode perbandingan yang *"keliahatannya adil*" ini kalau
> ditempat saya masih cepet yg bawah (Sub Diluar) :D
>
> Sub Didalam()
> Dim mCol As New Collection, Timex As Double
> Dim lRow As Long, nRow As Long, Cnt As Long
>
> Timex = Timer
> On Error Resume Next
> For lRow = 1 To 100000
> For nRow = 1 To 10
> mCol.Add nRow, CStr(lRow)
> If Err.Number <> 0 Then
> Err.Clear
> Else
> Cnt = Cnt + 1
> End If
> Next
> Next
> MsgBox Cnt & vbCrLf & Timer - Timex & " detik"
> End Sub
>
> Sub Diluar()
> Dim mCol As New Collection, Timex As Double
> Dim lRow As Long, nRow As Long, Cnt As Long
>
> Timex = Timer
> On Error Resume Next
> For lRow = 1 To 100000
> For nRow = 1 To 10
> mCol.Add nRow, CStr(lRow)
> Next
> Next
>
> For lRow = 1 To mCol.Count
> Cnt = Cnt + 1
> Next
> MsgBox Cnt & vbCrLf & Timer - Timex & " detik"
> End Sub
>
>
> On 04-10-2013 23:29, Mr. Kid wrote:
>
>
> thanks loh ya...
>
> gimana kalo bagian loop jadi :
> with err
> .clear
> For Each Rng In SrcData
> StrRng = Rng.Value
> cKode.Add Trim(StrRng), CStr(StrRng)
> If .Number <> 0 Then
> .clear
> else
> SrcData.CurrentRegion.AutoFilter Field:=5, Criteria1:=StrRng
> Worksheets.Add
> Set Sh = ActiveSheet
> Sh.Name = Left(StrRng, 31)
> CopyRng.SpecialCells(xlCellTypeVisible).Copy Sh.Range("A1")
> Sh.Range("A1:F1").EntireColumn.AutoFit
> Sh.Move
> NamaFile = Fld & StrRng & ".xlsx"
> ActiveWorkbook.SaveAs NamaFile
> ActiveWorkbook.Close
> SrcData.CurrentRegion.AutoFilter
> End If
>
> Next rng
> end with
>
> Coba kalo gini Pak D.
>
> xixixixi.... mumpung ada yang bisa running test... gpp kan ya pakD...
>
>
> Wassalam,
> Kid.
>
>
>
> 2013/10/4 De Premor <de@premor.net>
>
>>
>>
>> Setelah dicoba2 tetep cepet yang lama ya, apa caraku yg kurang pas yak,
>> selisihnya kalau dirata-rata 0,2 detik disini :-\
>>
>> Sub ExportPerPTBaru()
>> Dim SrcData As Range, Rng As Range, CopyRng As Range, cKode As New
>> Collection
>> Dim LRow As Long, Sh As Worksheet, Fld As String, NamaFile As String,
>> StrRng As String
>> Dim Timex As Double
>>
>> Timex = Timer
>>
>> Application.ScreenUpdating = False
>> Application.DisplayAlerts = False
>>
>> Set SrcData = Sheets("rekap detail").Range("E2", Sheets("rekap
>> detail").Range("E2").End(xlDown))
>>
>> Fld = ThisWorkbook.Path & "\Buat Dikirin\"
>> If Dir(Fld, vbDirectory) = "" Then MkDir Fld
>>
>> Set CopyRng = SrcData.CurrentRegion.Resize(SrcData.Rows.Count, 6)
>>
>> On Error Resume Next
>> For Each Rng In SrcData
>> StrRng = Rng.Value
>> cKode.Add Trim(StrRng), CStr(StrRng)
>> If Err.Number <> 457 Then
>> SrcData.CurrentRegion.AutoFilter Field:=5, Criteria1:=StrRng
>> Worksheets.Add
>> Set Sh = ActiveSheet
>> Sh.Name = Left(StrRng, 31)
>> CopyRng.SpecialCells(xlCellTypeVisible).Copy Sh.Range("A1")
>> Sh.Range("A1:F1").EntireColumn.AutoFit
>> Sh.Move
>> NamaFile = Fld & StrRng & ".xlsx"
>> ActiveWorkbook.SaveAs NamaFile
>> ActiveWorkbook.Close
>> SrcData.CurrentRegion.AutoFilter
>> End If
>> Err.Clear
>> Next
>>
>> MsgBox "Export selesai dalam waktu " & Timer - Timex & " detik" &
>> vbCrLf & "Target folder -> " & Fld, vbInformation
>>
>> Application.DisplayAlerts = True
>> Application.ScreenUpdating = True
>> End Sub
>>
>> Pada 04/10/2013 22:23, hendrik karnadi menulis:
>>
>>
>> Nah, kalau sdh soal susun-menyusun begini, saya mungkin belum bisa ikut
>> bermain ......
>>
>> Salam,
>> HK
>>
>> ------------------------------
>> *From:* Mr. Kid <mr.nmkid@gmail.com> <mr.nmkid@gmail.com>
>> *To:* BeExcel <belajar-excel@yahoogroups.com><belajar-excel@yahoogroups.com>
>> *Sent:* Friday, 4 October 2013, 22:09
>> *Subject:* Re: Bls: Bls: [belajar-excel] Need Help melakukan copy paste
>> (breakdown) sheet to sheet
>>
>>
>> PakD,
>>
>> script dengan loop add collection dibuat terpisah dengan proses susun
>> output file itu dibandingkan dengan kalau loop add collection diisi
>> sekalian dengan proses susun output file, akan cepat mana ya ? (sorry ndak
>> sempet nyoba).
>> mungkin bisa lebih cepat kalau dalam add collection ada proses susun
>> output file deh.
>>
>> Wassalam,
>> Kid.
>>
>>
>>
>>
>>
>> 2013/10/4 De Premor <de@premor.net>
>>
>>
>> ikutan nimbrung ya mas HK
>> Buat error yang sebelumnya bisa tanpa berpindah sheet dulu dengan cara
>> begini
>>
>> Set SrcData = Sheets("rekap detail").Range("E2", Sheets("rekap detail").
>> Range("E2").End(xlDown))
>>
>> berikut kode buat ngefilter per pt, kemudian mengkopy ke sheet baru, lalu
>> dipindah ke workbook baru, selanjutnya disimpen, setelah itu di close
>> workbook barunya.
>> *kalau perlu ditambahi kode buat ngirim email ke masing2 tujuan
>> sekalian, jadi tinggal pencet tombol trus duduk manis atau "**ngerjain **yang
>> lain**" hehehe*
>>
>> Sub ExportPerPT()
>> Dim SrcData As Range, Rng As Range, cKode As New Collection
>> Dim LRow As Long, Sh As Worksheet, Fld As String, NamaFile as String
>>
>> Application.ScreenUpdating = False
>> Application.DisplayAlerts = False
>>
>> Set SrcData = Sheets("rekap detail").Range("E2", Sheets("rekap
>> detail").Range("E2").End(xlDown))
>>
>> On Error Resume Next 'Proses setelah ini akan menghasilkan error
>> jika ada data duplikat, maka buat error handlernya
>>
>> For Each Rng In SrcData
>> cKode.Add Trim(Rng),
>> CStr(Rng) 'Buat List Unique
>> Nama2 PT
>> Next
>>
>> Fld = ThisWorkbook.Path & "\Buat
>> Dikirim\" 'Lokasi Pulder buat nyimpen
>> data export'an
>> If Dir(Fld, vbDirectory) = "" Then MkDir
>> Fld 'Jika belum ada foldernya, dibuat ajah
>>
>> Set Rng = SrcData.CurrentRegion.Resize(SrcData.Rows.Count,
>> 6) 'Inget2 lokasi Data yang mau dicopy
>>
>>
>> For LRow = 1 To cKode.Count
>> SrcData.CurrentRegion.AutoFilter Field:=5,
>> Criteria1:=cKode.Item(LRow) 'AutoFilter
>>
>> Worksheets.Add 'Buat
>> Sheet Baru
>> Set Sh =
>> ActiveSheet 'Ingat2
>> Sheet barunya
>> Sh.Name = Left(cKode.Item(LRow),
>> 31) 'Ganti Nama Sheet baru menjadi
>> nama PT (Max 31 Karakter)
>> Rng.SpecialCells(xlCellTypeVisible).Copy
>> Sh.Range("A1") 'Copy Data Dari Rekap Detail ke Sheet Baru
>>
>> Sh.Range("A1:F1").EntireColumn.AutoFit 'Pas
>> kan lebar kolom
>>
>> Sh.Move 'Pindahkan
>> Sheetbaru ke workbook baru
>> NamaFile = Fld & ActiveSheet.[E2] & ".xlsx"
>> ActiveWorkbook.SaveAs NamaFile
>> 'Simpen workbook barunya sesuai nama PT
>>
>> ActiveWorkbook.Close 'Kalau
>> udah kesimpen, Tutup Aje
>> SrcData.CurrentRegion.AutoFilter
>> 'Buang fitur autopilternya
>> 'Disini bisa diisi kode buat nyisipin kode mengirimkan email
>> kemasing2
>> 'tujuan sesuai dengan file hasil export terakhir
>> 'Ex:
>> 'SendEmail "Email@gw.com" <Email@gw.com>,"Email@lu.net"<Email@lu.net>,"Bro,
>> Ini Rekap PT Lu","Liat Aja dilampiran", NamaFile
>> 'Kalau memang mau langsung dikirim seperti ini, berarti perlu
>> sebuah tabel lagi yang berisi alamat email dan nama PT :D
>> Next
>>
>> MsgBox "Export selesai, Target folder -> " & Fld, vbInformation
>>
>> Application.DisplayAlerts = True
>>
>> Application.ScreenUpdating = True
>> End Sub
>>
>>
>> Contoh kode sederhana (*Jika email server tidak memerlukan authentikasi
>> buat kirim emailnya*) seperti berikut :
>>
>> Function SendMail(ePengirim As String, eTujuan As String, eSubject As
>> String, ByVal eBody As String, eLampiran As String)
>> Set oEmail = CreateObject("CDO.Message")
>>
>> With oEmail
>> .From = ePengirim
>> .To = eTujuan
>> .Subject = eSubject
>> .Textbody = eBody
>> .AddAttachment eLampiran
>>
>> With .Configuration.Fields
>> .Item(
>> "http://schemas.microsoft.com/cdo/configuration/sendusing"<http://schemas.microsoft.com/cdo/configuration/sendusing>)
>> = 2
>> .Item(
>> "http://schemas.microsoft.com/cdo/configuration/smtpserver"<http://schemas.microsoft.com/cdo/configuration/smtpserver>)
>> = "192.168.7.7"
>> .Item(
>> "http://schemas.microsoft.com/cdo/configuration/authenticate"<http://schemas.microsoft.com/cdo/configuration/authenticate>)
>> = 1
>> .Update
>> End With
>>
>> .Send
>> End With
>> Set oEmail = Nothing
>> End Function
>>
>> On 04-10-2013 15:53, hendrik karnadi wrote:
>>
>>
>> Jangan putus asa dulu.
>> Coba copas lagi macro ini pada VBE Sheet (Module1).
>>
>> Sub Masukin()
>> Dim SrcData As Range, Rng As Range
>> Dim cKode As New Collection
>> Dim LRow As Long
>>
>> Application.ScreenUpdating = False
>> Sheets("rekap detail").Activate
>> Set SrcData = Sheets("rekap detail").Range("E2",
>> Range("E2").End(xlDown))
>>
>> On Error Resume Next
>> For Each Rng In SrcData
>> cKode.Add Trim(Rng), CStr(Rng)
>> Next
>>
>> For LRow = 1 To cKode.Count
>> Set Rng = SrcData.CurrentRegion.Offset(1,
>> 0).Resize(SrcData.Rows.Count, 6)
>> SrcData.CurrentRegion.AutoFilter Field:=5,
>> Criteria1:=cKode.Item(LRow)
>> Rng.SpecialCells(xlCellTypeVisible).Copy
>> Sheets(cKode.Item(LRow)).Range("A2")
>> SrcData.CurrentRegion.AutoFilter
>> Next
>> Application.ScreenUpdating = True
>> End Sub
>>
>> Mengapa timbul run time error ?
>> Waktu menjalankan macro, anda tidak berada pada Sheet "rekap detail".
>>
>> Jika anda mau menjalankan macro tsb dari Sheet "rekap" (setelah
>> macronya dicopas di VBE Sheet) maka perlu ditambahkan instruksi warna
>> merah, artinya Sheet "rekap detail" harus diaktifkan dulu.
>>
>> Salam,
>> HK
>>
>>
>> ------------------------------
>> *From:* Ahmad Habibillah <abiel_1108@yahoo.com> <abiel_1108@yahoo.com>
>> *To:* belajar-excel@yahoogroups.com
>> *Sent:* Friday, 4 October 2013, 14:54
>> *Subject:* Bls: Bls: [belajar-excel] Need Help melakukan copy paste
>> (breakdown) sheet to sheet [1 Attachment]
>>
>>
>> Dear bro Hendrik,
>>
>> sekali lagi mohon bantuannya ya bro, mohon dimaklumi ye bro... namanya
>> newbe and juga pengen tau bisa gimana caranya.
>>
>> kalau itu bisa terealisasi efisiensi waktunya lumayan bro, kan bisa
>> buat ngerjain yang lain.. hehehe
>>
>> terlampir format data yang biasa digunakan.
>>
>>
>>
>> many thanks
>> Ahmad H
>>
>>
>>
>> ------------------------------
>> *Dari:* hendrik karnadi <hendrikkarnadi@yahoo.com><hendrikkarnadi@yahoo.com>
>> *Kepada:* "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
>> <belajar-excel@yahoogroups.com> <belajar-excel@yahoogroups.com>
>> *Dikirim:* Jumat, 4 Oktober 2013 14:33
>> *Judul:* Re: Bls: [belajar-excel] Need Help melakukan copy paste
>> (breakdown) sheet to sheet
>>
>>
>> Saya sdh tes dan filenya masih disimpan.
>>
>> Coba kirim file yang ada "run time errornya" karena dengan
>> mengetahui/memperbaiki kesalahan tersebut kita dapat semakin memahami dan
>> menikmati macro.
>>
>> JIka anda mau email satu persatu (balasan email anda kepada Miss Jan)
>> kenapa ga langung disave sebagai workbook (pada Dir yang sama) per nama PT ?
>>
>> Salam,
>> HK
>>
>> ------------------------------
>> *From:* Ahmad Habibillah <abiel_1108@yahoo.com> <abiel_1108@yahoo.com>
>> *To:* belajar-excel@yahoogroups.com
>> *Sent:* Friday, 4 October 2013, 14:02
>> *Subject:* Bls: [belajar-excel] Need Help melakukan copy paste
>> (breakdown) sheet to sheet
>>
>>
>> Dear Bro Hendrik,
>>
>> kok nggak bisa ya.. "run time error"
>>
>> maaf newbe nih... hihihihiihi
>>
>> mohon bantuannya lagi ya bro...
>>
>>
>> many thanks,
>> cheers
>> Ahmad H
>>
>>
>>
>> ------------------------------
>> *Dari:* hendrik karnadi <hendrikkarnadi@yahoo.com><hendrikkarnadi@yahoo.com>
>> *Kepada:* "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
>> <belajar-excel@yahoogroups.com> <belajar-excel@yahoogroups.com>
>> *Dikirim:* Jumat, 4 Oktober 2013 12:36
>> *Judul:* Re: [belajar-excel] Need Help melakukan copy paste (breakdown)
>> sheet to sheet
>>
>>
>> Pak De, boleh pinjam codenya ya ?
>> Coba copas macro Pak De Premor di bawah ini pada Sheet VBA Module1
>> (diambil dari kasus filtering sebelumnya),
>>
>> Sub Masukin()
>> Dim SrcData As Range, Rng As Range
>> Dim cKode As New Collection
>> Dim LRow As Long
>>
>> Application.ScreenUpdating = False
>> Set SrcData = Sheets("rekap detail").Range("E2", Range("E2
>> ").End(xlDown))
>>
>> On Error Resume Next
>> For Each Rng In SrcData
>> cKode.Add Trim(Rng), CStr(Rng)
>> Next
>>
>> For LRow = 1 To cKode.Count
>> Set Rng = SrcData.CurrentRegion.Offset(1, 0).Resize(SrcData.Rows.Count,
>> 6)
>> SrcData.CurrentRegion.AutoFilter Field:=5,
>> Criteria1:=cKode.Item(LRow)
>> Rng.SpecialCells(xlCellTypeVisible).Copy
>> Sheets(cKode.Item(LRow)).Range("A2")
>> SrcData.CurrentRegion.AutoFilter
>> Next
>> Application.ScreenUpdating = True
>> End Sub
>>
>> Warna merah adalah bagian yang disesuaikan.
>>
>> Salam,
>> HK
>>
>>
>> ------------------------------
>> *From:* Ahmad Habibillah <abiel_1108@yahoo.com> <abiel_1108@yahoo.com>
>> *To:* belajar-excel@yahoogroups.com
>> *Sent:* Friday, 4 October 2013, 10:57
>> *Subject:* [belajar-excel] Need Help melakukan copy paste (breakdown)
>> sheet to sheet [1 Attachment]
>>
>>
>> Selamat Pagi,
>>
>> mudah-mudah an semua anggota di belajar-excel ini selalu mendapatkan
>> keberkahan dalam hidup. amin
>>
>> dalam hal ini saya mau minta mohon bantuannya untuk permasalahan yang
>> saya alami,
>>
>> dikarenakan olah data ini dilakukan 2 hari sekali maka akan sangat
>> membantu jika dapat di lakukan otomasi by vb or macro.
>>
>> dalam 1 file excel terdapat sheet file detail dan beberapa sheet
>> breakdown nya.
>>
>> berikut saya lampirkan file yang dimaksud.
>>
>> atas perhatian dan bantuannya terima kasih
>>
>> cheers,
>> Ahmad H
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>
>
>
gimana ?
2013/10/4 De Premor <de@premor.net>
> **
>
>
> hehehe
> kayaknya sama saja nih, hasil pastinya nga bisa didapat dengan pasti
> karena faktor penentunya banyak (ada proses akses IO)
> Kalau menurut itung2an kode, setiap kali loop sicode baru akan melakukan
> pengecekan error number (1), kalau ketemu error akan ngeclear error (2)
>
> dari potongan kode perbandingan yang *"keliahatanny
> ditempat saya masih cepet yg bawah (Sub Diluar) :D
>
> Sub Didalam()
> Dim mCol As New Collection, Timex As Double
> Dim lRow As Long, nRow As Long, Cnt As Long
>
> Timex = Timer
> On Error Resume Next
> For lRow = 1 To 100000
> For nRow = 1 To 10
> mCol.Add nRow, CStr(lRow)
> If Err.Number <> 0 Then
> Err.Clear
> Else
> Cnt = Cnt + 1
> End If
> Next
> Next
> MsgBox Cnt & vbCrLf & Timer - Timex & " detik"
> End Sub
>
> Sub Diluar()
> Dim mCol As New Collection, Timex As Double
> Dim lRow As Long, nRow As Long, Cnt As Long
>
> Timex = Timer
> On Error Resume Next
> For lRow = 1 To 100000
> For nRow = 1 To 10
> mCol.Add nRow, CStr(lRow)
> Next
> Next
>
> For lRow = 1 To mCol.Count
> Cnt = Cnt + 1
> Next
> MsgBox Cnt & vbCrLf & Timer - Timex & " detik"
> End Sub
>
>
> On 04-10-2013 23:29, Mr. Kid wrote:
>
>
> thanks loh ya...
>
> gimana kalo bagian loop jadi :
> with err
> .clear
> For Each Rng In SrcData
> StrRng = Rng.Value
> cKode.Add Trim(StrRng)
> If .Number <> 0 Then
> .clear
> else
> SrcData.CurrentRegi
> Worksheets.Add
> Set Sh = ActiveSheet
> Sh.Name = Left(StrRng, 31)
> CopyRng.SpecialCell
> Sh.Range("
> Sh.Move
> NamaFile = Fld & StrRng & ".xlsx"
> ActiveWorkbook.
> ActiveWorkbook.
> SrcData.CurrentRegi
> End If
>
> Next rng
> end with
>
> Coba kalo gini Pak D.
>
> xixixixi.... mumpung ada yang bisa running test... gpp kan ya pakD...
>
>
> Wassalam,
> Kid.
>
>
>
> 2013/10/4 De Premor <de@premor.net>
>
>>
>>
>> Setelah dicoba2 tetep cepet yang lama ya, apa caraku yg kurang pas yak,
>> selisihnya kalau dirata-rata 0,2 detik disini :-\
>>
>> Sub ExportPerPTBaru(
>> Dim SrcData As Range, Rng As Range, CopyRng As Range, cKode As New
>> Collection
>> Dim LRow As Long, Sh As Worksheet, Fld As String, NamaFile As String,
>> StrRng As String
>> Dim Timex As Double
>>
>> Timex = Timer
>>
>> Application.
>> Application.
>>
>> Set SrcData = Sheets("
>> detail"
>>
>> Fld = ThisWorkbook.
>> If Dir(Fld, vbDirectory) = "" Then MkDir Fld
>>
>> Set CopyRng = SrcData.CurrentRegi
>>
>> On Error Resume Next
>> For Each Rng In SrcData
>> StrRng = Rng.Value
>> cKode.Add Trim(StrRng)
>> If Err.Number <> 457 Then
>> SrcData.CurrentRegi
>> Worksheets.Add
>> Set Sh = ActiveSheet
>> Sh.Name = Left(StrRng, 31)
>> CopyRng.SpecialCell
>> Sh.Range("
>> Sh.Move
>> NamaFile = Fld & StrRng & ".xlsx"
>> ActiveWorkbook.
>> ActiveWorkbook.
>> SrcData.CurrentRegi
>> End If
>> Err.Clear
>> Next
>>
>> MsgBox "Export selesai dalam waktu " & Timer - Timex & " detik" &
>> vbCrLf & "Target folder -> " & Fld, vbInformation
>>
>> Application.
>> Application.
>> End Sub
>>
>> Pada 04/10/2013 22:23, hendrik karnadi menulis:
>>
>>
>> Nah, kalau sdh soal susun-menyusun begini, saya mungkin belum bisa ikut
>> bermain ......
>>
>> Salam,
>> HK
>>
>> ------------
>> *From:* Mr. Kid <mr.nmkid@gmail.
>> *To:* BeExcel <belajar-excel@
>> *Sent:* Friday, 4 October 2013, 22:09
>> *Subject:* Re: Bls: Bls: [belajar-excel] Need Help melakukan copy paste
>> (breakdown) sheet to sheet
>>
>>
>> PakD,
>>
>> script dengan loop add collection dibuat terpisah dengan proses susun
>> output file itu dibandingkan dengan kalau loop add collection diisi
>> sekalian dengan proses susun output file, akan cepat mana ya ? (sorry ndak
>> sempet nyoba).
>> mungkin bisa lebih cepat kalau dalam add collection ada proses susun
>> output file deh.
>>
>> Wassalam,
>> Kid.
>>
>>
>>
>>
>>
>> 2013/10/4 De Premor <de@premor.net>
>>
>>
>> ikutan nimbrung ya mas HK
>> Buat error yang sebelumnya bisa tanpa berpindah sheet dulu dengan cara
>> begini
>>
>> Set SrcData = Sheets("
>> Range("
>>
>> berikut kode buat ngefilter per pt, kemudian mengkopy ke sheet baru, lalu
>> dipindah ke workbook baru, selanjutnya disimpen, setelah itu di close
>> workbook barunya.
>> *kalau perlu ditambahi kode buat ngirim email ke masing2 tujuan
>> sekalian, jadi tinggal pencet tombol trus duduk manis atau "**ngerjain **yang
>> lain**" hehehe*
>>
>> Sub ExportPerPT(
>> Dim SrcData As Range, Rng As Range, cKode As New Collection
>> Dim LRow As Long, Sh As Worksheet, Fld As String, NamaFile as String
>>
>> Application.
>> Application.
>>
>> Set SrcData = Sheets("
>> detail"
>>
>> On Error Resume Next 'Proses setelah ini akan menghasilkan error
>> jika ada data duplikat, maka buat error handlernya
>>
>> For Each Rng In SrcData
>> cKode.Add Trim(Rng),
>> CStr(Rng) 'Buat List Unique
>> Nama2 PT
>> Next
>>
>> Fld = ThisWorkbook.
>> Dikirim\
>> data export'an
>> If Dir(Fld, vbDirectory) = "" Then MkDir
>> Fld 'Jika belum ada foldernya, dibuat ajah
>>
>> Set Rng = SrcData.CurrentRegi
>> 6) 'Inget2 lokasi Data yang mau dicopy
>>
>>
>> For LRow = 1 To cKode.Count
>> SrcData.CurrentRegi
>> Criteria1:=cKode.
>>
>> Worksheets.Add 'Buat
>> Sheet Baru
>> Set Sh =
>> ActiveSheet 'Ingat2
>> Sheet barunya
>> Sh.Name = Left(cKode.Item(
>> 31) 'Ganti Nama Sheet baru menjadi
>> nama PT (Max 31 Karakter)
>> Rng.SpecialCells(
>> Sh.Range("
>>
>> Sh.Range("
>> kan lebar kolom
>>
>> Sh.Move 'Pindahkan
>> Sheetbaru ke workbook baru
>> NamaFile = Fld & ActiveSheet.
>> ActiveWorkbook.
>> 'Simpen workbook barunya sesuai nama PT
>>
>> ActiveWorkbook.
>> udah kesimpen, Tutup Aje
>> SrcData.CurrentRegi
>> 'Buang fitur autopilternya
>> 'Disini bisa diisi kode buat nyisipin kode mengirimkan email
>> kemasing2
>> 'tujuan sesuai dengan file hasil export terakhir
>> 'Ex:
>> 'SendEmail "Email@gw.com" <Email@gw.com>,"Email@lu.net"<Email@lu.net>,"Bro,
>> Ini Rekap PT Lu","
>> 'Kalau memang mau langsung dikirim seperti ini, berarti perlu
>> sebuah tabel lagi yang berisi alamat email dan nama PT :D
>> Next
>>
>> MsgBox "Export selesai, Target folder -> " & Fld, vbInformation
>>
>> Application.
>>
>> Application.
>> End Sub
>>
>>
>> Contoh kode sederhana (*Jika email server tidak memerlukan authentikasi
>> buat kirim emailnya*) seperti berikut :
>>
>> Function SendMail(ePengirim As String, eTujuan As String, eSubject As
>> String, ByVal eBody As String, eLampiran As String)
>> Set oEmail = CreateObject(
>>
>> With oEmail
>> .From = ePengirim
>> .To = eTujuan
>> .Subject = eSubject
>> .Textbody = eBody
>> .AddAttachment eLampiran
>>
>> With .Configuration.
>> .Item(
>> "http://schemas.
>> = 2
>> .Item(
>> "http://schemas.
>> = "192.168.
>> .Item(
>> "http://schemas.
>> = 1
>> .Update
>> End With
>>
>> .Send
>> End With
>> Set oEmail = Nothing
>> End Function
>>
>> On 04-10-2013 15:53, hendrik karnadi wrote:
>>
>>
>> Jangan putus asa dulu.
>> Coba copas lagi macro ini pada VBE Sheet (Module1).
>>
>> Sub Masukin()
>> Dim SrcData As Range, Rng As Range
>> Dim cKode As New Collection
>> Dim LRow As Long
>>
>> Application.
>> Sheets("
>> Set SrcData = Sheets("
>> Range("
>>
>> On Error Resume Next
>> For Each Rng In SrcData
>> cKode.Add Trim(Rng), CStr(Rng)
>> Next
>>
>> For LRow = 1 To cKode.Count
>> Set Rng = SrcData.CurrentRegi
>> 0).Resize(SrcData.
>> SrcData.CurrentRegi
>> Criteria1:=cKode.
>> Rng.SpecialCells(
>> Sheets(cKode.
>> SrcData.CurrentRegi
>> Next
>> Application.
>> End Sub
>>
>> Mengapa timbul run time error ?
>> Waktu menjalankan macro, anda tidak berada pada Sheet "rekap detail"
>>
>> Jika anda mau menjalankan macro tsb dari Sheet "rekap" (setelah
>> macronya dicopas di VBE Sheet) maka perlu ditambahkan instruksi warna
>> merah, artinya Sheet "rekap detail" harus diaktifkan dulu.
>>
>> Salam,
>> HK
>>
>>
>> ------------
>> *From:* Ahmad Habibillah <abiel_1108@yahoo.
>> *To:* belajar-excel@
>> *Sent:* Friday, 4 October 2013, 14:54
>> *Subject:* Bls: Bls: [belajar-excel] Need Help melakukan copy paste
>> (breakdown) sheet to sheet [1 Attachment]
>>
>>
>> Dear bro Hendrik,
>>
>> sekali lagi mohon bantuannya ya bro, mohon dimaklumi ye bro... namanya
>> newbe and juga pengen tau bisa gimana caranya.
>>
>> kalau itu bisa terealisasi efisiensi waktunya lumayan bro, kan bisa
>> buat ngerjain yang lain.. hehehe
>>
>> terlampir format data yang biasa digunakan.
>>
>>
>>
>> many thanks
>> Ahmad H
>>
>>
>>
>> ------------
>> *Dari:* hendrik karnadi <hendrikkarnadi@
>> *Kepada:* "belajar-excel@
>> <belajar-excel@
>> *Dikirim:* Jumat, 4 Oktober 2013 14:33
>> *Judul:* Re: Bls: [belajar-excel] Need Help melakukan copy paste
>> (breakdown) sheet to sheet
>>
>>
>> Saya sdh tes dan filenya masih disimpan.
>>
>> Coba kirim file yang ada "run time errornya" karena dengan
>> mengetahui/memperba
>> menikmati macro.
>>
>> JIka anda mau email satu persatu (balasan email anda kepada Miss Jan)
>> kenapa ga langung disave sebagai workbook (pada Dir yang sama) per nama PT ?
>>
>> Salam,
>> HK
>>
>> ------------
>> *From:* Ahmad Habibillah <abiel_1108@yahoo.
>> *To:* belajar-excel@
>> *Sent:* Friday, 4 October 2013, 14:02
>> *Subject:* Bls: [belajar-excel] Need Help melakukan copy paste
>> (breakdown) sheet to sheet
>>
>>
>> Dear Bro Hendrik,
>>
>> kok nggak bisa ya.. "run time error"
>>
>> maaf newbe nih... hihihihiihi
>>
>> mohon bantuannya lagi ya bro...
>>
>>
>> many thanks,
>> cheers
>> Ahmad H
>>
>>
>>
>> ------------
>> *Dari:* hendrik karnadi <hendrikkarnadi@
>> *Kepada:* "belajar-excel@
>> <belajar-excel@
>> *Dikirim:* Jumat, 4 Oktober 2013 12:36
>> *Judul:* Re: [belajar-excel] Need Help melakukan copy paste (breakdown)
>> sheet to sheet
>>
>>
>> Pak De, boleh pinjam codenya ya ?
>> Coba copas macro Pak De Premor di bawah ini pada Sheet VBA Module1
>> (diambil dari kasus filtering sebelumnya),
>>
>> Sub Masukin()
>> Dim SrcData As Range, Rng As Range
>> Dim cKode As New Collection
>> Dim LRow As Long
>>
>> Application.
>> Set SrcData = Sheets("
>> ").End(
>>
>> On Error Resume Next
>> For Each Rng In SrcData
>> cKode.Add Trim(Rng), CStr(Rng)
>> Next
>>
>> For LRow = 1 To cKode.Count
>> Set Rng = SrcData.CurrentRegi
>> 6)
>> SrcData.CurrentRegi
>> Criteria1:=cKode.
>> Rng.SpecialCells(
>> Sheets(cKode.
>> SrcData.CurrentRegi
>> Next
>> Application.
>> End Sub
>>
>> Warna merah adalah bagian yang disesuaikan.
>>
>> Salam,
>> HK
>>
>>
>> ------------
>> *From:* Ahmad Habibillah <abiel_1108@yahoo.
>> *To:* belajar-excel@
>> *Sent:* Friday, 4 October 2013, 10:57
>> *Subject:* [belajar-excel] Need Help melakukan copy paste (breakdown)
>> sheet to sheet [1 Attachment]
>>
>>
>> Selamat Pagi,
>>
>> mudah-mudah an semua anggota di belajar-excel ini selalu mendapatkan
>> keberkahan dalam hidup. amin
>>
>> dalam hal ini saya mau minta mohon bantuannya untuk permasalahan yang
>> saya alami,
>>
>> dikarenakan olah data ini dilakukan 2 hari sekali maka akan sangat
>> membantu jika dapat di lakukan otomasi by vb or macro.
>>
>> dalam 1 file excel terdapat sheet file detail dan beberapa sheet
>> breakdown nya.
>>
>> berikut saya lampirkan file yang dimaksud.
>>
>> atas perhatian dan bantuannya terima kasih
>>
>> cheers,
>> Ahmad H
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>
>
>
Fri Oct 4, 2013 10:17 am (PDT) . Posted by:
"De Premor" de.premor
Di contoh kode yang barusan sudah begitu dia, dan hasilnya lebih cepat
yang terpisah, dalam 100k x 10 kalkulasi, beda 0,15 s/d 0,17 detik di
Dell Optiplex 390, dan 0,95'an detik di Netbook yang lagi kepanasan :D
On 05-10-2013 0:06, Mr. Kid wrote:
> Kalo gitu for each rng nya diganti for lVar=1 to srcdata.count aja
> gimana ?
>
>
>
> 2013/10/4 De Premor <de@premor.net <mailto:de@premor.net>>
>
> hehehe
> kayaknya sama saja nih, hasil pastinya nga bisa didapat dengan
> pasti karena faktor penentunya banyak (ada proses akses IO)
> Kalau menurut itung2an kode, setiap kali loop sicode baru akan
> melakukan pengecekan error number (1), kalau ketemu error akan
> ngeclear error (2)
>
> dari potongan kode perbandingan yang *"keliahatannya adil*" ini
> kalau ditempat saya masih cepet yg bawah (Sub Diluar) :D
>
> Sub Didalam()
> Dim mCol As New Collection, Timex As Double
> Dim lRow As Long, nRow As Long, Cnt As Long
>
> Timex = Timer
> On Error Resume Next
> For lRow = 1 To 100000
> For nRow = 1 To 10
> mCol.Add nRow, CStr(lRow)
> If Err.Number <> 0 Then
> Err.Clear
> Else
> Cnt = Cnt + 1
> End If
> Next
> Next
> MsgBox Cnt & vbCrLf & Timer - Timex & " detik"
> End Sub
>
> Sub Diluar()
> Dim mCol As New Collection, Timex As Double
> Dim lRow As Long, nRow As Long, Cnt As Long
>
> Timex = Timer
> On Error Resume Next
> For lRow = 1 To 100000
> For nRow = 1 To 10
> mCol.Add nRow, CStr(lRow)
> Next
> Next
>
> For lRow = 1 To mCol.Count
> Cnt = Cnt + 1
> Next
> MsgBox Cnt & vbCrLf & Timer - Timex & " detik"
> End Sub
>
>
> On 04-10-2013 23:29, Mr. Kid wrote:
>
>> thanks loh ya...
>>
>> gimana kalo bagian loop jadi :
>> with err
>> .clear
>> For Each Rng In SrcData
>> StrRng = Rng.Value
>> cKode.Add Trim(StrRng), CStr(StrRng)
>> If .Number <> 0 Then
>> .clear
>> else
>> SrcData.CurrentRegion.AutoFilter Field:=5, Criteria1:=StrRng
>> Worksheets.Add
>> Set Sh = ActiveSheet
>> Sh.Name = Left(StrRng, 31)
>> CopyRng.SpecialCells(xlCellTypeVisible).Copy Sh.Range("A1")
>> Sh.Range("A1:F1").EntireColumn.AutoFit
>> Sh.Move
>> NamaFile = Fld & StrRng & ".xlsx"
>> ActiveWorkbook.SaveAs NamaFile
>> ActiveWorkbook.Close
>> SrcData.CurrentRegion.AutoFilter
>> End If
>>
>> Next rng
>> end with
>>
>> Coba kalo gini Pak D.
>>
>> xixixixi.... mumpung ada yang bisa running test... gpp kan ya pakD...
>>
>>
>> Wassalam,
>> Kid.
>>
>>
>>
>> 2013/10/4 De Premor <de@premor.net <mailto:de@premor.net>>
>>
>> Setelah dicoba2 tetep cepet yang lama ya, apa caraku yg
>> kurang pas yak, selisihnya kalau dirata-rata 0,2 detik disini
>> :-\
>>
>> Sub ExportPerPTBaru()
>> Dim SrcData As Range, Rng As Range, CopyRng As Range,
>> cKode As New Collection
>> Dim LRow As Long, Sh As Worksheet, Fld As String,
>> NamaFile As String, StrRng As String
>> Dim Timex As Double
>>
>> Timex = Timer
>>
>> Application.ScreenUpdating = False
>> Application.DisplayAlerts = False
>>
>> Set SrcData = Sheets("rekap detail").Range("E2",
>> Sheets("rekap detail").Range("E2").End(xlDown))
>>
>> Fld = ThisWorkbook.Path & "\Buat Dikirin\"
>> If Dir(Fld, vbDirectory) = "" Then MkDir Fld
>>
>> Set CopyRng =
>> SrcData.CurrentRegion.Resize(SrcData.Rows.Count, 6)
>>
>> On Error Resume Next
>> For Each Rng In SrcData
>> StrRng = Rng.Value
>> cKode.Add Trim(StrRng), CStr(StrRng)
>> If Err.Number <> 457 Then
>> SrcData.CurrentRegion.AutoFilter Field:=5, Criteria1:=StrRng
>> Worksheets.Add
>> Set Sh = ActiveSheet
>> Sh.Name = Left(StrRng, 31)
>> CopyRng.SpecialCells(xlCellTypeVisible).Copy Sh.Range("A1")
>> Sh.Range("A1:F1").EntireColumn.AutoFit
>> Sh.Move
>> NamaFile = Fld & StrRng & ".xlsx"
>> ActiveWorkbook.SaveAs NamaFile
>> ActiveWorkbook.Close
>> SrcData.CurrentRegion.AutoFilter
>> End If
>> Err.Clear
>> Next
>>
>> MsgBox "Export selesai dalam waktu " & Timer - Timex & "
>> detik" & vbCrLf & "Target folder -> " & Fld, vbInformation
>>
>> Application.DisplayAlerts = True
>> Application.ScreenUpdating = True
>> End Sub
>>
>> Pada 04/10/2013 22:23, hendrik karnadi menulis:
>>> Nah, kalau sdh soal susun-menyusun begini, saya mungkin
>>> belum bisa ikut bermain ......
>>>
>>> Salam,
>>> HK
>>>
>>> ----------------------------------------------------------
>>> *From:* Mr. Kid <mr.nmkid@gmail.com> <mailto:mr.nmkid@gmail.com>
>>> *To:* BeExcel <belajar-excel@yahoogroups.com>
>>> <mailto:belajar-excel@yahoogroups.com>
>>> *Sent:* Friday, 4 October 2013, 22:09
>>> *Subject:* Re: Bls: Bls: [belajar-excel] Need Help melakukan
>>> copy paste (breakdown) sheet to sheet
>>>
>>> PakD,
>>>
>>> script dengan loop add collection dibuat terpisah dengan
>>> proses susun output file itu dibandingkan dengan kalau loop
>>> add collection diisi sekalian dengan proses susun output
>>> file, akan cepat mana ya ? (sorry ndak sempet nyoba).
>>> mungkin bisa lebih cepat kalau dalam add collection ada
>>> proses susun output file deh.
>>>
>>> Wassalam,
>>> Kid.
>>>
>>>
>>>
>>>
>>>
>>> 2013/10/4 De Premor <de@premor.net <mailto:de@premor.net>>
>>>
>>> ikutan nimbrung ya mas HK
>>> Buat error yang sebelumnya bisa tanpa berpindah sheet
>>> dulu dengan cara begini
>>>
>>> Set SrcData = Sheets("rekap detail").Range("E2",
>>> Sheets("rekap detail").Range("E2").End(xlDown))
>>>
>>> berikut kode buat ngefilter per pt, kemudian mengkopy ke
>>> sheet baru, lalu dipindah ke workbook baru, selanjutnya
>>> disimpen, setelah itu di close workbook barunya.
>>> /kalau perlu ditambahi kode buat ngirim email ke masing2
>>> tujuan sekalian, jadi tinggal pencet tombol trus duduk
>>> manis atau "//*ngerjain *//*yang lain*//" hehehe/
>>>
>>> Sub ExportPerPT()
>>> Dim SrcData As Range, Rng As Range, cKode As New
>>> Collection
>>> Dim LRow As Long, Sh As Worksheet, Fld As String,
>>> NamaFile as String
>>>
>>> Application.ScreenUpdating = False
>>> Application.DisplayAlerts = False
>>>
>>> Set SrcData = Sheets("rekap detail").Range("E2",
>>> Sheets("rekap detail").Range("E2").End(xlDown))
>>>
>>> On Error Resume Next 'Proses setelah ini akan
>>> menghasilkan error jika ada data duplikat, maka buat
>>> error handlernya
>>>
>>> For Each Rng In SrcData
>>> cKode.Add Trim(Rng), CStr(Rng) 'Buat List Unique Nama2 PT
>>> Next
>>>
>>> Fld = ThisWorkbook.Path & "\Buat Dikirim\" 'Lokasi
>>> Pulder buat nyimpen data export'an
>>> If Dir(Fld, vbDirectory) = "" Then MkDir Fld 'Jika
>>> belum ada foldernya, dibuat ajah
>>>
>>> Set Rng =
>>> SrcData.CurrentRegion.Resize(SrcData.Rows.Count, 6)
>>> 'Inget2 lokasi Data yang mau dicopy
>>>
>>>
>>> For LRow = 1 To cKode.Count
>>> SrcData.CurrentRegion.AutoFilter Field:=5,
>>> Criteria1:=cKode.Item(LRow) 'AutoFilter
>>> Worksheets.Add 'Buat Sheet Baru
>>> Set Sh = ActiveSheet 'Ingat2 Sheet barunya
>>> Sh.Name = Left(cKode.Item(LRow), 31) 'Ganti Nama Sheet
>>> baru menjadi nama PT (Max 31 Karakter)
>>> Rng.SpecialCells(xlCellTypeVisible).Copy Sh.Range("A1")
>>> 'Copy Data Dari Rekap Detail ke Sheet Baru
>>> Sh.Range("A1:F1").EntireColumn.AutoFit 'Pas kan lebar kolom
>>> Sh.Move 'Pindahkan Sheetbaru ke workbook baru
>>> NamaFile = Fld & ActiveSheet.[E2] & ".xlsx"
>>> ActiveWorkbook.SaveAs NamaFile 'Simpen workbook barunya
>>> sesuai nama PT
>>> ActiveWorkbook.Close 'Kalau udah kesimpen, Tutup Aje
>>> SrcData.CurrentRegion.AutoFilter 'Buang fitur autopilternya
>>> 'Disini bisa diisi kode buat nyisipin kode
>>> mengirimkan email kemasing2
>>> 'tujuan sesuai dengan file hasil export terakhir
>>> 'Ex:
>>> 'SendEmail "Email@gw.com"
>>> <mailto:Email@gw.com>,"Email@lu.net"
>>> <mailto:Email@lu.net>,"Bro, Ini Rekap PT Lu","Liat Aja
>>> dilampiran", NamaFile
>>> 'Kalau memang mau langsung dikirim seperti ini,
>>> berarti perlu sebuah tabel lagi yang berisi alamat email
>>> dan nama PT :D
>>> Next
>>>
>>> MsgBox "Export selesai, Target folder -> " & Fld,
>>> vbInformation
>>>
>>> Application.DisplayAlerts = True
>>>
>>> Application.ScreenUpdating = True
>>> End Sub
>>>
>>>
>>> Contoh kode sederhana (*Jika email server tidak
>>> memerlukan authentikasi buat kirim emailnya*) seperti
>>> berikut :
>>>
>>> Function SendMail(ePengirim As String, eTujuan As
>>> String, eSubject As String, ByVal eBody As String,
>>> eLampiran As String)
>>> Set oEmail = CreateObject("CDO.Message")
>>>
>>> With oEmail
>>> .From = ePengirim
>>> .To = eTujuan
>>> .Subject = eSubject
>>> .Textbody = eBody
>>> .AddAttachment eLampiran
>>>
>>> With .Configuration.Fields
>>> .Item("http://schemas.microsoft.com/cdo/configuration/sendusing"
>>> <http://schemas.microsoft.com/cdo/configuration/sendusing>)
>>> = 2
>>> .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver"
>>> <http://schemas.microsoft.com/cdo/configuration/smtpserver>)
>>> = "192.168.7.7"
>>> .Item("http://schemas.microsoft.com/cdo/configuration/authenticate"
>>> <http://schemas.microsoft.com/cdo/configuration/authenticate>)
>>> = 1
>>> .Update
>>> End With
>>>
>>> .Send
>>> End With
>>> Set oEmail = Nothing
>>> End Function
>>>
>>> On 04-10-2013 15:53, hendrik karnadi wrote:
>>>> Jangan putus asa dulu.
>>>> Coba copas lagi macro ini pada VBE Sheet (Module1).
>>>>
>>>> Sub Masukin()
>>>> Dim SrcData As Range, Rng As Range
>>>> Dim cKode As New Collection
>>>> Dim LRow As Long
>>>>
>>>> Application.ScreenUpdating = False
>>>> Sheets("rekap detail").Activate
>>>> Set SrcData = Sheets("rekap detail").Range("E2",
>>>> Range("E2").End(xlDown))
>>>> On Error Resume Next
>>>> For Each Rng In SrcData
>>>> cKode.Add Trim(Rng), CStr(Rng)
>>>> Next
>>>> For LRow = 1 To cKode.Count
>>>> Set Rng = SrcData.CurrentRegion.Offset(1,
>>>> 0).Resize(SrcData.Rows.Count, 6)
>>>> SrcData.CurrentRegion.AutoFilter Field:=5,
>>>> Criteria1:=cKode.Item(LRow)
>>>> Rng.SpecialCells(xlCellTypeVisible).Copy
>>>> Sheets(cKode.Item(LRow)).Range("A2")
>>>> SrcData.CurrentRegion.AutoFilter
>>>> Next
>>>> Application.ScreenUpdating = True
>>>> End Sub
>>>>
>>>> Mengapa timbul run time error ?
>>>> Waktu menjalankan macro, anda tidak berada pada Sheet
>>>> "rekap detail".
>>>>
>>>> Jika anda mau menjalankan macro tsb dari Sheet "rekap"
>>>> (setelah macronya dicopas di VBE Sheet) maka perlu
>>>> ditambahkan instruksi warna merah, artinya Sheet "rekap
>>>> detail" harus diaktifkan dulu.
>>>>
>>>> Salam,
>>>> HK
>>>>
>>>>
>>>> ----------------------------------------------------------
>>>> *From:* Ahmad Habibillah <abiel_1108@yahoo.com>
>>>> <mailto:abiel_1108@yahoo.com>
>>>> *To:* belajar-excel@yahoogroups.com
>>>> <mailto:belajar-excel@yahoogroups.com>
>>>> *Sent:* Friday, 4 October 2013, 14:54
>>>> *Subject:* Bls: Bls: [belajar-excel] Need Help
>>>> melakukan copy paste (breakdown) sheet to sheet [1
>>>> Attachment]
>>>>
>>>> Dear bro Hendrik,
>>>>
>>>> sekali lagi mohon bantuannya ya bro, mohon dimaklumi ye
>>>> bro... namanya newbe and juga pengen tau bisa gimana
>>>> caranya.
>>>>
>>>> kalau itu bisa terealisasi efisiensi waktunya lumayan
>>>> bro, kan bisa buat ngerjain yang lain.. hehehe
>>>>
>>>> terlampir format data yang biasa digunakan.
>>>>
>>>>
>>>>
>>>> many thanks
>>>> Ahmad H
>>>>
>>>>
>>>>
>>>> ----------------------------------------------------------
>>>> *Dari:* hendrik karnadi <hendrikkarnadi@yahoo.com>
>>>> <mailto:hendrikkarnadi@yahoo.com>
>>>> *Kepada:* "belajar-excel@yahoogroups.com"
>>>> <mailto:belajar-excel@yahoogroups.com>
>>>> <belajar-excel@
yang terpisah, dalam 100k x 10 kalkulasi, beda 0,15 s/d 0,17 detik di
Dell Optiplex 390, dan 0,95'an detik di Netbook yang lagi kepanasan :D
On 05-10-2013 0:06, Mr. Kid wrote:
> Kalo gitu for each rng nya diganti for lVar=1 to srcdata.count aja
> gimana ?
>
>
>
> 2013/10/4 De Premor <de@premor.net <mailto:de@premor.net>>
>
> hehehe
> kayaknya sama saja nih, hasil pastinya nga bisa didapat dengan
> pasti karena faktor penentunya banyak (ada proses akses IO)
> Kalau menurut itung2an kode, setiap kali loop sicode baru akan
> melakukan pengecekan error number (1), kalau ketemu error akan
> ngeclear error (2)
>
> dari potongan kode perbandingan yang *"keliahatanny
> kalau ditempat saya masih cepet yg bawah (Sub Diluar) :D
>
> Sub Didalam()
> Dim mCol As New Collection, Timex As Double
> Dim lRow As Long, nRow As Long, Cnt As Long
>
> Timex = Timer
> On Error Resume Next
> For lRow = 1 To 100000
> For nRow = 1 To 10
> mCol.Add nRow, CStr(lRow)
> If Err.Number <> 0 Then
> Err.Clear
> Else
> Cnt = Cnt + 1
> End If
> Next
> Next
> MsgBox Cnt & vbCrLf & Timer - Timex & " detik"
> End Sub
>
> Sub Diluar()
> Dim mCol As New Collection, Timex As Double
> Dim lRow As Long, nRow As Long, Cnt As Long
>
> Timex = Timer
> On Error Resume Next
> For lRow = 1 To 100000
> For nRow = 1 To 10
> mCol.Add nRow, CStr(lRow)
> Next
> Next
>
> For lRow = 1 To mCol.Count
> Cnt = Cnt + 1
> Next
> MsgBox Cnt & vbCrLf & Timer - Timex & " detik"
> End Sub
>
>
> On 04-10-2013 23:29, Mr. Kid wrote:
>
>> thanks loh ya...
>>
>> gimana kalo bagian loop jadi :
>> with err
>> .clear
>> For Each Rng In SrcData
>> StrRng = Rng.Value
>> cKode.Add Trim(StrRng)
>> If .Number <> 0 Then
>> .clear
>> else
>> SrcData.CurrentRegi
>> Worksheets.Add
>> Set Sh = ActiveSheet
>> Sh.Name = Left(StrRng, 31)
>> CopyRng.SpecialCell
>> Sh.Range("
>> Sh.Move
>> NamaFile = Fld & StrRng & ".xlsx"
>> ActiveWorkbook.
>> ActiveWorkbook.
>> SrcData.CurrentRegi
>> End If
>>
>> Next rng
>> end with
>>
>> Coba kalo gini Pak D.
>>
>> xixixixi.... mumpung ada yang bisa running test... gpp kan ya pakD...
>>
>>
>> Wassalam,
>> Kid.
>>
>>
>>
>> 2013/10/4 De Premor <de@premor.net <mailto:de@premor.net>>
>>
>> Setelah dicoba2 tetep cepet yang lama ya, apa caraku yg
>> kurang pas yak, selisihnya kalau dirata-rata 0,2 detik disini
>> :-\
>>
>> Sub ExportPerPTBaru(
>> Dim SrcData As Range, Rng As Range, CopyRng As Range,
>> cKode As New Collection
>> Dim LRow As Long, Sh As Worksheet, Fld As String,
>> NamaFile As String, StrRng As String
>> Dim Timex As Double
>>
>> Timex = Timer
>>
>> Application.
>> Application.
>>
>> Set SrcData = Sheets("
>> Sheets("
>>
>> Fld = ThisWorkbook.
>> If Dir(Fld, vbDirectory) = "" Then MkDir Fld
>>
>> Set CopyRng =
>> SrcData.CurrentRegi
>>
>> On Error Resume Next
>> For Each Rng In SrcData
>> StrRng = Rng.Value
>> cKode.Add Trim(StrRng)
>> If Err.Number <> 457 Then
>> SrcData.CurrentRegi
>> Worksheets.Add
>> Set Sh = ActiveSheet
>> Sh.Name = Left(StrRng, 31)
>> CopyRng.SpecialCell
>> Sh.Range("
>> Sh.Move
>> NamaFile = Fld & StrRng & ".xlsx"
>> ActiveWorkbook.
>> ActiveWorkbook.
>> SrcData.CurrentRegi
>> End If
>> Err.Clear
>> Next
>>
>> MsgBox "Export selesai dalam waktu " & Timer - Timex & "
>> detik" & vbCrLf & "Target folder -> " & Fld, vbInformation
>>
>> Application.
>> Application.
>> End Sub
>>
>> Pada 04/10/2013 22:23, hendrik karnadi menulis:
>>> Nah, kalau sdh soal susun-menyusun begini, saya mungkin
>>> belum bisa ikut bermain ......
>>>
>>> Salam,
>>> HK
>>>
>>> ------------
>>> *From:* Mr. Kid <mr.nmkid@gmail.
>>> *To:* BeExcel <belajar-excel@
>>> <mailto:belajar-excel@
>>> *Sent:* Friday, 4 October 2013, 22:09
>>> *Subject:* Re: Bls: Bls: [belajar-excel] Need Help melakukan
>>> copy paste (breakdown) sheet to sheet
>>>
>>> PakD,
>>>
>>> script dengan loop add collection dibuat terpisah dengan
>>> proses susun output file itu dibandingkan dengan kalau loop
>>> add collection diisi sekalian dengan proses susun output
>>> file, akan cepat mana ya ? (sorry ndak sempet nyoba).
>>> mungkin bisa lebih cepat kalau dalam add collection ada
>>> proses susun output file deh.
>>>
>>> Wassalam,
>>> Kid.
>>>
>>>
>>>
>>>
>>>
>>> 2013/10/4 De Premor <de@premor.net <mailto:de@premor.net>>
>>>
>>> ikutan nimbrung ya mas HK
>>> Buat error yang sebelumnya bisa tanpa berpindah sheet
>>> dulu dengan cara begini
>>>
>>> Set SrcData = Sheets("
>>> Sheets("
>>>
>>> berikut kode buat ngefilter per pt, kemudian mengkopy ke
>>> sheet baru, lalu dipindah ke workbook baru, selanjutnya
>>> disimpen, setelah itu di close workbook barunya.
>>> /kalau perlu ditambahi kode buat ngirim email ke masing2
>>> tujuan sekalian, jadi tinggal pencet tombol trus duduk
>>> manis atau "//*ngerjain *//*yang lain*//" hehehe/
>>>
>>> Sub ExportPerPT(
>>> Dim SrcData As Range, Rng As Range, cKode As New
>>> Collection
>>> Dim LRow As Long, Sh As Worksheet, Fld As String,
>>> NamaFile as String
>>>
>>> Application.
>>> Application.
>>>
>>> Set SrcData = Sheets("
>>> Sheets("
>>>
>>> On Error Resume Next 'Proses setelah ini akan
>>> menghasilkan error jika ada data duplikat, maka buat
>>> error handlernya
>>>
>>> For Each Rng In SrcData
>>> cKode.Add Trim(Rng), CStr(Rng) 'Buat List Unique Nama2 PT
>>> Next
>>>
>>> Fld = ThisWorkbook.
>>> Pulder buat nyimpen data export'an
>>> If Dir(Fld, vbDirectory) = "" Then MkDir Fld 'Jika
>>> belum ada foldernya, dibuat ajah
>>>
>>> Set Rng =
>>> SrcData.CurrentRegi
>>> 'Inget2 lokasi Data yang mau dicopy
>>>
>>>
>>> For LRow = 1 To cKode.Count
>>> SrcData.CurrentRegi
>>> Criteria1:=cKode.
>>> Worksheets.Add 'Buat Sheet Baru
>>> Set Sh = ActiveSheet 'Ingat2 Sheet barunya
>>> Sh.Name = Left(cKode.Item(
>>> baru menjadi nama PT (Max 31 Karakter)
>>> Rng.SpecialCells(
>>> 'Copy Data Dari Rekap Detail ke Sheet Baru
>>> Sh.Range("
>>> Sh.Move 'Pindahkan Sheetbaru ke workbook baru
>>> NamaFile = Fld & ActiveSheet.
>>> ActiveWorkbook.
>>> sesuai nama PT
>>> ActiveWorkbook.
>>> SrcData.CurrentRegi
>>> 'Disini bisa diisi kode buat nyisipin kode
>>> mengirimkan email kemasing2
>>> 'tujuan sesuai dengan file hasil export terakhir
>>> 'Ex:
>>> 'SendEmail "Email@gw.com"
>>> <mailto:Email@gw.com>,"Email@lu.net"
>>> <mailto:Email@lu.net>,"Bro, Ini Rekap PT Lu","
>>> dilampiran"
>>> 'Kalau memang mau langsung dikirim seperti ini,
>>> berarti perlu sebuah tabel lagi yang berisi alamat email
>>> dan nama PT :D
>>> Next
>>>
>>> MsgBox "Export selesai, Target folder -> " & Fld,
>>> vbInformation
>>>
>>> Application.
>>>
>>> Application.
>>> End Sub
>>>
>>>
>>> Contoh kode sederhana (*Jika email server tidak
>>> memerlukan authentikasi buat kirim emailnya*) seperti
>>> berikut :
>>>
>>> Function SendMail(ePengirim As String, eTujuan As
>>> String, eSubject As String, ByVal eBody As String,
>>> eLampiran As String)
>>> Set oEmail = CreateObject(
>>>
>>> With oEmail
>>> .From = ePengirim
>>> .To = eTujuan
>>> .Subject = eSubject
>>> .Textbody = eBody
>>> .AddAttachment eLampiran
>>>
>>> With .Configuration.
>>> .Item("http://schemas.
>>> <http://schemas.
>>> = 2
>>> .Item("http://schemas.
>>> <http://schemas.
>>> = "192.168.
>>> .Item("http://schemas.
>>> <http://schemas.
>>> = 1
>>> .Update
>>> End With
>>>
>>> .Send
>>> End With
>>> Set oEmail = Nothing
>>> End Function
>>>
>>> On 04-10-2013 15:53, hendrik karnadi wrote:
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>