• DİKKAT

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

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

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,042
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?
 
Ekrana veri yazma
Ekrana veri yaz
 
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
 
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:
 
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.
 
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ü
 
Geri
Üst