• DİKKAT

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

Sütun gizleme makrosu yardım

Katılım
6 Nisan 2017
Mesajlar
78
Excel Vers. ve Dili
2010
J'den DE'ye kadar olan sütun aralığında bir önceki sütundaki hücreye değer girildiğinde sütun açma

J5 hücresine değer girdiğimde otomatik 3 sütun daha göstersin diğerlerini DE5 e kadar gizlesin
K5 hücresine değer girdiğimde otomatik 3 sütun daha göstersin diğerlerini DE5 e kadar gizlesin
L5 hücresine değer girdiğimde otomatik 3 sütun daha göstersin diğerlerini DE5 e kadar gizlesin
....


işlemini yaptıracak kod hakkında bilgisi olan arkadaş var mı?
 
bu siteden yardım alarak programlama yaptım yaklaşık 20 çalışma sayfaiı var ve son sayfada son işlemim kaldı acil yardımınıza ihtiyacım var

J5 hücresine değer girdiğimde sağ tarafına sütun ekleme
eklenen sütun K5 hücresine değer girdiğimde sağ tarafına sütun ekleme
eklenen sütun L5 hücresine değer girdiğimde sağ tarafına sütun ekleme
......

böyle bir kod da işimi görür ancak önceki sütunun formülleri şekillendirmesi veri doğrulamaları vs de geçmesi lazım o yüzden sütun gizleme olursa daha rahat olacak

sütun gizle olarak kod yazmak kolay ise hücreye değer girildiğinde bir sonraki sütun göstersin gibi bir kod da iş görür

acil yardım!!!
 
Son düzenleme:
Aşağıdaki kodlar işinize yarar mı? Örnek dosya olsa daha iyi olacak.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("j5")) Is Nothing Then
        Columns("N:DE").EntireColumn.Hidden = True
    ElseIf Not Intersect(Target, Range("k5")) Is Nothing Then
        Columns("M:DE").EntireColumn.Hidden = True
    ElseIf Not Intersect(Target, Range("k5")) Is Nothing Then
        Columns("O:DE").EntireColumn.Hidden = True
    End If
End Sub
 
Aşağıdaki kodlar işinize yarar mı? Örnek dosya olsa daha iyi olacak.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("j5")) Is Nothing Then
        Columns("N:DE").EntireColumn.Hidden = True
    ElseIf Not Intersect(Target, Range("k5")) Is Nothing Then
        Columns("M:DE").EntireColumn.Hidden = True
    ElseIf Not Intersect(Target, Range("k5")) Is Nothing Then
        Columns("O:DE").EntireColumn.Hidden = True
    End If
End Sub

kodu denedim ilgilendiğiniz için teşekkür ederim örneği ekledim bi daha bakabilirmisiniz
 
Sizin istediğiniz örneğe göre 5 satır J ile DE arasında boş olan sütunları gizlemek. Doğru mudur? Yoksa veri girilen Örneğin S5 den itibaren 3 sütun kalsın gerisi gizlensin mi?
 
özür dilerim örneğe göre 5 satır J ile DE arasında boş olan sütunları gizlemek
ancak veri girilebilmesi için sıradaki 3-5 sütunu görünür yapmak
 
Son düzenleme:
Aşağıdaki kodları sayfanın kod bölümüne ekleyip deneyin.
Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim a As Integer
gosterr
On Error Resume Next
For a = 19 To 106
    If Cells(5, a) <> 0 Then
        Columns(a).Hidden = False
    Else
        Columns(a + 3).Hidden = True
    End If
Next a

End Sub
Sub gosterr()
Columns.Hidden = False
End Sub
 
teşekkür ederim makro çalışıyor ancak

denediniz mi bilmiyorum ama başka bir problem oluştu
 
herhangi bir hücreye tıkladığımda sütunlar açılıyor tekrar kapanıyor.

işleri kolaylaştıralım derken işlem yapılmaz hale geldi buna bir çözüm var mı?

çözüm yoksa otomatik şütun ekleme sorunu çözer mi?
 
Son düzenleme:
Aşağıdaki şekilde deneyin. Yalnız 5. satırda j5:de5 aralığında veri girdiğinizde ya tab ile geçin ya da enter ile alt satıra geçip tekrar yukarı çıkınca çalışıyor.
Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim a As Integer
If Not Intersect(Target, Range("j5:DE5")) Is Nothing Then
gosterr
On Error Resume Next
For a = 19 To 106
    If Cells(5, a) <> 0 Then
        Columns(a).Hidden = False
    Else
        Columns(a + 3).Hidden = True
    End If
Next a
End If
End Sub
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

yazılı satır sarı uyarı verdi
 
Örnek dosyanız ektedir. Bende hata vermiyor.
 

Ekli dosyalar

sütun ekleme makrosunu denesek nasıl olur?
 
Son düzenleme:
Geri
Üst