• DİKKAT

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

Makro Buton ile Farklı Çalışma Kitabından Çalıştırma

Katılım
25 Kasım 2012
Mesajlar
34
Excel Vers. ve Dili
2010 türkçe
Merhaba,

Bilgi amaçlı temel bir soru sormak istiyorum;

Aşağıda satır silme ile ilgili makro verilmiştir.

Misal satırların silinmesi istenilen çalışma kitabı "A"
Fakat buton "B" çalışma kitabında oluşturulacak.

Formülde nasıl bir değişiklik yapılması gerekmektedir?

Sub satirsil2()
For Each Alan In Worksheets
Alan.Rows("5:19").Delete Shift:=xlUp
Next

End Sub
 
A kitabının uzantısı xlsx olarak düşünülmüş ve açık olduğu varsayılmıştır.
Deneyiniz.:cool:
Kod:
Sub satirsil2()
Dim alan As Worksheets
For Each alan In Workbooks("A.xlsx").Worksheets
alan.Rows("5:19").Delete Shift:=xlUp
Next
End Sub
 
Orion Hocam merhaba,

Dosya türü A.xlsm ve dosya açık

fakat hata veriyor,

Sub satirsil2()
Dim alan As Worksheets
For Each alan In Workbooks("A.xlsm").Worksheets
alan.Rows("5:19").Delete Shift:=xlUp
Next
End Sub

Makro "A" çalışma kitabı içerisinde makro modülüne kaydedildi, buton "B" çalışma kitabında oluşturuldu

Teşekkürler
 
Sayın Ömer Baran bey, hesaplama süreci devam ettiği için aynı sayılar var hesaplama bittiğinde aynı rakamların olması olası değil. Yani hepsi farklı olacak. Buna yönelik çözümü de yine siz yapmıştınız makro kodla ancak iki farklı sayfada çalışıyordu.Ancak linkte de görüleceği üzere aynı sayfa içinde formülle ya da makro kodları yapmam gerekiyor, ama uyarlayamadım. O yüzden yardımınıza ihtiyacım var. Hatırlatma babında makro kodunuz şöyleydi:

Sub SayilariGetir()
s = Sayfa1.Rows(1).End(xlToRight).Column
For i = 1 To s
Sayfa1.Cells(2, i) = WorksheetFunction.VLookup(Sayfa1.Cells(1, i), Sayfa2.Columns("a:b"), 2, False)
Next
End Sub

Sub SayilariBul()
Sayfa2.[a:b].Clear
Sayfa1.Select
s = Rows(1).End(xlToRight).Column
Range(Cells(1, 1), Cells(1, s)).Select
Selection.Copy
Sayfa2.Select
[a1].PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Application.CutCopyMode = False
ActiveSheet.Columns(1).RemoveDuplicates Columns:=1, Header:=xlNo
Columns(1).Sort key1:=[a1], order1:=xlDescending
x = [a65536].End(3).Row
Range("b1:b" & x) = Range("a1:a" & x).Value
Range("b1:b" & x).Sort key1:=[b1], order1:=xlAscending
Sayfa1.Select
End Sub
 
Son düzenleme:
Orion hocam bu arada omer bey in yaptigi duzeltmede de hata kodu veriyor "type mismatch" alternatif bir yolu var midir?
 
Orion Hocam merhaba,

Dosya türü A.xlsm ve dosya açık

fakat hata veriyor,

Makro "A" çalışma kitabı içerisinde makro modülüne kaydedildi, buton "B" çalışma kitabında oluşturuldu

Teşekkürler

Makronuz veya butonunuz hangisinde ise onda olmalı.Biri A'da Biri B'de olamaz.
Kodda butonda ayni kitab içerisinde olmalı.Bunu düzenleyin sonra konuşalım.
 
Hocam hemen denedim hatta denemedigim kombinasyon kalmadi ve makro icerisinde xlsx ve xlsm olarakta ikisinide denedim bir onceki mesajlarda isaretledigim yer de makro duruyor ve "type mismatch" hatasi veriyor.
 
B dosyasına boş bir modüle yapıştırınız.Ve çalıştırınız.
Önemli; A dosyası açık olmalı.:cool:
A dosyasının uzantısı xlsm olmalı
Kod:
Sub satirsil2()
Dim alan As Worksheet
For Each alan In Workbooks("A.xlsm").Worksheets
alan.Rows("5:19").Delete Shift:=xlUp
Next
End Sub
 
Orion hocam teşekkurler
Tum uyarilarinizi basindan beri dikkat ettim,
aşağıki kodu makrodan sildim ve çalıştı halbuki belirttiginiz gibi "alan" tanimlanmali ama anlamadım.
"Dim alan As Worksheet"

Yardımlarınız icin teşekkürler
 
Orion hocam teşekkurler
Tum uyarilarinizi basindan beri dikkat ettim,
aşağıki kodu makrodan sildim ve çalıştı halbuki belirttiginiz gibi "alan" tanimlanmali ama anlamadım.
"Dim alan As Worksheet"

Yardımlarınız icin teşekkürler

Rica ederim.
iyi çalışmalar.:cool:
 
Geri
Üst