Birden Fazla Makro Çalıştırması

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

ceterisdenge

Kullanıcı
Katılım
28 Tem 2022
Mesajlar
46
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Herkese merhabalar: Bir konuda yardımınıza ihtiyacım var. Dosyamda 10 dan fazla sayfa var. Bazı sayfalarda tek bir makro düğmesine farklı makrolar bağlıyorum. Aşağıda ki örnektede MAHSUP sayfasına bir buton koydum ve onunla önce mahsup sonra anamizan makrosunu çalıştırıyorum düzgün çalışıyor ama ama görsel olarak fotoğraf çeker gibi ekranda önce kaydırıyor filan sonuçta işimi görüyor ama bunu engellemenin yolu yok mu acaba

CSS:
İndirmek için giriş yapmanız gerekmektedir.
(39 satır)
 
Anladığım kadarıyla ekran hareketini değişimini kapatmak istiyorsunuz.
Kodunuzun başına( sub kodadı() kısmından sonra) Application.ScreenUpdating = False kodunu ekleyiniz. Kodunuzun en sonuna ( end sub dan önce ) da Application.ScreenUpdating = True ekleyiniz. Ekran güncellemesini kodlar çalışırken kapatmış olursunuz.
 
Örnek dosya yüklerseniz ve hata olarak ifade ettiğiniz işlemin görüntüsünü atabilirseniz dosyanıza bakalım. Çağırdığınız makrolar içerisinde ekranı güncelleme komutu varsa ondan da olabilir. Dosyanızı görmeden bir şey diyemem.
 
Sayın @ceterisdenge .

Çalıştırılan MAHSUP ve ANAMIZAN makrolarında Screen.Apdating =True satırı mevcut olabilir.
Çalıştırılan makrolara ait kodlar içerisinde olacak şekilde bir örnek belge eklemek en iyisi bence de.

Ayrıca, çok zorunlu değilse, makro kodlarında ...Select, ....Activate gibi kod satırları kullanmamanızı öneriyorum.

.
 
Örnek olarak yüklediğim dosyada Modül=MAHSUPLAR ve içindeki MAHSUP makrosu. Ben her defasında MAHSUP makrosunu çalıştırdıktan sonra ANAMİZAN_HAZIRLA makrosuna basmamak için MAHSUP makrosunun sonuna caal ANAMİZAN_HAZIRLA diye yazıp geçiyorum. Sonuçta işimi görüyor ama 10 tane makro çağırdığım dosyalarda mevcut sadece sayfalarda dolanıp ekranı dalgalandırmasını istemiyorum.
 

Ekli dosyalar

Bir çok kodun içerisinde ekran güncelleme ilk başta kapatılıp sonra açılıyor. Bu nedenle peşpeşe çağrılan kodlarda ekran güncelleme kapatılmış zannedilse de kodlar içerisinde ekran güncelleme açılıyor. Kodlarınızı çağırırken ne zaman güncellenip ne zaman kapatılacağını karar vermelisiniz. Kodlarınızı ona göre revize etmelisiniz.

Not: İlk mesajda belirtilen sayfanın kod bölümünde makro bulunmamakta. Bu nedenle hangi makrolar hangi koşulda çağrılıyor bilmiyorum. Sadece çağırdığınız makro kodların içerisinde ekran güncelleme kodlarını kaldırıp ana çalıştırılan komutta eklemeniz yeterli. Tabi ayrı ayrı çalıştıklarında ekran güncelleme aktif olacaktır.
 
Sayın @ceterisdenge .

MAHSUP makrosunun son kısmındaki Call ANAMİZAN_HAZIRLA satırından sonraki
Sheets("MAHSUP").Select ve Range("D4 : D5").Select satırlarını silin veya sol başına TEK TIRNAK karakteri ekleyin,
Benzer şekilde de ANAMİZAN makrosunun baş tarafındaki s1.Select satırı için de aynı şeyi yapın.

İşlemin bittiğinin anlaşıyması için, MAHSUP makrosunun sonuna MsgBox "İŞLEM TAMAMLANDI" gibi bir satır ekleyin ki işin bittiği anlaşılsın.
Şayet, ANA MİZAN makrosu sadece MAHSUP makrosunun içinden CALL yöntemiyle çalıştırılıyorsa, yani
ANAMIZAN makrosunu başka bir makro veya düğme ile çalıştırmıyorsanız;
MAHSUP makrosunun sonundaki Application.ScreenUpdating =TRUE ......gibi kod satırlarıyla.
ANAMİZAN makrosunun başındaki Application.ScreenUpdating =FALSE ......gibi kod satırlarını silebilirsiniz.

Özetle işlem şudur, ScreenUpdating =False/True işleminin 1 kez yapılmasını sağlamak gerekiyor.

.
 
Sevgili Forum uzmanı arkadaşlarım. Kısaca " Özetle işlem şudur, ScreenUpdating =False/True işleminin 1 kez yapılmasını sağlamak gerekiyor. " kısmını öğrenmiş olduk Tşk ederim emek verip yazanlara..
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Benzer Konular Popüler İçerikler Daha Fazlası
Geri
Üst Alt