Memisahkan Nama Depan dan Belakang dengan Macro Excel

1 December 2007 at 18:50 | Posted in Uncategorized | 11 Comments
Tags:

Sebagai admin Moodle di fakultas kami, salah satu pekerjaan saya adalah memasukkan data mahasiswa baru, sehingga mereka dapat login secara otomatis (tidak perlu daftar lagi). Dalam sistem ideal, hal ini dapat dilakukan secara otomatis kalau saja saya mempunyai koneksi dengan data mahasiswa dari pusat. Sayangnya yang saya dapat adalah data Excel (masih untung tidak perlu entri sendiri loh, untung orang jawa katanya, selalu saja untung disetiap kesempatan hehe).

Moodle menyediakan fasilitas pendaftaran secara batch melalui file teks. Data minimal yang harus ada adalah: username, firstname, lastname, password, email. Masalahnya data Excel yang saya terima menggunakan full name, jadi harus dipisahkan dulu. Biasanya saya pindahkan ke file teks lalu diproses dengan PHP, tapi sekarang saya mau mencoba dengan macro Excel. Perlu diingat bahwa beberapa mahasiswa memiliki satu nama saja.

Setelah mencoba, entah kenapa fungsi split tidak dapat digunakan, error terus. Akhirnya manual saja, dengan mencari spasi terdekat. Berikut codenya:  (untuk mahasiswa IF yang mendapat kuliah Alpro dari Bu Inge pasti bisa melihat polanya🙂 , ya itulah manfaat kuliah Alpro. Walaupun sudah berselang lebih dari 12 tahun tapi tetap terpakai)

Public Sub splitName()

colIdxSource = 2 ‘kolom yang akan diproses
colIdxDest = 3 ‘kolom tempat meletakan hasil
RCount = 156 ‘jumlah baris yang akan diproses

Dim i As Integer
Dim fullName As String

For i = 1 To RCount
fullName = Trim(Cells(i, colIdxSource).Value)
lName = Len(fullName)

j = 1
found = False
While (j <= lName And Not (found)) If Mid(fullName, j, 1) = " " Then found = True Else j = j + 1 End If Wend If found Then 'split firstName = Mid(fullName, 1, j - 1) lastName = Mid(fullName, j + 1, lName - j) Else 'kasus cuma satu nama firstName = fullName lastName = "-" End If Cells(i, colIdxDest).Value = firstName Cells(i, colIdxDest + 1).Value = lastName Next i End Sub [/sourcecode]

11 Comments »

RSS feed for comments on this post. TrackBack URI

  1. mas, saya pake split oke oke aja tuh ..


    Function namadepan(namalengkap)

    Dim kata() As String

    kata = Split(namalengkap, " ")

    namadepan = kata(LBound(kata()))

    End Function

    Function namabelakang(namalengkap)
    Dim kata() As String

    kata = Split(namalengkap, " ")

    namabelakang = kata(UBound(kata()))
    End Function

    Function namatengah(namalengkap)
    Dim kata() As String

    kata = Split(namalengkap, " ")

    kata(LBound(kata())) = ""
    kata(UBound(kata())) = ""

    namatengah = Trim(Join(kata, " "))

    End Function

  2. Thanks atas masukannya.

    Pake Macro Excel atau VB nih? Saya coba pake Excel dengan sintaks yang sama dan error terus (masalah di parameternya).

  3. VBA di Excel.
    create New Module dulu,

  4. Hmm jadi penasaran🙂

    Setelah ngoprek sebentar. Saya sekarang tahu salahnya.

    Saya tidak menggunakan Dim kata() as String untuk mendeklarasikan variabel array yang akan menerima hasil fungsi split. Hehe, maklum novice di macro excel

    Thanks ya🙂

  5. Salam kenal.

    Cuman mo ngasi informasi kepada teman2 se-Indonesia yang Interest untuk belajar Macro Excel, saya sangat menyarankan anda mengunjungi situs saya, [ dihapus.. sudah mati .. yw ]

    Disana saya coba menulis lengkap Belajar Macro Excel dari pemula sampai mahir. Jika ada kekurangannya mohon feed back nya ya.

    Untuk Admin saya salut buat anda.

    BTW filenya mana mas??

    Thank’s

  6. Bagus websitenya.

    File yang mana ya?? File XLS-nya? sepertinya tidak perlu.

  7. mohon diberikan program macro excel untuk transaksi di ATM tentang rekonsiliasi, maksudnya data-data transaksi atm masuk ke dalam wordpad, nah dari wordpad dibuat macro excel apabila data yang kembar (rekonsiliasi) dia membuat sheet baru,

    terima kasih atas pencerahannya

  8. Kalau datanya saya tidak tahu ya sulit dibuat programnya🙂
    Coba di post disini bentuk datanya kira-kira seperti apa, dan output yang diinginkan seperti apa.

    Tapi dari keterangan mas Sungkono, menurut saya datanya diurutkan dulu supaya mudah melihat data yang kembar. Setelah itu program akan menelusuri dan memisahkan data kembar tersebut. Tebakan saya, anda ingin memisahkan semua data kembar dalam sheet terpisah supaya bisa diperiksa dan ditangani secara manual ya? Tapi bukan berarti setiap data kembar satu sheet ‘kan?

  9. hmm… nice mas. saya suka banget ama sintaxnya, berguna banget dengan pekerjaan saya. cuma saya mo minta tolong juga, gimana caranya untuk menghitung suatu teks yang dipisahkan sama koma. Contoh data = Rudi, Iwan, Ali, Johan = 4 orang;
    intinya sintak itu bisa menghitung jumlah koma yang memisahkan nama2 tersebut.
    trima kasih sebelumnya

  10. @ernie:

    bisa dengan ubound seperti ini:

    Public Function hitungitem(s)
    Dim item() As String
    item = Split(s, “,”)
    hitungitem = UBound(item()) + 1
    End Function

  11. hi kawan mo nanya nih, ane seorang pemula yang hendak belajar macro. adakah situs lain yg ngebahas dari yg paling basic tentang macro?
    mohon infonya dong
    thanks


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Create a free website or blog at WordPress.com.
Entries and comments feeds.

%d bloggers like this: