WorkSheet Change Fazla veri girme hatası

cocoa35

Altın Üye
Katılım
6 Eylül 2007
Mesajlar
654
Excel Vers. ve Dili
excel 2016 32 Bit ve Excel 2020 32 Bit Türkçe ve İngilizce
Altın Üyelik Bitiş Tarihi
10-12-2024
Arkadaşlar merhaba, aşağıda vermiş olduğum kod'larda fazla veri olması nedeni ile hata veriyor! bunları nasıl bölebilirim acaba?

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("L6,L7,L8,L9,L10,L11,L13,L15,L16,L17,L22,L23,L25,L32,L34,L35,L36,L37,L41,L43,L44,L46,L48,L50,L52,L55,L57,L59,L60,L61,L62,L64,L66,L68,L69,L70,L71,L73,L74,L76,L77,L78,L79,L80,L81,L83,L84,L86,L88,L90,L92,L94,L96,L98,L100,L102,L104,L106,L108,L110,L112,L114,L116,L118,L119,L122,L124,L126,L128,L130,L132,L134,L136,L138,L141,L143,L145,L147,L149,L151,L153,L155,L157,L159,L162,L165,L168,L171,L174,L176,L178,L180,L182,L184,L186,L188,L190,L192,L195,L198,L201")) Is Nothing Then Exit Sub
Application.EnableEvents = False
Call fiyat1
Call fiyat2
Application.EnableEvents = True

End Sub
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Hatalı dosyayı ekler misiniz, ne gibi bir sorun olduğunu denemeden anlamak zor olur.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,330
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Eğer hücre adresleri ile ilgili hata alıyorsanız Union komutunu araştırabilirsiniz.
 

cocoa35

Altın Üye
Katılım
6 Eylül 2007
Mesajlar
654
Excel Vers. ve Dili
excel 2016 32 Bit ve Excel 2020 32 Bit Türkçe ve İngilizce
Altın Üyelik Bitiş Tarihi
10-12-2024
Evet If Intersect(Target, Range(" fazla hücre adı") hatasından kaynaklanıyor bunu nasıl böleceğim acaba yardım edebilirmisiniz?
 

asi_kral

Özel Üye
Katılım
22 Şubat 2012
Mesajlar
2,824
Excel Vers. ve Dili
Excel 2007 Türkçe
Merhaba
Şahsi Fikrimi soracak olursanız.If Intersect(Target, Range("L6,L7,L8,L9,L10,L11,L13,L15,L16,L17,L22,L23,L25,L32,L34,L35,L36,L37,L41,L43,L44,L46,L48,L50,L52,L55,L57,L59,L60,L61,L62,L64,L66,L68,L69,L70,L71,L73,L74,L76,L77,L78,L79,L80,L81,L83,L84,L86,L88,L90,L92,L94,L96,L98,L100,L102,L104,L106,L108,L110,L112,L114,L116,L118,L119,L122,L124,L126,L128,L130,L132,L134,L136,L138,L141,L143,L145,L147,L149,L151,L153,L155,L157,L159,L162,L165,L168,L171,L174,L176,L178,L180,L182,L184,L186,L188,L190,L192,L195,L198,L201")) Is Nothing Then Exit Sub
Bunun yerine
If Intersect(Target, Range("L:L)) Is Nothing Then Exit Sub

bu şekilde yazın daha mantıklı

Not : Şahsi düşüncem
 

cocoa35

Altın Üye
Katılım
6 Eylül 2007
Mesajlar
654
Excel Vers. ve Dili
excel 2016 32 Bit ve Excel 2020 32 Bit Türkçe ve İngilizce
Altın Üyelik Bitiş Tarihi
10-12-2024
Union kod'unu aşağıdaki gibi yaptım ama sarı renkli bölüm hata verdi?

Private Sub Worksheet_Change(ByVal Target As Range)
Alan_A = Range("L6,L7,L8,L9,L10,L11,L13,L15,L16,L17,L22,L23,L25,L32,L34,L35,L36")
Alan_B = Range("L37,L41,L43,L44,L46,L48,L50,L52,L55,L57,L59,L60,L61,L62,L64,L66")
Alan_C = Range("L68,L69,L70,L71,L73,L74,L76,L77,L78,L79,L80,L81,L83,L84,L86,L88,L90")

Alan_D = Range("L92,L94,L96,L98,L100,L102,L104,L106,L108,L110,L112,L114,L116,L118,L119,L122,L124")
Alan_E = Range("L126,L128,L130,L132,L134,L136,L138,L141,L143,L145,L147,L149,L151,L153")
Alan_F = Range("L155,L157,L159,L162,L165,L168,L171,L174,L176,L178,L180")
Alan_G = Range("L182,L184,L186,L188,L190,L192,L195,L198,L201")

Set Tum_Alan = Union(Alan_A, Alan_B, Alan_C, Alan_D, Alan_E, Alan_F, Alan_G)

If Intersect(Target, Alan) Is Nothing Then Exit Sub

Application.EnableEvents = False
Call fiyat1
Call fiyat2
Application.EnableEvents = True

End Sub
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Bir örnek dosya paylaşsanız muhtemelen çözüm bulunur ama anladığım kadarıyla bu yöntemi tercih etmiyorsunuz.
 

cocoa35

Altın Üye
Katılım
6 Eylül 2007
Mesajlar
654
Excel Vers. ve Dili
excel 2016 32 Bit ve Excel 2020 32 Bit Türkçe ve İngilizce
Altın Üyelik Bitiş Tarihi
10-12-2024
Sayın yusuf bey esas dosya çok büyük ve özel bir dosya , yukarıdaki yazmış olduğum kod'larda yazım şeklinde bir hata varmı? bu konuda çok bilgim yok maalesef
 

cocoa35

Altın Üye
Katılım
6 Eylül 2007
Mesajlar
654
Excel Vers. ve Dili
excel 2016 32 Bit ve Excel 2020 32 Bit Türkçe ve İngilizce
Altın Üyelik Bitiş Tarihi
10-12-2024
Merhaba
Şahsi Fikrimi soracak olursanız.If Intersect(Target, Range("L6,L7,L8,L9,L10,L11,L13,L15,L16,L17,L22,L23,L25,L32,L34,L35,L36,L37,L41,L43,L44,L46,L48,L50,L52,L55,L57,L59,L60,L61,L62,L64,L66,L68,L69,L70,L71,L73,L74,L76,L77,L78,L79,L80,L81,L83,L84,L86,L88,L90,L92,L94,L96,L98,L100,L102,L104,L106,L108,L110,L112,L114,L116,L118,L119,L122,L124,L126,L128,L130,L132,L134,L136,L138,L141,L143,L145,L147,L149,L151,L153,L155,L157,L159,L162,L165,L168,L171,L174,L176,L178,L180,L182,L184,L186,L188,L190,L192,L195,L198,L201")) Is Nothing Then Exit Sub
Bunun yerine
If Intersect(Target, Range("L:L)) Is Nothing Then Exit Sub

bu şekilde yazın daha mantıklı

Not : Şahsi düşüncem
Çok teşekkürler Asi Kral Gayet güzel oldu ellerine ve aklına sağlık :)
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Eğer tüm L sütununda kod çalışacaksa neden önceki halinde örneğin L12 hücresinde çalışmasını istemiyordunuz?
 

cocoa35

Altın Üye
Katılım
6 Eylül 2007
Mesajlar
654
Excel Vers. ve Dili
excel 2016 32 Bit ve Excel 2020 32 Bit Türkçe ve İngilizce
Altın Üyelik Bitiş Tarihi
10-12-2024
Teşekkürler arkadaşlar Asi Kralın yapmış olduğu çözümleme ile işim görüldü.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,330
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Siz kod içinde hücre tanımlaması yapıyorsunuz. Fakat bunu SET ile tanımlamazsanız hata alırsınız.

Set Alan_A = Range("L6,L7,L8,L9,L10,L11,L13,L15,L16,L17,L22,L23,L25,L32,L34,L35,L36")

Ayrıca kırmızı bölüm peş peşe giden hücreler bunları tek tek yazmak yerine aşağıdaki gibi gruplayabilirsiniz.

Set Alan_A = Range("L6:L11,L13,L15:L17,L22:L23,L25,L32,L34:L36")

Böylece kodu kısaltarak ileride oluşabilecek karakter uzunluk problemini bir nebze aşmış olursunuz.

Bahsettiğim bu düzeltmeleri diğer satırlar içinde yapmalısınız. Sonrasında sorun çıkmadan çalışacaktır.
 
Üst