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