• DİKKAT

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

A Sütünunda ilk olarak hangi hücre boş ise oraya veri yazmak?

Katılım
19 Temmuz 2011
Mesajlar
15
Excel Vers. ve Dili
2007 eng
Merhaba arkadaşlar,
macro ile uğraşıyorum, takıldığım bir yer var sizden yardım rica ediyorum.

Macro ile tek tek, dosyalardan veri alıyorum. İstediğim
her dosyadan aldığım verileri aynı sheette alt alta kopyalamak.

örneğin Range("B4:F804").Copy

komutu ile verileri kopyalıyorum ardından

Workbooks(MyWorkbook).Sheets("Graph").Range("A2").PasteSpecial

komutu ile verileri yapıştırıyorum.

Döngü sonrasında yeni açılan dosyadan

aynı hücrelerden verileri kopyalayıp ( Range("B4:F804").Copy )

Graph sheet'inde ilk dosyadan kopyalanan verilerin hemen altına yada ilk boş satırdaki hücreye yapıştırmak istiyorum.
( Workbooks(MyWorkbook).Sheets("Graph").Range("A805").PasteSpecial
Bu olay sonraki açılan dosyadan kopyalanan veriler ile alt alta gidecek.

Amaç üstüste verileri çakıştırmamak.

Bunu nasıl yapabilirim sizden yardım rica ediyorum.

teşekkürler.
 
merhaba
bu tarz sorularınız için dosya ekleseniz daha iyi olur.
Kod:
Option Explicit
Sub son_dolu_satır()
Dim ts, kaplan
kaplan = Sheets("Sayfa1").Range("A65536").End(xlUp).Row
ts = kaplan + 1
Range("A" & ts) = 1
End Sub
bu kod A sütununda son dolu satır'ı bulmanıza yarar
 
ihsan bey,
teşekkür ederim fakat yapamadım malesef.

Kod ile ilgili olarak şöyle açıklayayım.

Range("B" & (PosRow + 4) & ":F" & (PosRow + 804)).Copy ( Bu komut ile farklı 1.dosyadan B4:F804 hücrelerinde bulunan verileri kopyalıyorum )
Workbooks(MyWorkbook).Sheets("Graph").Range("A2").PasteSpecial ( Bu komut ile de bu verileri A2 hücresine yapıştırıyorum. A2:E802 hücrelerinde B4:F804 ten aldığım veriler var. )

Bu komuttan sonra macro çalışmaya devam ediyor. Döngü sonrasında bu sefer 2. bir dosyayı açıyor. Bu 2. dosyada
bir önceki işlemde olduğu gibi B4:F804 hücrelerinde bulunan verileri kopyalıyorum )
Workbooks(MyWorkbook).Sheets("Graph").Range("A2").PasteSpecial ( Bu komut ile de bu verileri A2 hücresine yapıştırıyorum.

Problem döngü sonrasında verileri hep A2 hücresine yapıştırdığım için, macro sonunda A2 hücresinde son açılan dosyanın verileri kalıyor. Daha önceki açılan veriler hep üstüne yazıyor.

Şu şekilde olmasını istiyorum.
ilk dosyada veriler A2 hücresine , ikinci dosyada F2 hücresine , üçüncü dosyada K2 hücresine veriler kopyalansın.

Elimdeki macro dosyası büyük ve diğer dosyalar ile beraber çalıştığı için yollayamıyorum.
istediğim sonuç ekteki dosyadaki gibi olmalı.

Bir türlü çözemedim. Yardım rica ediyorum.
tşkler.
 

Ekli dosyalar

  • test.xls
    test.xls
    193.5 KB · Görüntüleme: 14
Merhaba,

Aşağıdaki kod yapısını kullanabilirsiniz.

Kod:
Option Explicit
 
Sub ÖRNEK()
    Dim Sütun As Byte
    Sütun = 1
    
    'Sizin döngü kodlarınız
    
    Workbooks(MyWorkbook).Sheets("Graph").Cells(2, Sütun).PasteSpecial
    Sütun = Sütun + 5
    
    'Sizin döngü kodlarınız
End Sub
 
Bir sorum daha olacak arkadaşlar;

istediğim bütün verileri yardımlarınız sayesinde istediğim dosyaya alabiliyorum.

Bundan sonra uğraştığım konu ise, bu verileri aynı grafik üzerinde çizdirmek.
Verileri +5 sütun periyotla döngü ile grafiğe eklemek istiyorum. Döngüyü de veri tablosunda veri olmadığı zaman bitirecek.

ActiveChart.SetSourceData Source:=Sheets("Graph").Range("B1:E402,G1:J402,L1:O402,Q1:T402,V1:Y402,AA1:AD402,AF1:AI402,AK1:AN402,AP1:AS402,AU1:AX402,AZ1:BC402,BE1:BH402"), PlotBy _
:=xlColumns

Bu kodu nasıl döngü ile düzenleyebilirim.

B1:E402 , G1:J402 şeklinde devam ediyor.



Sub grafik()

Range("B1:E402").Select
Charts.Add
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Sheets("Graph").Range("B1:E402,G1:J402,L1:O402,Q1:T402,V1:Y402,AA1:AD402,AF1:AI402,AK1:AN402,AP1:AS402,AU1:AX402,AZ1:BC402,BE1:BH402"), PlotBy _
:=xlColumns
' Bu kod için döngü oluşturmak istiyorum.
ActiveChart.SeriesCollection(1).XValues = "=Graph!R2C1:R402C1"
ActiveChart.SeriesCollection(2).XValues = "=Graph!R2C1:R402C1"
ActiveChart.SeriesCollection(3).XValues = "=Graph!R2C1:R402C1"
ActiveChart.SeriesCollection(4).XValues = "=Graph!R2C1:R402C1"
ActiveChart.Location Where:=xlLocationAsNewSheet
ActiveChart.HasLegend = False
ActiveChart.PlotArea.Select
With Selection.Border
.ColorIndex = 5
.Weight = xlThin
.LineStyle = xlContinuous
End With
With Selection.Interior
.ColorIndex = 2
.PatternColorIndex = 1
.Pattern = xlSolid
End With
ActiveChart.Axes(xlValue).Select
With ActiveChart.Axes(xlValue)
.MinimumScale = 85
.MaximumScaleIsAuto = True
.MinorUnitIsAuto = True
.MajorUnitIsAuto = True
.Crosses = xlAutomatic
.ReversePlotOrder = False
.ScaleType = xlLinear
.DisplayUnit = xlNone
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Impedance"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Frekans"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Ohm"
End With

Sheets("Graph").Select
Cells.Select
Selection.NumberFormat = "0.00"
Sheets("Chart1").Select
End Sub

Teşekkürler.
 

Ekli dosyalar

Son düzenleme:
Merhaba arkadaşlar,

ActiveChart.SetSourceData Source:=Sheets("Graph").Range("B1:E402,G1:J402,L1: O402,Q1:T402,V1:Y402,AA1:AD402,AF1:AI402,AK1:AN402 ,AP1:AS402,AU1:AX402,AZ1:BC402,BE1:BH402"), PlotBy _
:=xlColumns

şekildeki komutu, aşağıdaki gibi döngü ile yapmadan önce komut formatını Cells içinde gösterilecek şekilde ayarlamaya çalışıyorum fakat macro devamlı hata veriyor.
tam komutu bulamadım. Yardımlarınız için şimdiden teşekkür ederim.


k=2
m=5

ActiveChart.SetSourceData Source:=Sheets("Graph").Range(Cells(2, k). Cells(402, m)), PlotBy _
:=xlColumns

k=k+5
m=m+5
 
Aradığım kodu buldum ;

fakat bu kod ile döngüyü tam oluşturamadım.

Range("B1:E402").Select
Charts.Add
ActiveChart.ChartType = xlLine
For k = 2 To 7 Step 5
For m = 5 To 10 Step 5
With ActiveWorkbook.Sheets("graph")
ActiveChart.SetSourceData Source:=.Range(.Cells(2, k), .Cells(402, m))
End With
Next m
Next k

Bu döngüyü

sırasıyla
Range(.Cells(2, 2), .Cells(402, 5))
Range(.Cells(2, 7), .Cells(402, 10))
Range(.Cells(2, 12), .Cells(402, 15))
.
.
.


Şeklinde oluşturmak istiyorum. Bunu nasıl yapabilirim arkadaşlar?

tşkler.
 

Ekli dosyalar

Geri
Üst