makro çakışması olabilir mi?

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
merhaba
farklı 2 çalışma kitabında sorunsuz çalışan 2 makrom var.
1. si takvim denetimi, 2. si koşullu biçimlendirme makrosu.
bu makroları başka çalışma kitabında aynı sayfada kullanmak için sayfanın kod bölümüne yazdığımızda;
1- takvim denetimi kodlarını EN ALTA yazdığımda takvim denetim kodlarının
Private Sub Worksheet_SelectionChange(ByVal Target As Range) satırında hata mesajı veriyor.
2- takvim denetimi kodlarını EN ÜSTE yazdığımda diğer koşullu biçimlendirme kodlarının
Private Sub Worksheet_SelectionChange(ByVal Target As Range) satırında hata mesajı veriyor.

makro çakışması olabilir mi? sorunun esası ne olabilir? çözümü nedir?
 

Merhum İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,094
Excel Vers. ve Dili
Excel, 365 - İngilizce
merhaba
farklı 2 çalışma kitabında sorunsuz çalışan 2 makrom var.
1. si takvim denetimi, 2. si koşullu biçimlendirme makrosu.
bu makroları başka çalışma kitabında aynı sayfada kullanmak için sayfanın kod bölümüne yazdığımızda;
1- takvim denetimi kodlarını EN ALTA yazdığımda takvim denetim kodlarının
Private Sub Worksheet_SelectionChange(ByVal Target As Range) satırında hata mesajı veriyor.
2- takvim denetimi kodlarını EN ÜSTE yazdığımda diğer koşullu biçimlendirme kodlarının
Private Sub Worksheet_SelectionChange(ByVal Target As Range) satırında hata mesajı veriyor.

makro çakışması olabilir mi? sorunun esası ne olabilir? çözümü nedir?
Aynı ifadeyi taşıyan makroları numaralandırarak deneyin.

Örneğin:

Private Sub Worksheet_SelectionChange1(ByVal Target As Range)

Private Sub Worksheet_SelectionChange2(ByVal Target As Range)

gibi.

.
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,735
Excel Vers. ve Dili
Excel 2019 Türkçe
İki kodu birleştirmelisiniz.
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
syn yurttaş,
öneriniz işe yaradı, çok teşekkürler.
ilginç bir durum daha oluşuyor.
kod sayfası açıkken "This action will reset your project, proceed anyway" hata mesajı çıkıyor. kod sayfasını kapatınca normal çalışıyor.
kod sayfasının kapatılmasını istemesininin nedeni ne olabilir?
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
örnek dosyada 3 adet makro var(mış) 3.yü sonradan farkettim :)
1. koşullu biçimlendirme, sorunsuz çalışıyor.
2. D2 hücresine yazılan metni sayfa adı olarak seçiyor.
3. takvim denetimi.

a) takvim denetiminde "1" yazınca 2. kod çalışıyor 3. ÇALIŞMIYOR,
Private Sub Worksheet_SelectionChange1(ByVal Target As Range)
b) 2. veya 3. kodların birini silince diğer kod çalışıyor,

I- Her 3. kodu nasıl çalıştırabilirim?
II- 2 kodu (zamanla dosyaya ekleneceklerle birlikte daha da artabilir) nasıl birleştirebilirim?
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
kısıtlı bilgilerime rağmen galiba sorunu çözdüm, uzman arkadaşlar değerlendirebilirler mi acaba?
3. makro olan takvim denetimini 2. makronun içine attım. kod aşağıda

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If Intersect(ActiveCell, [h:k]) Is Nothing Then GoTo f2
ActiveCell.NumberFormat = "dd.mm.yy"
UserForm1.Show
f2:
If Intersect(Target, [D2]) Is Nothing Then Exit Sub
If Range("D2").Value = Empty Then Exit Sub
ActiveSheet.Name = Range("D2").Value
End Sub
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Merhabalar

Takvim denetiminin çalışması için, SelectionChange olayında bir problem olmaz. Ama aynı Change olayını, sayfa ismini belirlediğiniz kod bloğuna uygulamaya kalkarsanız, sayfa isminin değişmediğini görürsünüz.

Sayfa ismini değişmesi için, D2 hücresinden ayrılıp tekrar D2 hücresine geri gelmelisiniz:) Deneyin ve görün.

Oysa ki, SelectionChange olayında, sadece Takvim denetimini kodlasanız ve var olan Change olay kodlarına da sayfa ismi değiştirme kodlarını monte etseniz, tadından yenmez.
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
merhaba syn fpc
Sayfa ismini değişmesi için, D2 hücresinden ayrılıp tekrar D2 hücresine geri gelmelisiniz:) Deneyin ve görün.

sayfa adını değiştirmek için D2 hücresine geridönmek gerekiyor, haklısınız.
ben kendi çalışmamda burada bir hile yaptım. veri girişi için butona bağlı makro kullanıyorum, veri girebilmek için butonu tıklayınca otomatik olarak her iki kod çalışıyor, hem veri girişini yapabiliyorum hemde sayfa adı değişmiş oluyor.

Oysa ki, SelectionChange olayında, sadece Takvim denetimini kodlasanız ve var olan Change olay kodlarına da sayfa ismi değiştirme kodlarını monte etseniz, tadından yenmez.[/QUOTE]

sayfa ismi değiştirme kodlarını takvim denetiminin içine attığımı sanıyordum.
önceki mesajımda 3. ve 2. makro diye isimlerini yanlış yazmışım, becerememiş miyim? :)
 
Son düzenleme:
Üst