• DİKKAT

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

Tüm sayfalarda aynı anda çalışsın...

Katılım
27 Ekim 2006
Mesajlar
119
Excel Vers. ve Dili
excel 2007-Türkçe
Merhaba,
Forumdaki arkadaşlarında yardımıyla aşağıdaki kodu yazdım ama sadece aktif sayfada çalışıyor...Tüm kitapta aynı anda çalışması içim nasıl bir kod eklemem gerekir...ben bi kaç şey denedim ama beceremedim..yardımlarınız için şimdiden sağolun...

Sub bull()
Worksheets.Select
Range("b11").Select
Dim myRange As Range
Set myRange = Workbooks("Ana").Worksheets("StkHrkIcm").Range("E11:H644")
answer = WorksheetFunction.VLookup([ad11:ad623], myRange, 2, False)
[b11:b623] = answer
answer = WorksheetFunction.VLookup([ad11:ad623], myRange, 3, False)
[c11:c623] = answer
answer = WorksheetFunction.VLookup([ad11:ad623], myRange, 4, False)
[f11:f623] = answer
End sub
 
Siz bu makroyu çalıştırdığınızda tüm sayfalarda aynı işlemi mi yapmak istiyorsunuz?
 
Evet sayın ripek bu makro çalıştığı zaman çalışma kitabındaki tüm sayfalarda aynı anda çalışmasını istiyorum...ilgine teşekkürler
 
Aşağıdaki kodları deneyebilirmisiniz?

Kod:
Sub bull()
Dim myRange As Range
Set myRange = Workbooks("Ana").Worksheets("StkHrkIcm").Range("E1 1:H644")

For Each say In Worksheets
say.Select
say.Range("b11").Select
answer = WorksheetFunction.VLookup(say.[ad11:ad623], myRange, 2, False)
say.[b11:b623] = answer
answer = WorksheetFunction.VLookup(say.[ad11:ad623], myRange, 3, False)
say.[c11:c623] = answer
answer = WorksheetFunction.VLookup(say.[ad11:ad623], myRange, 4, False)
say.[f11:f623] = answer
Next
Set myRange = Nothing
End Sub
 
Sayın Ripek,

İlgine ve bilgine çok teşekkür ederim gönderdiğin kodlar sorunsuz çalıştı..ve işimi gördü..merak ettiğim bir konu var... gönderdiğin kodlar her bir çalışma sayfasında sırayla tek tek çalışıyor..makronun genel yapısımıdır bu yoksa aynı anda tüm sayfalarda çalışması mümkünmü...yani sayfalar tek tek değilde...bütün sayfalarda işlemin aynı anda olması gibi bir olay mümkünmü...ilgine ve bilgine tekrar teşekkür ederim...başarıların daim olsun inşallah..
 
Bildiğim kadarıyla bu tür işlemler makro ile toplu olarak yapılamaz.
 
Sayın Ripek,

İlgine ve bilgine çok teşekkür ederim gönderdiğin kodlar sorunsuz çalıştı..ve işimi gördü..merak ettiğim bir konu var... gönderdiğin kodlar her bir çalışma sayfasında sırayla tek tek çalışıyor..makronun genel yapısımıdır bu yoksa aynı anda tüm sayfalarda çalışması mümkünmü...yani sayfalar tek tek değilde...bütün sayfalarda işlemin aynı anda olması gibi bir olay mümkünmü...ilgine ve bilgine tekrar teşekkür ederim...başarıların daim olsun inşallah..

Sorunuzun tam cevabı olmayabilir.
Aktif sayfa ne olursa olsun, bir olay akabinde döngü kullanmadan tek procedure çalıştırabilir.
Örnek :Herhangi bir sayfada hücre değişiminden sonra mesaj versin.
"Workbook" kod penceresinde şunlar yazılır.
Kod:
Private Sub Workbook_SheetChange( _
            ByVal Sh As Object, _
            ByVal Target As Range)
            
    Call Mesaj

End Sub

Private Sub Mesaj()
    MsgBox "Merhaba"
End Sub
 
Sayın Anemos,
Ben sizin gibi bu konularda üstad değilim bu yüzden yazdıklarınızı anlamam biraz zaman alıyor ... :),gönderdiğiniz örnek kodu kopyaladım çalıştı...yani bir makro tüm kitapta aynı anda çalışıyormuş gibi anladım..o yüzden sorumu biraz daha genişleterek sorayım size... Sayın Ripek arkadaşımızın gönderdiği kod önce aktif sayfayı yapıyor sonra diğer sayfalara tek tek geçiyor...100 çalışma sayfası olunca zaman alıyor tabiki...çalışma sayfalarında yapılan işlem her seferinde aynı...aynı satırlar ve alan seçilerek yapılıyor...mesela ben ilk sayfa olduktan sonra...aktif sayfayı kopyalayıp diğer tüm sayfaları seçip yapıştırıyorum ve istediğim oluyor amam bunu manuel olarak yapmak istemiyorum...çünkü gayem sizlerden birşeyler öğrenmek...eğer yazılan bir makro bir çalışma kitabında aynı anda çalışmıyorsa aktif sayfa hariç geri kalan diğer sayfaları nasıl seçerek kopyalayabilirim bununla ilgili bir kod biliyorsanız bana yardım edermisiniz..

Saygılarımla,
 
Sn. macay,
Demek istediğinizi ben yanlış anladım, kusura bakmayın.

8. mesajınızda yapmak istediğiniz olayı kopyala yapıştır değilde, diğer sayfaları aynı anda seçerek ilk sayfanın(kaynak) hücre referanslarına eşitleyerek yapılabilir. Diğer durumda döngü ile yapılabilir. Bu da sayfayı "Activate" yapmadan olduğu için oldukça hızlı olacaktır. Yani örnek;
Kod:
for i=2 to sheets.count
sheets(1).[a1].copy sheets(i).[a1]
next
 
eveetttt sayın Anemon olay aynen budur acaip hızlandı kodu aynen aşağıdaki gibi yaptım problem yok çalışıyor

hem sizin hem sayın Ripek'in eline bilgisine sağlık bundan sonra bi kaç şey denicem yardımlarınız için çok teşekkürler başarılarınız daim olsun inşallah..

Sub bullll()
Dim myRange As Range
'myRange değişkeni atanıyor veri tipi range
Set myRange = Workbooks("Ana").Worksheets("StkHrkIcm").Range("E11:H644")
'myRange değişkeni bir bloğa set ediliyor=ana kitabı,Stkhrkıcm sayfası,e11:h644 aralığı bu dizin artık sadece myRange olarak yazılacak
answer = WorksheetFunction.VLookup([ad11:ad623], myRange, 2, False)
'answer = WorksheetFunction.düşeyara(içindeki[ad11:ad623]satırlarını tara, myRange isimli tabloda karşılaşırsan, 2 sütününda bulunan bilgiyi buraya yaz, False kesin doğru olanı karşılaştır)
[b11:b623] = answer
answer = WorksheetFunction.VLookup([ad11:ad623], myRange, 3, False)
[c11:c623] = answer
answer = WorksheetFunction.VLookup([ad11:ad623], myRange, 4, False)
[f11:f623] = answer
For i = 2 To Sheets.Count
Sheets(1).[b11:f623].Copy Sheets(i).[b11]
Next
End Sub
 
arkadaslar benimde böyle bir sorunum var.. sayfa1 de ctrl+alt+f9 yapıyorum bu sefer sayfa2 de çalışmıyor :\ sayfa2 de yapsam sayfa 1 deki gidiyor..birkaç sayfa var bu şekilde toplamları ayrı bir yerde görmem gerekiyor fakat sürekli bir #DEĞER! yazısı görüyorum.. nasıl bir kod eklemeliyim tüm sayfalarda otomatik çalışması için ?.. yeni bir modüle yazsam o aktif etse modül1 i her sayfa için..

yardımcı olursanız çok sevinirim
 
Geri
Üst