referanslanan hucreyi geri cagirma

Katılım
26 Aralık 2005
Mesajlar
40
Excel Vers. ve Dili
Microsoft Office Excel 2003 - Ingilizce
Merhaba Arkadaslar,

.Asagidaki kodlarin ilk bolumunde Do Until IsEmpty ve LOOP kodlariyla sayfanin A sutunun en son satirina gidiyorum. Geldigim hucreye "sprij" adini veriyorum. Bunu ise kodun en sonunda gorebileceginiz gibi kaydettigim verileri yapistirmak icin yapiyorum. Ancak program hata veriyor. Zannedersem "sprij" i dogru tanimlayamiyorum.

Kodlari 3 bolum olarak dusunebilirsiniz. 1. bolum loop
Loop'tan sonraki kodlar (2. bolum) sadece sectigim bir dosyayi excel formatina cevirip copy yapmak icin. (3.Bolum) En son 4 satir kod ise copy yaptigim veriyi istedigim sprij hucresine aktarmak icin.

Sadece copy yaptigim kodlari "sprij" hucresine aktaramiyorum.
Bunu nasil yapabilecegimi biliyorsaniz lutfen yardim edin.



Range("A2").Select
Do Until IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
sprij = ActiveCell


MsgBox "Please browse for the prognose file from production (.csv format)", vbOKOnly, "Data Import"
strFile = Application.GetOpenFilename

Workbooks.Open Filename:=strFile, ReadOnly:=True
Rows("1:4").Select
Selection.Delete Shift:=xlUp
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array _
(20, 1), Array(21, 1), Array(22, 1), Array(23, 1), Array(24, 1), Array(25, 1), Array(26, 1), _
Array(27, 1), Array(28, 1), Array(29, 9), Array(30, 9), Array(31, 9), Array(32, 9), Array( _
33, 9), Array(34, 9))
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy

ThisWorkbook.Activate
Sheets("data").Activate
Range("sprij").Select
ActiveSheet.Paste
 

zafer

Super Moderator
Yönetici
Katılım
8 Mart 2005
Mesajlar
3,288
Excel Vers. ve Dili
OFFICE 2003 TÜRKÇE
OFFICE 2010 TÜRKÇE
Merhaba

Kodu bu şekilde kullanın

sprij = ActiveCell.Address

Range("sprij").Select satırını da
Range(sprij).Select olarak değiştirin
 

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
Ek bir bilgi olarak

sprij = ActiveCell

Yukarıda yazdığınız sadece sprij değişkenine aktif hücrenin değerini atar. Ad vermek için aşağıdaki şekilde deneyin.

ActiveWorkbook.Names.Add Name:="sprij", RefersToR1C1:=ActiveCell

Birde son hücreyi bulmak için Do-loop döngüsü kurmaya hiç gerek yoktur. A sütunundaki son hücreden sonraki ilk boş hücreyi bulmak için

[a65536].End(3).Offset(1, 0).Select

komutunu kullanabilirsiniz.

Not:Sn Zafer beyin çözümü bence daha güzel onu kullanın.
 
Katılım
26 Aralık 2005
Mesajlar
40
Excel Vers. ve Dili
Microsoft Office Excel 2003 - Ingilizce
Sayin Levent Bey ve Zafer Bey,

Verdiginiz kodlar calisti. Saatlerdir bu kodlari bulmaya calisiyordum. Ilgilendiginiz icin cok tesekkurler. Ayrica son hucreyi bulmak icin surekli loop kullaniyordum ve program cok yavasliyordu. O kodlari da degistirecegim. Tekrar tesekkur ederim.

Saygilarimla,

Onur
 
Üst