menyembunyikan kolom berdasarkan data yang dipilih

  1. ‹ Older
  2. 6 tahun lalu

    Caton

    12 Agu 2018 Terverifikasi Indonesia + 20.101 Poin

    Mas @Farud ...

    Tidak perlu minta maaf mas ... :)

    Saya hanya memberikan saran bagaimana langkah awal yang dapat mas lakukan, karena saya pun masih melakukan hal yang sama. Di forum ini tujuan kita memang belajar dan berdiskusi tentang formula dan macro Excel. Jangan sungkan bertanya jika tidak tahu atau tidak paham. InsyaAllah, rekan-rekan yang mampu akan membantu memberikan jawaban atau mencarikan solusi.

    Tetap aktif berdiskusi mas @Farud ... Semoga ilmunya makin bertambah.

  3. Di sunting 6 tahun lalu oleh manweljs_

    @farud ...jawabannya sudah hampir sesuai ...

    sebenarnya sudah sesuai, karena kolom yang diinginkan terlihat sesuai dengan pertanyaannya :P

    @farud ...apabila data yang dipilih "I" maka kolom yang di inginkan terlihat...

    mas @Caton Yang kami berikan ini khan hanya sebagai contoh saja...

    iya nih, gara-gara contoh yang mas berikan saya juga ikut2an hampir sesuai :D ;)

  4. maaf mas caton ada pertanyaan tambahan dalam pembahasan ini,jika di sheet data kita pilih kelas I atau II maka di sheet hasil di garis 20 dan 21 ikut tersembunyi dan ketika dipilih kelas III dan IV garis itu kembali muncul

  5. Caton

    13 Agu 2018 Terverifikasi Indonesia + 20.101 Poin

    Mas @Farud ...

    ... jika di sheet data kita pilih kelas I atau II maka di sheet hasil di garis 20 dan 21 ikut tersembunyi dan ketika dipilih kelas III dan IV garis itu kembali muncul ...

    Garis 20 dan 21 itu garis apa atau garis yang mana mas? Garis atau Baris ... :) Saya gak paham ... :D

  6. iya baris maksudnya mas

  7. Caton

    13 Agu 2018 Terverifikasi Indonesia + 20.101 Poin

    Mas @Farud ...

    Asli ... saya tidak tahu baris 20 dan 21 yang mana ... :D Di PC saya, mau pilih kelas berapun, baris 20 dan baris 21 tetap terlihat. Di script yang saya buat tidak ada satu pun baris script untuk menyembunyikan baris. Kasih screen shoot saja mas ...

  8. ini mas di sheet hasil...

  9. dibagian yg saya tandai biru langit

  10. Caton

    13 Agu 2018 Terverifikasi Indonesia + 20.101 Poin
    Di sunting 6 tahun lalu oleh Caton

    Mas @Farud ...

    Saya lagi ada pekerjaan, jadi gak fokus baca pertanyaannya ... :D Oke, yang mas maksud, kalau dipilih kelas I atau kelas II, maka baris 20 dan 21 disembunyikan. Kalau dipilih kelas II atau kelas IV, maka baris 20 dan 21 ditampilkan. Begitu khan?! Coba ubah scriptnya menjadi:

    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Address(0, 0) = "B4" Then
            Dim lIdx As Long
            Dim xArray
            
            xArray = [{"I", "C:F";"II", "G:J";"III", "K:N";"IV","O:R"}]
            For lIdx = 1 To 4
                If Target.Value = xArray(lIdx, 1) Then
                    With Sheet2
                        .Range("C:AB").Columns.Hidden = True
                        .Range(xArray(lIdx, 2)).Columns.Hidden = False
                        '.Activate
                    End With
                    Sheet2.[20:21].Rows.Hidden = (lIdx < 3)
                    Exit For
                End If
            Next
        End If
    End Sub

    Semoga sesuai ... ;)

  11. Alhamdulillah sudah bisa mas caton...seandainya kelasnya ada 6 kelas mas selain script ini " xArray = [{"I", "C:F";"II", "G:J";"III", "K:N";"IV","O:R"}] " yang diubah saya harus ngubah yang mana lagi mas.

  12. Caton

    13 Agu 2018 Terverifikasi Indonesia + 20.101 Poin

    Mas @Farud ...

    Terlampir dengan contoh script yang sedikit berbeda ... :)

  13. wach terimakasih banyak mas caton....

  14. Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = [B4].Address Then
    Dim lIdx As Long

    On Error Resume Next

    lIdx = Application.Match(UCase$(Trim$(UCase$(Target))), [{"I","II","III","IV","V","VI"}], 0)
    If Err.Number = 0 Then
    With Sheet2
    .Columns("C:Z").Hidden = True
    .Columns((lIdx - 1) * 4 + 3).Resize(ColumnSize:=4).Hidden = False
    Debug.Print .Columns((lIdx - 1) * 4 + 3).Column
    Sheet2.[20:21].Rows.Hidden = (lIdx < 3)
    '.Select
    End With
    End If

    Err.Clear
    On Error GoTo 0
    End If
    End Sub

    dari script ini saya ingin menyembunyikan juga baris 13 di sheet 4,bagaimana penambahan scriptnya,,mohon bantuannya

  15. Caton

    14 Agu 2018 Terverifikasi Indonesia + 20.101 Poin

    Mas @Farud ...

    Khan sudah ada contohnya pada script tersebut:

    ...
    Sheet2.[20:21].Rows.Hidden = (lIdx < 3)
    ...

    Kalau kondisinya sama seperti sebelumnya:

    ... kalau dipilih kelas I atau kelas II, maka baris 20 dan 21 disembunyikan. Kalau dipilih kelas II atau kelas IV, maka baris 20 dan 21 ditampilkan ...

    tinggal ditambahkan baris script:

    ...
    Sheet4.[13].Rows.Hidden = (lIdx < 3)
    ...

    atau

    ...
    Sheet4.Rows(13).Hidden = (lIdx < 3)
    ...

    atau jika ingin disembunyikan hanya untuk kelas III dan kelas IV:

    ...
    Sheet4.Rows(13).Hidden = (lIdx>2) And (lIdx<5) 
    ...

    Demikian

  16. iya sudah bisa mas caton...terimakasih banyak

  17. Caton

    14 Agu 2018 Terverifikasi Indonesia + 20.101 Poin

    Mas @Farud ...

    ... sudah bisa mas ...

    Terbaik! Begitu dong mas. Dipelajari, dipahami dan dicoba. Jangan khawatir salah, khan bisa diperbaiki ... :)

    ... terimakasih banyak ...

    Sama-sama mas ... :)

  18. mas caton mohon maaf mengganggu waktunya lagi...ini pertanyaan lanjutan dari yang diatas ini mas,dengan script yang diberikan mas caton ini

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = [B4].Address Then
    Dim lIdx As Long

    On Error Resume Next

    lIdx = Application.Match(UCase$(Trim$(UCase$(Target))), [{"1","2","3","4","5","6"}], 0)
    If Err.Number = 0 Then
    With Sheet2
    .Columns("C:Z").Hidden = True
    .Columns((lIdx - 1) * 4 + 3).Resize(ColumnSize:=4).Hidden = False
    Debug.Print .Columns((lIdx - 1) * 4 + 3).Column
    Sheet2.[20:21].Rows.Hidden = (lIdx < 3)
    Sheet4.Rows(13).Hidden = (lIdx < 3)
    '.Select
    End With
    End If

    Err.Clear
    On Error GoTo 0
    End If
    End Sub

    yang di sheet4 bila dipilih 1 atau 2 baris ke13 tersembunyi..nach keinginan saya itu mas apakah bisa ketika baris ke 13 terhidden otomatis lebar baris ke12 jadi tambah lebar,yg semula 15.00 menjadi 25.50 umpanya.dan ketika baris ke13 tidak tersembunyi otomatis baris ke 12 tadi kembali ke lebar yang semula yakni 15.00
    file terlampir

  19. Di sunting 6 tahun lalu oleh manweljs_

    Mas @Caton bantu jawab ya

    @farud
    coba edit menjadi :

    ....
    With Sheet2
        .Columns("C:Z").Hidden = True
        .Columns((lIdx - 1) * 4 + 3).Resize(ColumnSize:=4).Hidden = False
        Debug.Print .Columns((lIdx - 1) * 4 + 3).Column
        If lIdx < 3 Then                        ' jika indexnya kurang dari 3 maka
            Sheet2.[20:21].Rows.Hidden          ' sheet2 baris ke 20:21 sembunyikan
            Sheet4.Rows(13).Hidden = True       ' sheet4 baris ke 13 sembunyi ? iya
            Sheet4.Rows(12).RowHeight = 25.5    ' sheet4 baris ke 12 tingginya jadi 25.5
            Else                                ' jika tidak
            Sheet4.Rows(13).Hidden = False      ' sheet4 baris ke 13 sembunyi ? tidak
            Sheet4.Rows(12).RowHeight = 15      ' sheet4 baris ke 12 tinggnya jadi 15
        End If
     End With
    ....

    semoga dengan penjelasan diatas mas @farud bisa paham dan untuk kedepannya bisa menyesuaikan sendiri sesuai keinginan :)

  20. Caton

    16 Agu 2018 Terverifikasi Indonesia + 20.101 Poin

    Mas @Farud ...

    Untuk baris script:

    Debug.Print .Columns((lIdx - 1) * 4 + 3).Column

    dihapus saja. Itu saya gunakan untuk memastikan indeks kolom sudah sesuai sebelum diterapkan.

  21. terimakasih atas jawabannya mas manweljs dan mas caton...Alhamdulillah sudah bisa mas dan di penjelasan mas manweljs sudah dilengkapi keterangannya.terus terang masalah VBA saya lebih sering copy paste namun dengan begini saya bisa belajar sedikit demi sedikit.terimakasih master2 semua..semoga barokah ilmunya..aamiinn

 

atau Mendaftar untuk ikut berdiskusi!