• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Şartlı Sütün Gizleme

Katılım
13 Aralık 2017
Mesajlar
9
Excel Vers. ve Dili
2013
Merhabalar,
Uzun bir süre araştırdım fakat yapamadım sizden yardım istemek zorunda kaldım. Benim sorunum şu;
H14-I14-J14-K14-L14 hücrelerinin 2 durumu var. Ya 0 olacak yada 1. Eğer bu belirtilen hücreler sıfır değerinde ise o sütün gizlenecek bir yada daha büyük bir sayı ise acık kalacak. Değerler başka bir yerden toplanarak geliyor ben oynama yaptıkça açılıp kapanacak bir kod lazım. Şimdiden ilgilenen arkadaşlara çok teşekkür ederim.
Saygılarımla...
 
Merhaba, foruma hoşgeldiniz.

Sorunuzu gerçek belgenizle aynı yapıda, belirttiğiniz hücrelerdeki formüller içerisinde olacak şekilde
bir örnek belge üzerinden sorarsanız daha hızlı sonuca ulaşırsınız.

Örnek belge yükleme yöntemine ilişkin kısa açıklama cevabımın altındaki İMZA bölümünde var.
.
 
H14 için ya 1 ya da 0 olur demişsiniz ana gönderdiğiniz dosyada 2 yazıyor.

Veriler başka yerden toplanarak geliyor demişsiniz ama dosyanızda veriler el ile girilmiş.

Bu durumda çözüm bulamayız maalesef. Dosyanızda hangi hücrelerde ne olduğunda hangi hücrelerin değişmesi gerektiğini daha açık belirtin lütfen.
 
Öncelikle özür dilerim aslında bilgiler yanlış değil kullandığım format çok büyük onu atmak istemedim sadece işlem yapacağım sayfayı başka bir excele kopyaladım ve evet iki durum var ben yanlış yazmışım, ya sıfır yada sıfırdan büyük. Sizden ricam o sayfa üzerinde kodları yazmanız tabi mümkünse. Teşekkür ederim.
 
Diyelim ki H14 0 olduğu için H sütununu gizledik. Sayfada ne olduğunda H14 0'dan büyük oluyor? Eğer H7 H8 gibi hücrelere veri girince değişiyorsa gizlenmiş olan H7 hücresine nasıl veri gireceksiniz? H7'ye veri girmiyor da başka bir yerden formülle alıyorsanız o veri nerede?
 
Merhaba.

Sanırım YUSUF Bey müsait değil, kendilerinin müsadesiyle.

-- Alt taraftan Sayfa2'nin (elle veri girişi yapılan sayfa) adına fareyle sağ tıklayıp KOD GÖRÜNTÜLEyi seçin,
-- Açılan VBA ekranında sağdaki BOŞ alana aşağıdaki kod'u yapıştırın,
-- Belgeyi MAKRO İÇERİR olacak şekilde kaydedin.
.
Kod:
[B]Private Sub Worksheet_Change(ByVal Target As Range)[/B]
If Intersect(Target, [[B][COLOR="Blue"]A2:E11[/COLOR][/B]]) Is Nothing Then Exit Sub
For brn = 1 To 5
    Sheets("Sayfa1").Columns(brn).EntireColumn.Hidden = False
    If WorksheetFunction.Sum(Range(Cells(1, brn), Cells(11, brn))) = 0 Then _
        Sheets("Sayfa1").Columns(brn).EntireColumn.Hidden = True
Next
[B]End Sub[/B]
 
Öncelikle her ikinize sonsuz teşekkürler kod çalışıyor fakat bir kaç sorunum var. İlk olarak alttaki linkte örneği değiştirdim çünkü önceki örnekte sayfa1 ve sayfa2 deki hücreler birbirinin aynısıydı ben kodu kendi formatıma alırken zorlandım şimdiki benim formatımın aynısı o yüzden sizden rica ediyorum yeni gönderdiğim excele bakarsanız beni çok mutlu edersiniz. İkinci olarak kod görüntüle deyip de sizin kodu oraya yapıştırdığım da "Aşağıdaki özellikler makro içermeyen çalışma kitaplarına kayıt edilemez" diye bir ibare ve evet hayır seçeneği çıkıyor. Evet diyorum yukarıdaki play butonuna bastığımda yeni makro kayıt etme ekranı açılıyor. Kodu bir şekilde çalıştırdım fakat exceli kapatıp yeniden açtığımda sayfa2 ile oynadığımda hiçbir değişiklik olmuyor ve kod görüntüle dediğimde kod sayfası boş oluyor.
link:http://s3.dosya.tc/server13/ftz1ow/ORNEK_1.xlsx.html
 
Sayın Ömer Baran'ın kodlarını aşağıdaki şekilde kullanabilirsiniz:

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [F3:J12]) Is Nothing Then Exit Sub

For brn = 9 To 13
    If Sheets("Teklif Formatı").Cells(14, brn) = 0 Then
        Sheets("Teklif Formatı").Columns(brn).EntireColumn.Hidden = True
    Else
        Sheets("Teklif Formatı").Columns(brn).EntireColumn.Hidden = False
    End If
Next
End Sub

Makro içeren dosyaların çalışması için dosyayı "makro içerebilen excel dosyası" olarak farklı kaydetmelisiniz. Uzantısı xlsm'dir. O belirttiğiniz uyarıda Hayır'ı seçip farklı kaydet işleminde dosya türünü değiştirerek devam etmeniz gerekir.
 
şimdi anlamadıgım bir olay var örnek excelde tamam sorunsuz çalışıyor Allah razı olsun. Ama kendi formatımda yapamadım formatı rar dosyasına koyup yükledim buyurun bir inceleyin lütfen. Birde sizden ricam F3:J12 degilde aşagıda toplamlar var oraya bağlı olarak gizleme yapsa olur mu? Örnek veriyorum D kolonuna 1 adet işaretledik sag tarafta pano adetini 1 yaptığımızda toplam d kolonu sayısı 1 oluyor adet ile çarparak geliyor. Orayı seçmemiz daha güzel olur.
link:http://www.dosya.tc/server10/pinwrt/Yeni_WinRAR_arsivi.rar.html
 
Kodlar bir hücrede el ile yapılan değişikliğe bağlı olarak çalışırlar. Dolayısıyla toplam satırı bu iş için uygun değil.
 
Pekiala öyle olsun. Örnek dosyayı incelediniz mi hiç kod çalışmıyor el ile değer girdiğimde teklif formatı kısmındaki sütunları değere bakmaksızın gizliyor ve toplamlar kısmında yaptığım değişiklikle açılmıyor. Sorun var gibi yardımınızı bekliyorum..
 
Şu anda mobilden baktığımdan dosyayı inceleyemiyorum. Ancak verdiğiniz örnek dosyada denedikten sonra göndermiştim. Bilgisayar başına geçince bakarım inşallah.
 
Bu arada önce de belirttiğim gibi kod toplam kısmına bağlı değil. Bu nedenle toplam kısmını değiştirdiğinizde çalışmaması normal.

Konuyu uzatmamak adına gerçek dosyanızla tamamen aynı yapıda olan ve hangi hücreyi değiştirdiğinizde ne yapılmasını istediğiniz şekilde dosyayı güncellerseniz iyi olur.
 
Benim dosyam bu
link:http://www.dosya.tc/server10/pinwrt/...rsivi.rar.html
İstediğim olayı zaten anlatmıştım. Toplamlar kısmındaki F3 İLE J27 arasında sıfırdan farklı bir deger olursa teklif formatındaki I ile M sütunları dahil arasındaki sütunlar değere bağlı olarak gizlenecek hepsi bu. Örnek toplamlar D kolonu isimli sütunda bir değer yoksa teklif formatı kısmındaki D kolonu yazan sütun gizlenecek var ise açılacak.
 
16. mesajdaki dosyanızı indiremedim ancak 11. mesajdaki dosyanızı indirdim.

Verdiğimiz kodları dosyanıza uyarlayamamışsınız maalesef. Örnek dosyanızda toplam satırı 14. satırda olduğu için kod da 14. satırdaki değere bakarak gizleme ya da açma işlemini yapıyordu. Ancak 11. mesajdaki dosyanızda toplam satırınız 14. satırda değil 63. satırda.

Ayrıca hedef olarak yine örnek dosyanıza göre E3:J12 aralığını seçmiştik ama asıl dosyanızda E3:J27 olması gerekiyorken siz uyarlarken F30:J30 olarak yazmışsınız. Hedef yani Target olarak belirlediğimiz hücreler hangi hücrede el ile değişiklik yapıldığında kodların çalışmasını istediğimiz hücrelerdir. F30:J30 hücrelerini el ile değiştirmediğiniz için kod çalışmaz doğal olarak.

Ayrıca hedefi doğru belirlemiş olsaydınız bile kontrol edilecek satırı 63 olarak değiştirmediğiniz için yine doğru sonuç vermezdi.

Kısacası kodun asıl dosyanızda istediğiniz sonucu vermemesi çok normal. Bu hataya düşülmemesi için birebir aynı dosyayı (gerçek veriler olmadan) yüklemelerini istiyoruz kullanıcılardan. Şimdiye kadar farklı yapıda dosya yükleyip de kendisine uyarlayabilen göremedim maalesef.

11. mesajdaki kodlarınız şu şekilde:

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [[COLOR="Red"]F30:J30[/COLOR]]) Is Nothing Then Exit Sub

For brn = 9 To 13
    If Sheets("Teklif Formatı").Cells([COLOR="red"]14[/COLOR], brn) = 0 Then
        Sheets("Teklif Formatı").Columns(brn).EntireColumn.Hidden = True
    Else
        Sheets("Teklif Formatı").Columns(brn).EntireColumn.Hidden = False
    End If
Next
End Sub

Olması gereken hali şu şekilde:

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [[COLOR="red"]E3:J27[/COLOR]]) Is Nothing Then Exit Sub

For brn = 9 To 13
    If Sheets("Teklif Formatı").Cells([COLOR="red"]63[/COLOR], brn) = 0 Then
        Sheets("Teklif Formatı").Columns(brn).EntireColumn.Hidden = True
    Else
        Sheets("Teklif Formatı").Columns(brn).EntireColumn.Hidden = False
    End If
Next
End Sub
 
Şöyle daha doğru oldu gibi:

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [E3:J27, Z3:Z27]) Is Nothing Then Exit Sub

For brn = 9 To 13
    If Sheets("Teklif Formatı").Cells(63, brn) = 0 Then
        Sheets("Teklif Formatı").Columns(brn).EntireColumn.Hidden = True
    Else
        Sheets("Teklif Formatı").Columns(brn).EntireColumn.Hidden = False
    End If
Next
End Sub
 
Her ikinizede teşekkürlerimi sunarım arkadaşlar sorunsuz çalışıyor. Allah razı olsun Gerçekten içtenlikle söylüyorum.
 
Geri
Üst