Application.ScreenUpdating = True/False anlamı ne oluyor?

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,026
Excel Vers. ve Dili
2013 Türkçe
Arkadaşlar bazen kodlarda

Application.ScreenUpdating = True
kod
kod
....
Application.ScreenUpdating = False

şeklinde yazıyor.Bu Application.ScreenUpdating ifadeleri ne işe yarıyor ve neden kullanılıyor.Kullanılmazsa ne olur?
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,248
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Ekrana veri yazma
Ekrana veri yaz
 

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,026
Excel Vers. ve Dili
2013 Türkçe
Sn Evren Gizle teşekkür ederim.Ancak aşağıdaki kodda dediğim Application.ScreenUpdating = True/False kısımlarını çıkarttım ama yine aynı işlemi yaptı.

Sub Dagit()
Dim i, RasgeleSayı, NeKadar As Long
Dim Sayı As Integer

NeKadar = Application.WorksheetFunction.Sum(Range("B2:B" & [B65536].End(3).Row)) + 100
Application.ScreenUpdating = False
Columns("D:D").ClearContents
[D1] = "Sayılar"

For i = 2 To [A65536].End(3).Row
Sayı = 0
Do
RastgeleSayı = Int((NeKadar * Rnd) + 1)
If Cells(RastgeleSayı, "D") = "" Then
Sayı = Sayı + 1
Cells(RastgeleSayı, "D") = Cells(i, "A")
End If
Loop Until Sayı = Cells(i, "B")
Next i

Columns("D:D").SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp

Application.ScreenUpdating = True
MsgBox "Dağıtma İşlemi Bitmiştir....", vbOKOnly, "www.excel.web.tr"
End Sub
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,248
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
yapar tabii
hiç yazmazsan bunları,ekrana direk yazar.
Yani vb de kodlar satır satır işlerler
her satırda veya döngü içinde ekarana yazar.
Buda kodların çalışmasını yavaşlatır.
Eğer ekrana yazmaya başlamadan önce false yaparsanız ekrana yazmaz ama hafızaya yazar.en sonunda true yaptığınızda ise hafızada yazılı olanları ekrana bir kerde yansıtır.Siz de ekranda görürsünüz.
true ve false kodlarını yazmassanız ekranı iyi gözlemleyin verileirn satır satır ekrana yansıdığını göreceksiniz.
Birde false kodlkar bitince true şeklinde deneyin.
Kod gereği ekrana yazıların staır satır yazıldığını görmeyeceksiniz.Ancak true yaptıktan sonra tümünü birden ekranda göreceksiniz.:cool:
 

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,026
Excel Vers. ve Dili
2013 Türkçe
Evet Evren Bey haklısınız,şimdi farkettim.Yazmayınca tek tek yazıyor.Bu konuda beni aydınlattığınız için çok teşekkür ederim.
 

Emir Hüseyin Çoban

Destek Ekibi
Destek Ekibi
Katılım
11 Ağustos 2008
Mesajlar
5,892
Excel Vers. ve Dili
Office 2013 Tr - Win10 x64
Kod:
Sub Worde_Aktar()
If Sheets("giriş").OptionButton1 = True Then
Set sy = Sheets("senetyazı")
Set gr = Sheets("giriş")
Application.ScreenUpdating = False
Set WD = CreateObject("Word.Application")
WD.Visible = True
Set Dosya = WD.Documents.Add(DocumentType:=wdNewBlankDocument)
    With WD.Selection.PageSetup
        .TopMargin = WD.CentimetersToPoints(1)
        .BottomMargin = WD.CentimetersToPoints(1)
        .LeftMargin = WD.CentimetersToPoints(1)
        .RightMargin = WD.CentimetersToPoints(1)
    End With
Sheets("senetyazı").Select
ActiveWindow.View = xlPageBreakPreview
Syf_Sys = sy.HPageBreaks.Count + 1
Bsl = 2
grs = 52
Sut = 104
For x = 1 To Syf_Sys
If x = Syf_Sys Then
Son_Sat = sy.Cells.SpecialCells(xlCellTypeLastCell).Row
Else
Son_Sat = sy.HPageBreaks.Item(x).Location.Row - 1
End If
If gr.Cells(grs, "l") > 0 Then
sy.Range(sy.Cells(Bsl, 6), sy.Cells(Son_Sat, Sut)).Copy
WD.Selection.PasteSpecial Link:=False, DataType:=wdPasteOLEObject, Placement _
        :=wdInLine, DisplayAsIcon:=False
Application.CutCopyMode = False
If x < WorksheetFunction.CountA(gr.[l52:l71]) Then
WD.Selection.InsertBreak Type:=wdPageBreak
End If
End If
grs = grs + 1
Bsl = Son_Sat + 1
Next
ActiveWindow.View = xlNormalView
Sheets("giriş").Select
Application.ScreenUpdating = True
MsgBox "İşlem tamam.", vbInformation, "Microsoft Word"
Else:
Application.ScreenUpdating = False
Sheets("senetlistesi").PrintOut Copies:=1
Application.ScreenUpdating = True
End If
End Sub
yukarıdaki kodlarda ilk seçenek işaretli olunca "senetyazı" çalışma sayfasını word e aktarıyor
2. seçeneği seçince "senetliste" çalışma sayfasını yazıcıya gönderiyor.

ben 3. bir seçenek daha ekledim işaretli olunca "senetyazı" sayfasını worde göndermeden yazıcıya göndermeli ancak worde gönderdiği özellikler ile olmalı
bunu yapmamız mümkün mü
 
Üst