veri aktarma hakkında.(çözüldü.teşekkürler)

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,642
Excel Vers. ve Dili
Pro Plus 2021
[vb:1:5422c6ded0]Sub dene()

Set s2 = Sheets("Sayfa2")

If [a6] <> "" Then
son = s2.[b65536].End(3).Row + 1
s2.Range(s2.Cells(son, "B"), s2.Cells(son, "J")).Value = [a6:I6].Value
[a6:I6].Value = ""
End If

End Sub[/vb:1:5422c6ded0]
 
Katılım
9 Eylül 2004
Mesajlar
243
Excel Vers. ve Dili
Office2003Trk
makro işimi gördü ancak hesap edemediğim bişey ortaya çıktı onu çözebirimiyiz acaba.
Sayfa1 deki veriler sırasıyla sayfa2 ye aktarılıyor. sayfa 2 de verilerin aktarıldığı hücrelerde formüllerim var dolayısı ile silinmiş oluyor.formüller silinmeden değerlerini aktarma imkanımız varmı acaba.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,190
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Formülleriniz hangi hücrelerde belirtirmisiniz.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,642
Excel Vers. ve Dili
Pro Plus 2021
Aynı anda hem formül hem değer nasıl olacak anlamadım, ancak şunu demek istiyorsanız, örneğin d ve e sutunu otomatik hesaplanıyor, onlara aktarma yapılmasın diyorsanız, o zaman olur, eğer bu şekildeyse bir örnek gönderin.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,190
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Veysel beyin önerdiği kodu aşağıdaki gibi değiştiriniz.

Kod:
Sub AKTAR()
    Set S1 = Sheets("Sayfa1")
    Set S2 = Sheets("Sayfa2")
    
    If [A6] <> "" Then
    Son = S2.[B65536].End(3).Row + 1
    S2.Range(S2.Cells(Son, "B"), S2.Cells(Son, "G")).Value = S1.[A6:F6].Value
    S2.Cells(Son, "I") = S1.Cells(6, "H")
    [A6:F6,H6].Value = ""
    [A6].Select
    End If
End Sub
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,459
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Sayın COST CONTROL tekrar selamlar
Sayın veyselemre saygılar

Tam bu aktarma konusuyla ugrasırken bu sayfada verdiginiz cozumler gercekten ise yaradı. Benim sormak istedigim , verileri aktardıktan sonra veri sutununun ustunde olan combobox rakamı ile tum gelen verileri artırıp eksiltmek nasıl yapılabilir.
Aktarılan veride artırma eksiltme yapmak istememin sebebi , bir Turkce bir Ing
sayfa , aynı isi yapıp farklı yerler icin basılacak
Buradaki ornegi alarak uzerinde acıklama ve degisik ve soruyla tekrar yukluyorum

Tekrar saygılarımla
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,190
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Ekteki örneği incelermisiniz.
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,459
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Sayın COST CONTROL
Gercekten ilac gibi cozumler oneriyorsunuz, yurekten tesekkur ederim. İslev olarak tam amac ettigim gibi calıstı
Yanlız adapte ederken bir iki sorun yasadım , saatin de hikmetiyle cıkamadım icinden, cok ufak da olsa iki problemi dusunuyorum...
Oncelikle sutunlar F32:M48 in olusturdugu kare icinde, f65536 yapınca dongu bitinceye dek bekliyor. Bu yuzden kısa yoldan geri donsun diye
For X = 6 To [G49].End(3).Row yapsam da End(3) ün islevini anlayamadım.

makro tam olarak su oldu:
Private Sub ComboBox4_Change()
For X = 6 To [G49].End(3).Row
If Cells(X, 7) <> "" Then Cells(X, 7) = Cells(X, 7) + ComboBox4.Value
Next
End Sub

ilginc olan, combonun ekledigi degeri G30 icine her degisimi öncekinin yanına ekleyip 10203040 seklinde yanyana yazmaya baslaması ki bu hic gerekli degil.
Hata benim :düsün: biliyorum da nerde tutamadım bi turlu. Ornekte yok bu prb,gayet iyi o.

ikinci sorun ise, geriye gitme guvencesi yok, sadece yeni combo degeri kadar her
degisimde ustune eklemeye devam ediyor bu sekilde. Tum combolarda degerler sıfırla basladıgına gore , sutundaki tum hucrelerin baslangıctaki sayısına donmesi
( eklemenin tekrar baslaması icin ) nasıl saglanabilir.Zira bu sekilde sadece 1 kez ek yapılırki aynı sutunda sonraki ek cevirmelerinin hepsi hata olur. :?

Simdiden tesekkurler
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,190
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Kodlamada kullandığım [F65536].End(3).Row ibaresi F sütunundaki en son dolu hücreyi tesbit etmek için kullanılır. Bu işlevi kendinizde excel sayfası üzerinde şu şekilde deneyebilirsiniz. F65536 hücresini seçin sonra klavyedeki End tuşuna basın daha sonrada yukarı ok tuşuna basın işte bu yapmış olduğunuz işlem bu satırı ifade etmektedir. Sizin döngüyü kısaltmak için G49 hücresini yazmanızın tek sakıncası eğer aktardığınız veriler 49 satırdan fazla olursa o satırdan sonraki satırlar döngüye girmeyeceğinden hesaplamalarınız eksik olacaktır. Eğer satır sayınız sabitse G49 yazarak kullanabilirsiniz.

İkinci sorunuza gelince maalesef makro ile yapılan işlemler özel ve uzun kodlamalar dışında geri alınamıyor. Eğer değerleri ilk haline geri alacaksanız AKTAR butonuna tekrar tıklamanız en basit yöntemdir.
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,459
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Sayın COST CONTROL

Aksamki onerinize sabah baktım ve yerli yerine oturtunca mesele kalmadı
combo degeri kadar artırıyor
Geri icin de , sutunların tepesine bir reset tusu koydum , teker teker sutun degeri yenilemek icin ve bir de total reset , hepsini alsın diye

Tum verdiginiz destek icin sonsuz tesekkurler
 
Üst