Şu basit iş neden hata veriyor?

Katılım
7 Mayıs 2005
Mesajlar
35
Þu basit iş neden hata veriyor?

Kod:
     With Workbooks("A.XLS").Worksheets("A")
         .Range("2:2").Insert
         .Range(Cells(2, 9), Cells(2, 11)).Value = .Range(Cells(3, 9), Cells(3, 11)).Value
         End With
Yukarda "object" hatası veriyor. Burada yanlışlık nedir?
Select ile yaptığımda sorun çıkmıyor.
Teşekkürler...
 
Katılım
16 Ağustos 2004
Mesajlar
137
Excel Vers. ve Dili
Office 2010 En 64 Bit
Merhaba,

Kod:
With Workbooks("Kitap2.XLS").Worksheets("Sayfa1")
         .Range("2:2").Insert
         .Range(Cells(2, 9), Cells(2, 11)).Value = .Range(Cells(3, 9), Cells(3, 11)).Value
         End With
Yukarıdaki kodu çalıştırdım ve herhangi bir hata almadım, sorun koddan gelmiyor olabilir.

Versiyon : MS Office 2003 TR
 
Katılım
7 Mayıs 2005
Mesajlar
35
Sn Sergions,
İlginiz için çok teşekkür ederim.
Boş dosyada çalıştırınca bende de çalışıyor. Ama program içinde

.Range(Cells(2, 9), Cells(2, 11)).Value = .Range(Cells(3, 9), Cells(3, 11)).Value

kısmında "object" hatası veriyor. Acaba ayrı bir çalışma kitabı çağırdığı için mi bu ortaya çıkıyor? Ne olabilir, anlamıyorum.
 
Katılım
7 Mayıs 2005
Mesajlar
35
Sizin "kitap2" de çalıştırdığınız kodu ben bir de ayrı kitaptan çalıştırdım. Yine çalışıyor.
Ama program içinde hata alıyorum. Hata mesajını da vereyim.
 
Katılım
7 Mayıs 2005
Mesajlar
35
Þu hata mesajını alıyorum:

Run-time error '1004':

Application-defined or object-defined error
 
Katılım
3 Eylül 2004
Mesajlar
174
Excel Vers. ve Dili
Excel-2002 Türkçe
"1004" çalışma hatası

O zaman sayfanız şifreli demek ki.
Sayfanız da sayfa koruması var mı bir kontrol edin.
 
Katılım
7 Mayıs 2005
Mesajlar
35
Sn excelman,
Teşekkür ederim.
Sayfa korumalı değil. Ayrıca "select" yöntemini kullanınca problem olmuyor. "With" yönteminde sorun çıkıyor.
"Select" yöntemini de mümkünse kullanmak istemiyorum.
 
Katılım
3 Eylül 2004
Mesajlar
174
Excel Vers. ve Dili
Excel-2002 Türkçe
Dosyanızı ekleyebilirseniz yardımcı olmak isteyenler çıkacaktır.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Birde aşağıdaki gibi deneyin.

[vb:1:8c25a23e4e] Sheets("sayfa1").[i2:k2] = Sheets("sayfa1").[i3:k3].Value
[/vb:1:8c25a23e4e]
 
Katılım
7 Mayıs 2005
Mesajlar
35
Sn leventm,
Ã?neriniz şaşırtıcı biçimde çalıştı. Çok teşekkürler...
"Range" yerine bu biçimde de tanımlama yapabileceğimizi bilmiyordum.
O nedenle de şaşırtıcı buldum.
Sanırım, problemi yaratan "Range" yöntemiymiş. Nedenini de öğrenebilseydik güzel olurdu.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki gibide çalışacaktır.

[vb:1:c8fa1ec35b]sheets("sayfa1").Range(Cells(2, 9), Cells(2, 11)).Value = sheets("sayfa1").Range(Cells(3, 9), Cells(3, 11)).Value
[/vb:1:c8fa1ec35b]

Sorun sanırım aşağıdaki yazım şeklinden kaynaklanıyor. Burada range in başına sheets("sayfa") eklerseniz çalışması gerekir.

=.Range(Cells(3, 9), Cells(3, 11)).Value

Not:range içinde hücreleri eğer satır veya sütun değerleri değişken değilse cells ile tanımlamaya gerek yoktur. Bunun yerine range("i2:k2") şeklindede tanımlama yapabilirsiniz.
 
Katılım
7 Mayıs 2005
Mesajlar
35
Bu arada sizin değerli katkılarınızla sorunun nedenini buldum. Gerçekten basitmiş. Ama benim yarım günüme maloldu. Aşağıdaki gibi yapınca sorun çözüldü:

Kod:
     With Workbooks("A.XLS").Worksheets("A")
         .Range("2:2").Insert
         .Range(.Cells(2, 9), .Cells(2, 11)).Value = .Range(.Cells(3, 9), .Cells(3, 11)).Value
         End With
Değerli yardımlarınız için çok teşekkür ederim...
 
Katılım
7 Mayıs 2005
Mesajlar
35
Yukardaki mesajı yazdığımda sizin mesajınızı almamıştım.
Ama sonuçta yardımlarınızla çözüme ulaşmış oldum. Bu da benim açımdan önemli bir kazanç oldu.
Herkese kolay gelsin.
 
Üst