makro ile satır gizleme

Katılım
3 Haziran 2012
Mesajlar
59
Excel Vers. ve Dili
excel2013 türkçe
Altın Üyelik Bitiş Tarihi
25-12-2021
MERHABA ARKADAŞLAR;

Ekte olan dosyada C6 ile C25 arasındaki rakamlar yok. Makro ile bu satırları nasıl otomatik gizlenebilirim. C5den sonra direk C26 gelmesini istiyorum. mümkünmüdür ???

teşekkür ederim
 

Ekli dosyalar

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,196
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

Bu şekilde deneyin.
Kod:
Sub Gizle()
    Application.ScreenUpdating = False
    Rows("1:26").EntireRow.Hidden = False
    On Error Resume Next
    [C1:C26].SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
    Application.ScreenUpdating = True
End Sub
 
Katılım
3 Haziran 2012
Mesajlar
59
Excel Vers. ve Dili
excel2013 türkçe
Altın Üyelik Bitiş Tarihi
25-12-2021
teşekkür ederim muhteşem olmuş . ama tam olarak beklediğim şudur. gizle iken c6 hücresine otomatik yazı eklendiğinde o hücreyi geri açmasıdır.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,196
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Otomatik işi yapılır fakat, gizli satıra nasıl yazı ekleyeceksiniz? O kısmı tam anlayamadım.
Ekle menüsündeki "Tablo" seçeneğini denediniz mi? Sizin ihtiyacınızı makro olmadan karşılar diye düşünüyorum.
 
Katılım
3 Haziran 2012
Mesajlar
59
Excel Vers. ve Dili
excel2013 türkçe
Altın Üyelik Bitiş Tarihi
25-12-2021
C satırı komple yazıyı başka bir sayfadan otomatik çekiyor. Tablo konusunda oldukça kötüyüm o yüzden açıkçası hiç denemedim nasıl yapılır emin değilim tablodan belkide dediniz gibi makroya ihtiyaç duymadan yapılabilir
 
Katılım
3 Haziran 2012
Mesajlar
59
Excel Vers. ve Dili
excel2013 türkçe
Altın Üyelik Bitiş Tarihi
25-12-2021
Dosyayı tekrar ekledim. ocak sayfası b8 verilerini ='personel kayıt'!B9 sütunundan çekiyor. eğer='personel kayıt'!B9 dolu değilse OCAK B9 kapalı olsun ama ='personel kayıt'!B9 dolunca otomatik olarak OCAK B8 açılsın istiyorum.
 

Ekli dosyalar

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,196
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
VBA ekranındaki "Bu çalışma kitabı" kod bölümüne kopyalayın. "personel kayıt" sayfası hariç tüm sayfalarda gizleme işlemi sayfa aktif olduğunda otomatik gerçekleşecektir.
Kod:
Private Sub Workbook_Open()
    Sheets("personel kayıt").Select
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
  
    Dim son_p As Long, son As Long
  
    If ActiveSheet.Name = "personel kayıt" Then Exit Sub
    son_p = Sheets("personel kayıt").[B:C].Find("*", , , , xlByRows, xlPrevious).Row
    son = Cells(Rows.Count, "D").End(xlUp).Row
    Application.ScreenUpdating = False
    Rows("1:" & son).EntireRow.Hidden = False
    Rows(son_p & ":" & son - 1).EntireRow.Hidden = True
    Application.ScreenUpdating = True
  
End Sub
 
Katılım
3 Haziran 2012
Mesajlar
59
Excel Vers. ve Dili
excel2013 türkçe
Altın Üyelik Bitiş Tarihi
25-12-2021
teşekkür ederim. yenile butonu yaparak kolay hale getirmek mümkün görünüyor
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,196
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Yenile butonuna gerek yok, kodlar sayfa aktif olduğunda otomatik çalışıyor.
Mantık olarak da bu şekilde olması doğru değil mi. Personel kayıt sayfasına veri girdiğiniz zaman ilgili sayfaya geçtiğinizde kodlar kendini güncelleyip gerekli gizlemeyi otomatik yapıyor olacak.
 
Katılım
3 Haziran 2012
Mesajlar
59
Excel Vers. ve Dili
excel2013 türkçe
Altın Üyelik Bitiş Tarihi
25-12-2021
mantığınız doğru ama sanırım benden kaynaklı kodları buçalışmakitabına atamıyorum sayfa1 sayfa2 ye filan sorunsuz kod yazdırıyor ama buçalışmakitabı bölümüne yazmıyor
buçalışma kitabı.JPG
 
Katılım
3 Haziran 2012
Mesajlar
59
Excel Vers. ve Dili
excel2013 türkçe
Altın Üyelik Bitiş Tarihi
25-12-2021
Katılım
3 Haziran 2012
Mesajlar
59
Excel Vers. ve Dili
excel2013 türkçe
Altın Üyelik Bitiş Tarihi
25-12-2021
dosya linki :https://www.dosyaupload.com/jg8g

Üstat bu dosyaya uyarlamaya çalıştım ama olmadı :( sizden ricam buna yardımcı olmanız.

ayrıca kullanışlı bulan arkadaşlar için işe yarar bir şey oldu diye düşünüyorum. ihtiyacı olan arkadaşlar üstünde düzenleme yaparak kullanabilirler. tüm verileri data sayfası 1-81 satırları arasında kayıtlıdır.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,196
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Yeni dosyada yapılmak istenen nedir detaylı açıklar mısınız. Hangi sayfalarda hangi aralıklar dikkate alınacak vs. gibi önemli olan bölümleri detaylandırmanız gerekli.
 
Katılım
3 Haziran 2012
Mesajlar
59
Excel Vers. ve Dili
excel2013 türkçe
Altın Üyelik Bitiş Tarihi
25-12-2021
merhabalar ocak şubat mart diye devam eden sayfalar yeterli olacaktır.diğerleri ya ekranı komple kaplıyor yada açık olması gerektiği için mevcut haliyle kalması gerek.
ocak ayında olan personel mayısta işten ayrıl diyelim bunu mayıstan sonraki aylarda listeden otomatik olarak düşürmek için çözüm öneriniz varsa oda güzel olacaktır.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,196
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Yine "Bu çalışma kitabı" bölümüne kopyalayıp yapıştırın.
Kod:
Private Sub Workbook_Open()
    Sheets("personel kayıt").Select
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
 
    Dim son_p As Long, son As Long
 
    If ActiveSheet.Name = "personel kayıt" Or _
        ActiveSheet.Name = "DATA" Or _
            ActiveSheet.Name = "ANASAYFA" Then Exit Sub
    
    son_p = Sheets("personel kayıt").[B:C].Find("*", , , , xlByRows, xlPrevious).Row
    son = Cells(Rows.Count, "E").End(xlUp).Row

    Application.ScreenUpdating = False
        Cells.EntireRow.Hidden = False
        Rows(son_p & ":" & son - 1).EntireRow.Hidden = True
    Application.ScreenUpdating = True
 
End Sub
 
Katılım
3 Haziran 2012
Mesajlar
59
Excel Vers. ve Dili
excel2013 türkçe
Altın Üyelik Bitiş Tarihi
25-12-2021
çok teşekkür ederim elinize sağlık üstat
Yine "Bu çalışma kitabı" bölümüne kopyalayıp yapıştırın.
Kod:
Private Sub Workbook_Open()
    Sheets("personel kayıt").Select
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)

    Dim son_p As Long, son As Long

    If ActiveSheet.Name = "personel kayıt" Or _
        ActiveSheet.Name = "DATA" Or _
            ActiveSheet.Name = "ANASAYFA" Then Exit Sub
  
    son_p = Sheets("personel kayıt").[B:C].Find("*", , , , xlByRows, xlPrevious).Row
    son = Cells(Rows.Count, "E").End(xlUp).Row

    Application.ScreenUpdating = False
        Cells.EntireRow.Hidden = False
        Rows(son_p & ":" & son - 1).EntireRow.Hidden = True
    Application.ScreenUpdating = True

End Sub
 
Üst