• DİKKAT

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

verileri alt alta kaydetmek

  • Konbuyu başlatan Konbuyu başlatan kontto
  • Başlangıç tarihi Başlangıç tarihi
Katılım
17 Ocak 2008
Mesajlar
227
Excel Vers. ve Dili
2007 ve 2013 kullanıyorum
verisiyon türkçe
Arkadaşlar dosyayı ekte gönderdim. Bu konuda yardımcı olursanız sevinirim. Şimdiden teşekkür ederim. Çok ihtiyacım var.
 

Ekli dosyalar

aşağıdaki kodu butona atayabilirsiniz.
idare eder zannediyorum.


Kod:
Sub Macro1()

Dim il As String
Dim sc, sd As Worksheet

Set sc = ActiveWorkbook.Sheets("Sayfa1")
Set sd = ActiveWorkbook.Sheets("Sayfa2")

il = sc.Range("$B$4").Value
rw = Application.Match(Trim(il), sd.Columns("A"), 0)

sc.Range("B4:F4").Copy
sd.Select
Cells(rw, 1).End(xlDown).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Application.CutCopyMode = False

End Sub
 
Teşekkür ederim ama 400 diye error hatası verdi.
 
tamam hatanın nedenini anladım.

uygun bir zamanda yanıt vermeye çalışayım.
 
merhaba.
Sayfa2'de 81 il isminin belli satır aralıklarıyla yazılı olduğu varsayımıyla cevap vermiştim. (ki, o da hatalı ve düzeltilmesi gerekecek.)

ancak Sayfa1'deki B4:F4 hücrelerinin Sayfa2'deki ilk boş satıra kopyalanmasını istiyorsanız çözüm çok basit. Sonra A sütununa (il adı) göre sıralayabilirsiniz.
 
tamam hatanın nedenini anladım.

uygun bir zamanda yanıt vermeye çalışayım.

şu kod bende çalıştı. Sayfa1'deki il ismi Sayfa2'de A sütununda mutlaka en az 1 defa yazılmış olmalı.
bir vesile ile, birden fazla aynı il ismi var ise alt alta olmalı


Kod:
Sub AltAltaKopya()

Dim il As String
Dim sc, sd As Worksheet

Set sc = ActiveWorkbook.Sheets("Sayfa1")
Set sd = ActiveWorkbook.Sheets("Sayfa2")

il = sc.Range("$B$4").Value
rw1 = Application.Match(Trim(il), sd.Columns("A"), 0)
rw2 = Application.CountIf(sd.Columns("A"), Trim(il))

sd.Select
With sd
tst = Application.CountA(sd.Range(Cells(rw1, 1), Cells(rw1, 5)))
End With

sc.Range("B4:F4").Copy
sd.Select

If tst = 1 Then
    Cells(rw1, 1).Select
Else
    Cells(rw1 + rw2, 1).Select
End If

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Application.CutCopyMode = False

End Sub
 
ancak Sayfa1'deki B4:F4 hücrelerinin Sayfa2'deki ilk boş satıra kopyalanmasını istiyorsanız çözüm çok basit. Sonra A sütununa (il adı) göre sıralayabilirsiniz.

bu işlem için de:

Kod:
Sub AltAltaKopya2()

Dim sc, sd As Worksheet

Set sc = ActiveWorkbook.Sheets("Sayfa1")
Set sd = ActiveWorkbook.Sheets("Sayfa2")

LR = Sheets("Sayfa2").Range("A65536").End(xlUp).Row + 1

sc.Range("B4:F4").Copy
sd.Select
Cells(LR, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Application.CutCopyMode = False

End Sub
 
teşekkür ederim hemen deneyeceğim.
 
AltAltaKopya2() makrosunda "End Sub" ibaresinden önce gelecek şekilde aşağıdaki kodları eklerseniz her kayıt sonrasında veri tablonuzun il adına göre sıralanmasını da sağlarsınız.

Kod:
ActiveWorkbook.Worksheets("Sayfa2").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sayfa2").Sort.SortFields.Add Key:=Range("A2"), _
    SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
    xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("Sayfa2").Sort
    .SetRange Range("A2:E65536")
    .Header = xlNo
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With
 
pivot tablo eklenmiş ve her veri girişinde il adına göre sort ederek pivot tabloyu güncelleyen macronun yer aldığı dosyayı ekledim. xl2007.
 

Ekli dosyalar

Çooook Teşekkür ederim. İşime Yaradı. Allah razı olsun
 
rica ederim.

konunun uzmanı değilim. gündelik çalışmalarda kendi kullandığım bazı kodları sizin duruma uyarladım sadece.
 
Çok teşekkür ederim emeğine sağlık.
 
Geri
Üst