Farklı yerlerdeki hücreleri satır haline getirip kaydetme.

Katılım
23 Şubat 2007
Mesajlar
1,212
Excel Vers. ve Dili
Excel2003
Değerli Dostlar Selamlar,
Ekteki dosyada belirttiğim Sayfa1 deki B1,B2,C3,D4,B6,C7,C8,D9
Buradaki hücreler bu sıra ile Sayfa2 en son satıra B sütunundan itibaren satır olarak aktarılacak.Sayfa2 A sütunu A2 den itibaren otomatik sayı olacak. Satırın tüm hücreleri tıpatıp aynı önceden var ise üzerine kaydedilecek.
 

Korhan Ayhan

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

Aşağıdaki kodu denermisiniz.

Kod:
Private Sub CommandButton1_Click()
    Set S1 = Sheets("Sayfa1")
    Set S2 = Sheets("Sayfa2")
    S2.[IV:IV].ClearContents
    Sütun = 2
    Son_Satır = S2.[B65536].End(3).Offset(1).Row
    For X = 2 To S2.[B65536].End(3).Row
    Son_Sütun = S2.Cells(X, 256).End(1).Column
    For Y = 2 To Son_Sütun
    If S2.Cells(X, Y) <> "" Then
    S2.Cells(X, 256) = S2.Cells(X, 256) & S2.Cells(X, Y)
    End If
    Next
    Next
    For Each Alan In S1.Columns("B:D").SpecialCells(xlCellTypeConstants, 23)
    Kriter = Kriter & Alan.Value
    Next
    Say = WorksheetFunction.CountIf(S2.[IV:IV], Kriter)
    If Say > 0 Then
    Sat&#305;r = S2.[IV:IV].Find(Kriter, LookAt:=xlWhole).Row
    S2.Cells(Sat&#305;r, 1) = Sat&#305;r - 1
    For Each Alan In S1.Columns("B:D").SpecialCells(xlCellTypeConstants, 23)
    S2.Cells(Sat&#305;r, S&#252;tun) = Alan.Value
    S&#252;tun = S&#252;tun + 1
    Next
    ElseIf Say = 0 Then
    S2.Cells(Son_Sat&#305;r, 1) = Son_Sat&#305;r - 1
    For Each Alan In S1.Columns("B:D").SpecialCells(xlCellTypeConstants, 23)
    S2.Cells(Son_Sat&#305;r, S&#252;tun) = Alan.Value
    S&#252;tun = S&#252;tun + 1
    Next
    End If
    S2.[IV:IV].ClearContents
    Set S1 = Nothing
    Set S2 = Nothing
    MsgBox "KAYIT &#304;&#350;LEM&#304; TAMAMLANMI&#350;TIR.", vbInformation
End Sub
 
Son düzenleme:
Katılım
23 Şubat 2007
Mesajlar
1,212
Excel Vers. ve Dili
Excel2003
Teşekkür ederim Sayın COST CONTROL,
Çok güzel olmuş. Ancak bu kadar olabilirdi. Eksiksiz.
Elinize sağiık.
 
Katılım
23 Şubat 2007
Mesajlar
1,212
Excel Vers. ve Dili
Excel2003
Sayın COST_CONTROL şöyle bir ilave yapabilirmiyiz.

Sub aktar()
Range("B2,B4,B6").Select
Range("B6").Activate
Selection.Copy
Sheets("Sayfa3").Select
Range("B2").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
True, Transpose:=True
End Sub

Bu tür bir uygulamayı Son dolu satırın sonununa ilave edeceğiz. Sayfa3 e
A Sütunu Yine otomatik sıra olmalı. Şimdiden teşekkürler.
 

Korhan Ayhan

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

A&#351;a&#287;&#305;daki &#351;ekilde denermisiniz.

Kod:
Sub Aktar()
    Range("B2,B4,B6").Select
    Range("B6").Activate
    Selection.Copy
    Sheets("Sayfa3").Select
    Son_Sat&#305;r = Range("B65536").End(3).Offset(1).Row
    Range("A" & Son_Sat&#305;r) = Son_Sat&#305;r - 1
    Range("B65536").End(3).Offset(1).Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
    True, Transpose:=True
    Application.CutCopyMode = False
End Sub
 
Katılım
23 Şubat 2007
Mesajlar
1,212
Excel Vers. ve Dili
Excel2003
Cevab&#305;n&#305;z i&#231;in te&#351;ekk&#252;r ederim Say&#305;n COST_CONTROL,
Veri t&#305;pat&#305;p ayn&#305; olursa M&#252;kerrer kay&#305;t olunca &#252;zerine yazd&#305;rabilirmiyiz. Yada kaydetmesin.
 
Son düzenleme:

Korhan Ayhan

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

Anlam veremedi&#287;im m&#252;kerrer kay&#305;t olunca neden &#252;zerine kaydetmesini istemeniz. Zaten kay&#305;t sayfada mevcutsa neden tekrar &#252;zerine kaydetmesi gerekiyor.

Ayr&#305;ca kullanmak istedi&#287;iniz son koda m&#252;kerrer kay&#305;t kontrol&#252; eklemek i&#231;in verileri d&#246;ng&#252; i&#231;ine almak gerekecektir. Bunuda zaten ilk cevab&#305;mda vermi&#351;tim.
 
Katılım
23 Şubat 2007
Mesajlar
1,212
Excel Vers. ve Dili
Excel2003
Sayın COST_CONTROL bir önceki mesajı düzeltmiştim de herhalde siz cevabı okuduktan sonra düzeltmişimdir. Ben ilk mesaja bu sonraki şekli entegre edemedim. Sağol size yeterince zahmet verdim uyarlamaya uğraşacağım sağol varol. Emeğine sağlık. Zaten size emeklerinizden dolayı mahçup kalıyorum.
 
Katılım
23 Şubat 2007
Mesajlar
1,212
Excel Vers. ve Dili
Excel2003
Selamlar,
Değerli arkadaşlar, mükerrer kayıt önleme için şöyle bir şey hazırladım.

Sub Aktar()
Range("B2,B4,B6,B8,B10,B12").Select
Range("B6").Activate
Selection.Copy
Sheets("Sayfa3").Select
Son_Satır = Range("B65536").End(3).Offset(1).Row
Range("A" & Son_Satır) = Son_Satır - 1
Range("B65536").End(3).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=True, Transpose:=True
Application.CutCopyMode = False
[H1].FormulaR1C1 = "=RC[-6]&RC[-5]&RC[-4]&RC[-3]&RC[-2]&RC[-1]"
[H1].AutoFill Destination:=[H1:H120]
[I1].FormulaR1C1 = "=COUNTIF(R1C8:RC[-1],RC[-1])"
[I1].AutoFill Destination:=[I1:I120]
For X = [A65536].End(3).Row To 2 Step -1
If Cells(X, 9) > 1 Then Rows(X).Delete
Next
Columns("H:I").ClearContents
Sayfa1.Select
End Sub

Daha pratik çözümlerinizi de beklerim.
 
Katılım
13 Şubat 2009
Mesajlar
198
Excel Vers. ve Dili
2007
Altın Üyelik Bitiş Tarihi
23-03-2021
Merhabalar Arkadaşlar bu aktarımın bana aynı kayıdı yapmayan olarak gönderebilirmisiniz?
 
Üst