• DİKKAT

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

Makro komutları

besen

Altın Üye
Katılım
23 Mart 2007
Mesajlar
794
Excel Vers. ve Dili
Microsoft Office Professional Plus 2019
İngilizce
Altın Üyelik Bitiş Tarihi
11-12-2029
Merhaba iki tane ayrı ayrı makro komutu var.
Birinci komut: tüm SQL sorgularını güncelliyorum.

Sub Refresh()
'
' Refresh Macro
'
' Keyboard Shortcut: Ctrl+r
'
ActiveWorkbook.RefreshAll
End Sub

Bu komutu tek bir sayfa için yapmak istersem nasıl düzeltmem gerekir.

İkinci komut: Sayfadan çıkınca otomatik gizleniyor.

Private Sub Worksheet_Deactivate()
Me.Visible = xlHidden
End Sub

Onlarca sayfa var. Açık kalmasını istediklerime gidip tek tek bu makroyu ya siliyor ya da tırnak içine alıp pasif yapıyorum, sonra tekrar düzeltiyorum.
Bunu tek bir komutla gizle göster yapabilir miyiz.

Teşekkür ederim.
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
1,254
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Aktif Sayfayı Güncelleme Makrosu
Kod:
Sub RefreshCurrentSheet()
    Dim pc As PivotTable
    Dim lo As ListObject

    For Each pc In ActiveSheet.PivotTables
        pc.RefreshTable
    Next pc

    For Each lo In ActiveSheet.ListObjects
        If lo.SourceType = xlSrcExternal Then
            lo.QueryTable.Refresh BackgroundQuery:=False
        End If
    Next lo
End Sub
otomatik gizleme makronuz
Kod:
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
    Dim Istisnalar As Variant
    Dim SayfaAdi As Variant
    Dim Gizle As Boolean   
    
    Istisnalar = Array("AnaSayfa", "Data", "Dashboard")
    Gizle = True

    For Each SayfaAdi In Istisnalar
        If Sh.Name = SayfaAdi Then
            Gizle = False
            Exit For
        End If
    Next SayfaAdi

    If Gizle Then Sh.Visible = xlSheetHidden
End Sub
tüm sayfalar görünür olsun dersenizde
Kod:
Sub TumSayfalariGoster()
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        ws.Visible = xlSheetVisible
    Next ws
End Sub
 

besen

Altın Üye
Katılım
23 Mart 2007
Mesajlar
794
Excel Vers. ve Dili
Microsoft Office Professional Plus 2019
İngilizce
Altın Üyelik Bitiş Tarihi
11-12-2029
Aktif Sayfayı Güncelleme Makrosu
Kod:
Sub RefreshCurrentSheet()
    Dim pc As PivotTable
    Dim lo As ListObject

    For Each pc In ActiveSheet.PivotTables
        pc.RefreshTable
    Next pc

    For Each lo In ActiveSheet.ListObjects
        If lo.SourceType = xlSrcExternal Then
            lo.QueryTable.Refresh BackgroundQuery:=False
        End If
    Next lo
End Sub
otomatik gizleme makronuz
Kod:
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
    Dim Istisnalar As Variant
    Dim SayfaAdi As Variant
    Dim Gizle As Boolean  
   
    Istisnalar = Array("AnaSayfa", "Data", "Dashboard")
    Gizle = True

    For Each SayfaAdi In Istisnalar
        If Sh.Name = SayfaAdi Then
            Gizle = False
            Exit For
        End If
    Next SayfaAdi

    If Gizle Then Sh.Visible = xlSheetHidden
End Sub
tüm sayfalar görünür olsun dersenizde
Kod:
Sub TumSayfalariGoster()
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        ws.Visible = xlSheetVisible
    Next ws
End Sub

Teşekkür ederim, deneyeceğim. Aktif sayfayı değil de aktif sayfadayken benim istediğim sayfayı güncellesin istiyorum.
 

besen

Altın Üye
Katılım
23 Mart 2007
Mesajlar
794
Excel Vers. ve Dili
Microsoft Office Professional Plus 2019
İngilizce
Altın Üyelik Bitiş Tarihi
11-12-2029
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Dim Istisnalar As Variant
Dim SayfaAdi As Variant
Dim Gizle As Boolean

Istisnalar = Array("AnaSayfa", "Data", "Dashboard")
Gizle = True

For Each SayfaAdi In Istisnalar
If Sh.Name = SayfaAdi Then
Gizle = False
Exit For
End If
Next SayfaAdi

If Gizle Then Sh.Visible = xlSheetHidden
End Sub


Bu makro alt F8 yapınca çıkmıyor.
 

besen

Altın Üye
Katılım
23 Mart 2007
Mesajlar
794
Excel Vers. ve Dili
Microsoft Office Professional Plus 2019
İngilizce
Altın Üyelik Bitiş Tarihi
11-12-2029
İstediklerimi ChatGPT’ye yazdım.
Makrolar çalıştı.

sayfaları gizleme


Sub TumSayfalariGizle()



Dim ws As Worksheet



Application.ScreenUpdating = False



For Each ws In ThisWorkbook.Worksheets

If ws.Name <> "MENU" Then

ws.Visible = xlSheetVeryHidden

End If

Next ws



Application.ScreenUpdating = True



End Sub

Aktif sayfada başka bir sayfayı güncelleme


Sub RefreshMuhasebeSheet()

Dim ws As Worksheet
Dim pc As PivotTable
Dim lo As ListObject

Set ws = ThisWorkbook.Worksheets("muhasebe")

'Pivot tabloları yenile
For Each pc In ws.PivotTables
pc.RefreshTable
Next pc

'Tabloları yenile
For Each lo In ws.ListObjects
On Error Resume Next
If Not lo.QueryTable Is Nothing Then
lo.QueryTable.Refresh BackgroundQuery:=False
End If
On Error GoTo 0
Next lo

End Sub
 
Üst