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.
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:
01
|
Public Sub splitName()
|
02
|
|
03
|
colIdxSource
= 2 'kolom yang akan diproses
|
04
|
colIdxDest
= 3 'kolom tempat meletakan hasil
|
05
|
RCount
= 156 'jumlah baris yang akan diproses
|
06
|
|
07
|
Dim i As Integer
|
08
|
Dim fullName As String
|
09
|
|
10
|
For i
= 1 To RCount
|
11
|
fullName
= Trim(Cells(i, colIdxSource).Value)
|
12
|
lName
= Len(fullName)
|
15
|
found
= False
|
16
|
While (j
<= lName And Not (found))
|
17
|
If Mid(fullName,
j, 1) = " " Then
|
18
|
found
= True
|
23
|
|
24
|
If found Then 'split
|
25
|
firstName
= Mid(fullName, 1, j - 1)
|
26
|
lastName
= Mid(fullName, j + 1, lName - j)
|
27
|
Else 'kasus
cuma satu nama
|
28
|
firstName
= fullName
|
29
|
lastName
= "-"
|
30
|
End If
|
31
|
Cells(i,
colIdxDest).Value = firstName
|
32
|
Cells(i,
colIdxDest + 1).Value = lastName
|
Tidak ada komentar:
Posting Komentar