• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

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.
 
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:
Teşekkür ederim Sayın COST CONTROL,
Çok güzel olmuş. Ancak bu kadar olabilirdi. Eksiksiz.
Elinize sağiık.
 
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.
 
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
 
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:
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.
 
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.
 
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.
 
Merhabalar Arkadaşlar bu aktarımın bana aynı kayıdı yapmayan olarak gönderebilirmisiniz?
 
Geri
Üst