macros
Example heading with h2 size
Example heading with h3 size
''Following is sample java code.
Sub RearrangeColumnsInSameSheet()
Dim ws As Worksheet
Dim keepCols As Variant
Dim i As Long
Dim srcCol As Range
Dim destCol As Long
Dim header As String
Dim tempWs As Worksheet
' Menentukan urutan kolom yang diinginkan
keepCols = Array("SubOutlet Code", "SubOutlet Name", "Rit", "Gate", "No.Invoice", "Tanggal Kirim", _
"10004037", "10008867", "20037475", "10018154", "", "20003591", "20108264*", _
"20120460", "20109047", "", "20123203", "20055855", "20108264", "20132623", _
"20120972", "20132625", "20035999", "20046107", "20036000", "20046106", _
"20074234", "20052495", "20074235", "20086834", "20132616", "20132618", _
"20132619", "20134379", "10004039", "10032089", "", "20118139", "10004372", _
"20003593", "10004371", "20062099", "20130215", "20130214", "", "20133258", _
"20125603", "20125604", "20125605", "20025041", "10010256", "10006194X", _
"10006195X", "10005643X", "20014916X", "", "10006194", "10006195", _
"10005643", "20014916", "20031087", "20118513", "20028241", "", "", _
"20082692", "20127599", "", "", "20132621", "20135250", "20091744", _
"20091743", "", "", "", "20072596", "20080782", "20126866", "20126869", _
"20126870", "20126867", "Total Crate Tawar", "Total Crate Manis", "NO PO")
' Iterasi melalui setiap worksheet yang terpilih
For Each ws In Application.ActiveWindow.SelectedSheets
If ws.Visible = xlSheetVisible Then
' Menambahkan sheet sementara untuk menyusun ulang kolom
Set tempWs = Worksheets.Add
destCol = 1 ' Kolom tujuan di sheet sementara
' Iterasi melalui setiap elemen dalam keepCols
For i = LBound(keepCols) To UBound(keepCols)
header = Trim(CStr(keepCols(i))) ' Pastikan semua elemen adalah string dan trim spasi
' Mencari kolom sumber berdasarkan header
Set srcCol = ws.Rows(1).Find(What:=header, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)
If Not srcCol Is Nothing Then
' Menyalin kolom ke sheet sementara
ws.Columns(srcCol.Column).Copy
tempWs.Cells(1, destCol).PasteSpecial Paste:=xlPasteAll
Application.CutCopyMode = False
Else
' Jika kolom tidak ditemukan, tambahkan header saja
tempWs.Cells(1, destCol).Value = header
End If
destCol = destCol + 1
Next i
' Hapus semua kolom di sheet asli
ws.Cells.Clear
' Salin ulang data dari sheet sementara ke sheet asli
tempWs.UsedRange.Copy ws.Cells(1, 1)
' Hapus sheet sementara
Application.DisplayAlerts = False
tempWs.Delete
Application.DisplayAlerts = True
' Menyesuaikan lebar kolom
ws.Columns.AutoFit
End If
Next ws
MsgBox "Proses penyusunan ulang kolom selesai!", vbInformation
End Sub''
Sub HideKolomBarisMultipleSheets()
Dim ws As Worksheet
Dim lastRow As Long
Dim lastCol As Long
Dim i As Long
Dim j As Long
Dim isRowEmpty As Boolean
Dim isColEmpty As Boolean
Dim cellValue As Variant
' Loop melalui semua sheet yang dipilih
For Each ws In Application.ActiveWindow.SelectedSheets
' Gunakan sheet yang sedang diproses dalam loop
ws.Activate
' Menentukan baris terakhir berdasarkan kolom F
lastRow = ws.Cells(ws.Rows.Count, "F").End(xlUp).Row
' Menentukan kolom terakhir berdasarkan baris 12
lastCol = ws.Cells(12, ws.Columns.Count).End(xlToLeft).Column
' FUNGSI BARIS
' Menyembunyikan baris yang isinya 0 (baik string maupun angka 0)
For i = 12 To lastRow
isRowEmpty = True
' Memeriksa setiap kolom dari F hingga kolom terakhir
For j = 6 To lastCol ' Kolom F adalah kolom ke-6
' Ambil nilai sel
cellValue = ws.Cells(i, j).Value
' Memeriksa jika nilai sel adalah 0 (angka) atau "0" (string)
If Len(Trim(cellValue)) <> 0 And cellValue <> 0 And cellValue <> "0" Then
isRowEmpty = False
Exit For ' Keluar jika menemukan nilai non-0
End If
Next j
' Jika semua sel di baris ini adalah 0, sembunyikan baris
If isRowEmpty Then
ws.Rows(i).Hidden = True
End If
Next i
' FUNGSI KOLOM
' Menyembunyikan kolom yang isinya 0 (baik string maupun angka 0)
For j = lastCol To 6 Step -1 ' Mulai dari kolom terakhir
isColEmpty = True
' Memeriksa setiap baris dari baris 12 hingga baris terakhir
For i = 12 To lastRow
' Ambil nilai sel
cellValue = ws.Cells(i, j).Value
' Memeriksa jika nilai sel adalah 0 (angka) atau "0" (string)
If Len(Trim(cellValue)) <> 0 And cellValue <> 0 And cellValue <> "0" Then
isColEmpty = False
Exit For ' Keluar jika menemukan nilai non-0
End If
Next i
' Jika semua sel di kolom ini adalah 0, sembunyikan kolom
If isColEmpty Then
ws.Columns(j).Hidden = True
End If
Next j
Next ws ' Lanjutkan ke sheet berikutnya yang dipilih
MsgBox "Proses penyembunyian baris dan kolom selesai untuk semua sheet yang dipilih!", vbInformation
End Sub