Satıra göre süzüp boş sütunları gizlemek.

Katılım
22 Ağustos 2014
Mesajlar
49
Excel Vers. ve Dili
Ofis 365 Türkçe
Arkadaşlar merhaba, elimde bir sevkiyat programı mevcut. günlük olarak sevkiyatların ve bu sevkiyatlarda hangi firmaya hangi ürünün gideceğini içeren bir tablo.



bu tabloda çok fazla sütun var. mecburen bu sütunlar olmak zorunda çünkü ürün ağacı bu şekilde. benim sorunum; sütunlar çok fazla olduğu için çok karışık ve yazıcıdan çıktığında çok küçük olması. satırlara göre süzme işlemi yapıp bir sevkiyatta veya tamamen o sayfada boş kalmış sütunları gizleyebilirsem daha anlaşılabilir ve sade olarak bir program ortaya çıkartmış olacağım. ancak bayilerin sıralamasının da değişmemesi gerekiyor. çünkü belirli bir rotaya göre araçlar yol yapıyorlar.

D365 sistemi kullanıyorum ama lojistik eklentisi olmadığı için malesef sevkiyat planlarını bu şekilde excelden yapmak zorunda kalıyoruz. bunu nasıl gerçekleştirebiliriz acaba?
 

volki_112

Altın Üye
Katılım
29 Eylül 2023
Mesajlar
755
Excel Vers. ve Dili
2019 Türkçe
Altın Üyelik Bitiş Tarihi
13-12-2029
Arkadaşlar merhaba, elimde bir sevkiyat programı mevcut. günlük olarak sevkiyatların ve bu sevkiyatlarda hangi firmaya hangi ürünün gideceğini içeren bir tablo.



bu tabloda çok fazla sütun var. mecburen bu sütunlar olmak zorunda çünkü ürün ağacı bu şekilde. benim sorunum; sütunlar çok fazla olduğu için çok karışık ve yazıcıdan çıktığında çok küçük olması. satırlara göre süzme işlemi yapıp bir sevkiyatta veya tamamen o sayfada boş kalmış sütunları gizleyebilirsem daha anlaşılabilir ve sade olarak bir program ortaya çıkartmış olacağım. ancak bayilerin sıralamasının da değişmemesi gerekiyor. çünkü belirli bir rotaya göre araçlar yol yapıyorlar.

D365 sistemi kullanıyorum ama lojistik eklentisi olmadığı için malesef sevkiyat planlarını bu şekilde excelden yapmak zorunda kalıyoruz. bunu nasıl gerçekleştirebiliriz acaba?
dosyanızı paylaşın buna göre bir makro yazılabilir.
dosya paylaşım sitelerine yukleyip link paylaşabilirsiniz.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,597
Excel Vers. ve Dili
2019 Türkçe
Merhaba.

Verilerinizin 4. satırdan başladığı varsayılmıştır, farklı satırdan başlıyorsa For Bak = 4 To Cells(Rows.Count, "A").End(xlUp).Row satırındaki 4'ü değiştirin

Boş olup olmadığı kontrol edilecek satırların A:Z aralığında olduğu varsayılmıştır, eğer farklıysa Set Aralik = Range("A" & Bak & ":Z" & Bak) satırındaki "A" ve "Z" harflerini değiştirin.

Kod:
Sub BoslariGizle()
    Dim Bak As Long
    Dim Aralik As Range
    For Bak = 4 To Cells(Rows.Count, "A").End(xlUp).Row
        Set Aralik = Range("A" & Bak & ":Z" & Bak)
        If Application.WorksheetFunction.CountA(Aralik) = 0 Then
            Rows(Bak).Hidden = True
        Else
            Rows(Bak).Hidden = False
        End If
    Next
End Sub

Sub HepsiniGoster()
    Cells.EntireRow.Hidden = False
End Sub
 
Katılım
22 Ağustos 2014
Mesajlar
49
Excel Vers. ve Dili
Ofis 365 Türkçe
dosyanızı paylaşın buna göre bir makro yazılabilir.
dosya paylaşım sitelerine yukleyip link paylaşabilirsiniz.
Selamlar Örnek Dosyayı ekledim,



Merhaba.

Verilerinizin 4. satırdan başladığı varsayılmıştır, farklı satırdan başlıyorsa For Bak = 4 To Cells(Rows.Count, "A").End(xlUp).Row satırındaki 4'ü değiştirin

Boş olup olmadığı kontrol edilecek satırların A:Z aralığında olduğu varsayılmıştır, eğer farklıysa Set Aralik = Range("A" & Bak & ":Z" & Bak) satırındaki "A" ve "Z" harflerini değiştirin.

Kod:
Sub BoslariGizle()
    Dim Bak As Long
    Dim Aralik As Range
    For Bak = 4 To Cells(Rows.Count, "A").End(xlUp).Row
        Set Aralik = Range("A" & Bak & ":Z" & Bak)
        If Application.WorksheetFunction.CountA(Aralik) = 0 Then
            Rows(Bak).Hidden = True
        Else
            Rows(Bak).Hidden = False
        End If
    Next
End Sub

Sub HepsiniGoster()
    Cells.EntireRow.Hidden = False
End Sub
Merhaba, Aslında çalıştı ama benim amacım satırlardaki boşlukları değil sütunlardaki boş olanları kaldırmamın gerekmesidir. mesela DİĞER bölümündeki sütunlar tamamen boş. sütun filtreleme yaparak satırları silebiliyoruz zaten ama satır filtreleme yaparak sütunlardaki boşları kaldıramıyoruz.
Örneğin;
S sütununda hiç ürün girmeyecek görünüyor alttaki satırlarında hiç rakam yok. bu sütunun gizlenmesini istiyorum.

ekli dosya üzerinden tam konum verebilirsem, C5- AM42 arasındaki sütunları dikkate alarak, o sütunda hiçbir veri yoksa o sütun tamamen gizlensin demeye çalışmıştım.
 
Son düzenleme:

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,597
Excel Vers. ve Dili
2019 Türkçe
Üstteki tabloda K sütunu boş olduğu için gizlenirse alttaki tabloda K sütununda dolu hücre var. Bu durumda nasıl bir yol izlenmesi gerekiyor?
 
Katılım
22 Ağustos 2014
Mesajlar
49
Excel Vers. ve Dili
Ofis 365 Türkçe
Üstteki tabloda K sütunu boş olduğu için gizlenirse alttaki tabloda K sütununda dolu hücre var. Bu durumda nasıl bir yol izlenmesi gerekiyor?
alttaki tabloyu baz almayıp tek tablo şeklinde ele alabiliriz. eğer bu proje gerçekleşir ise tek tabloda ilerlemeyi düşünüyorum. ayrıca ana başlıkların yerleri değişebilir. Sayfa 2de biraz farklı bir bakış açısı ile yapabilirmiyim diye değiştirmiştim yapısını. sondaki yükleme saati plaka şoför bilgileri başa da gelebilir yani ürün tablosundan ayırabiliriz.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,597
Excel Vers. ve Dili
2019 Türkçe
Aşağıdaki kodu deneyiniz.

Verilerin olduğu alana bir değişiklik yaparsanız Set Aralik = Range("C5:AM42") satırındaki adres kısmını düzenleyiniz.

Kod:
Sub BoslariGizle()
    Dim Bak As Range
    Dim Aralik As Range
    Dim Alan  As Range
    
    Set Aralik = Range("C5:AM42")
    
    HepsiniGoster
    For Each Alan In Aralik.Columns
        If Application.WorksheetFunction.CountA(Alan) = 0 Then
            Alan.Hidden = True
        Else
            Alan.Hidden = False
        End If
    Next
End Sub

Sub HepsiniGoster()
    Cells.EntireRow.Hidden = False
End Sub
 
Katılım
22 Ağustos 2014
Mesajlar
49
Excel Vers. ve Dili
Ofis 365 Türkçe
Aşağıdaki kodu deneyiniz.

Verilerin olduğu alana bir değişiklik yaparsanız Set Aralik = Range("C5:AM42") satırındaki adres kısmını düzenleyiniz.

Kod:
Sub BoslariGizle()
    Dim Bak As Range
    Dim Aralik As Range
    Dim Alan  As Range
   
    Set Aralik = Range("C5:AM42")
   
    HepsiniGoster
    For Each Alan In Aralik.Columns
        If Application.WorksheetFunction.CountA(Alan) = 0 Then
            Alan.Hidden = True
        Else
            Alan.Hidden = False
        End If
    Next
End Sub

Sub HepsiniGoster()
    Cells.EntireRow.Hidden = False
End Sub
Teşekkürler tamda istediğim gibi oldu. elinize sağlık, tümünü gösterde bir sorun vardı ben hallettim onu.
konu ile alakasız ama bir sorum daha olacaktı. Ağdaki dosyalarda güvenlikten dolayı makro kullanamıyoruz, bunu aşmanın bir yolu mevcut mu?
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,597
Excel Vers. ve Dili
2019 Türkçe
Makro güvenliği açıksa makro kullanamazsınız.
 
Üst