DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Public Sub Deneme()
Dim sonCol As Integer
Dim i As Long
Dim col As Integer
Dim arr As Variant
Dim c As Range
sonCol = Sheet1.Cells(2, Columns.Count).End(1).Column
col = 4
Do Until Sheet2.Cells(3, col) = ""
Set c = Sheet1.Range("B:B").Find(Sheet2.Cells(3, col), LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
Sheet2.Cells(2, col + 1) = Sheet1.Cells(c.Row, 3) 'Tarihi yazdırdık
arr = Sheet1.Range(Sheet1.Cells(c.Row, 4), Sheet1.Cells(c.Row, sonCol)).Value
Sheet2.Cells(5, col).Resize(UBound(arr, 2), 1) = Application.WorksheetFunction.Transpose(arr)
End If
col = col + 2
Loop
MsgBox "Listeleme Bitmiştir .....", vbInformation
End Sub
?????Merhaba! Spor verilerini Excel kullanarak analiz etmek gerçekten harika bir fikir. Excel, istatistiklerinizi düzenlemek ve görselleştirmek için güçlü bir araçtır. Dosyanızı inceledim ve size yardımcı olabilirim. Hangi verileri nasıl analiz etmek istediğinizi daha iyi anlamam için daha fazla ayrıntı verebilir misiniz? Size Excel'de nasıl ilerleyeceğinizi gösterebilirim. Kazançlar gibi farklı istatistikleri tutmak için de çok kullanışlıdır, çevrimiçi okuyun hakkında daha fazla bilgi edinebilirsiniz.
Buyrun.Merhaba,
Çok teşekkür ederim. Son bir sorum kaldı değerler - olarak geliyor ya nasıl onları + olarak getirebilirim
Public Sub Deneme()
Dim sonCol As Integer
Dim i As Long
Dim col As Integer
Dim arr As Variant
Dim c As Range
sonCol = Sheet1.Cells(2, Columns.Count).End(1).Column
col = 4
Do Until Sheet2.Cells(3, col) = ""
Set c = Sheet1.Range("B:B").Find(Sheet2.Cells(3, col), LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
Sheet2.Cells(2, col + 1) = Sheet1.Cells(c.Row, 3) 'Tarihi yazdırdık
arr = Sheet1.Range(Sheet1.Cells(c.Row, 4), Sheet1.Cells(c.Row, sonCol)).Value
For i = LBound(arr, 2) To UBound(arr, 2)
If Not arr(1, i) = "" Then arr(1, i) = Abs(arr(1, i))
Next i
Sheet2.Cells(5, col).Resize(UBound(arr, 2), 1) = Application.WorksheetFunction.Transpose(arr)
End If
col = col + 2
Loop
MsgBox "Listeleme Bitmiştir .....", vbInformation
End Sub
Public Sub Deneme()
Dim c As Range
Dim cc As Range
Dim adr As String
Dim i As Long
Dim j As Long
Dim a As Integer
Dim col As Integer
Dim irsNumberRow As Long
Dim aranan() As String
Dim irsRow As Integer
Dim irsCol As Integer
Dim PartNumberBasNo As Integer
Dim partnumberBsCol As Integer
Dim partnumberBtCol As Integer
Application.ScreenUpdating = False
With Sheet2.Range("A:A")
Set c = .Find("Part Number", LookIn:=xlValues)
If Not c Is Nothing Then
adr = c.Address
Do
ReDim Preserve aranan(i)
aranan(i) = c.Address
i = i + 1
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> adr
End If
End With
'Sheet2 deki tüm Part Number
For a = LBound(aranan) To UBound(aranan)
col = 4
irsRow = Range(aranan(a)).Offset(-1, 0).Row
PartNumberBasNo = Sheet2.Range(aranan(a)).Offset(1, 0).Value
'Part Number sheet1 de kaçıncı satırda bulunuyor
Set c = Sheet1.Cells.Find("Part Number", LookIn:=xlValues, LookAt:=xlWhole)
If c Is Nothing Then
MsgBox "Sheet1 de " & """Part Number""" & " bulunmadı..."
Exit Sub
Else
Set cc = Sheet1.Rows(c.Row).Find(PartNumberBasNo, LookIn:=xlValues, LookAt:=xlWhole)
If Not cc Is Nothing Then
partnumberBsCol = cc.Column
partnumberBtCol = cc.End(xlToRight).Column
End If
End If
Do Until Sheet2.Cells(irsRow, col) = ""
'sheet2 deki irs numberların sheet1 de aranıp aktarılması
Set c = Sheet1.Columns(2).Find(Sheet2.Cells(irsRow, col), LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
irsNumberRow = c.Row
' sheet1 de bulunan irs numberların Part No larının aktarımı
j = irsRow + 2
' Sheet2 ye tarihleri yazar
Sheet2.Cells(irsRow - 1, col + 1) = Sheet1.Cells(irsNumberRow, "C")
'tarihler yazıldı
For i = partnumberBsCol To partnumberBtCol
If Sheet1.Cells(irsNumberRow, i) < 0 Then
Sheet2.Cells(j, col) = Abs(Sheet1.Cells(irsNumberRow, i))
Else
Sheet2.Cells(j, col) = Sheet1.Cells(irsNumberRow, i)
End If
j = j + 1
Next i
End If
col = col + 2
Loop
Next a
Application.ScreenUpdating = True
End Sub
Öncelikler teşekkür ederim. Deneme yaptığım için biraz excellerde farklılık oldu. Kusura bakmayın. Bundan sonra excelleri netleştirip sorularda ona göre atarım. Elinize sağlık.Merhaba,
Kodları yazarken baya sıkılldım.
Nedenleri :
2 değişik formatta dosya paylaştınız.
formatların hiç biri birbirine benzemiyordu.
Örneğin ilk paylaştığınız dosyada hem Türkçe hem İngilizce sayfa adları vardı,
birinci dosyanın verileri 3. satırdan başlarken ikinci dosyanın verileri 6. satırdan başlıyor vs vs vs
Dolayısıyla çok kontrol yapmak zorunda kaldım ki Sonunda Sheet1 deki irs number ların B sütununda olduğunu varsaydım.
İnşallah bunu değiştirmek zorunda kalmazsınız.
En son dosyanın Sheet2 deki 2 ayrı tablonun da birbirine uyum sağlamıyordu, ki 2. tabloyu düzeltmek zorunda kaldım.
Kısacası baya sıkıldım.
Kodları deneyiniz.
Umarım atladığım bir şey olmamıştır.
Harici Link İçin TıklayınızKod:Public Sub Deneme() Dim c As Range Dim cc As Range Dim adr As String Dim i As Long Dim j As Long Dim a As Integer Dim col As Integer Dim irsNumberRow As Long Dim aranan() As String Dim irsRow As Integer Dim irsCol As Integer Dim PartNumberBasNo As Integer Dim partnumberBsCol As Integer Dim partnumberBtCol As Integer Application.ScreenUpdating = False With Sheet2.Range("A:A") Set c = .Find("Part Number", LookIn:=xlValues) If Not c Is Nothing Then adr = c.Address Do ReDim Preserve aranan(i) aranan(i) = c.Address i = i + 1 Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address <> adr End If End With 'Sheet2 deki tüm Part Number For a = LBound(aranan) To UBound(aranan) col = 4 irsRow = Range(aranan(a)).Offset(-1, 0).Row PartNumberBasNo = Sheet2.Range(aranan(a)).Offset(1, 0).Value 'Part Number sheet1 de kaçıncı satırda bulunuyor Set c = Sheet1.Cells.Find("Part Number", LookIn:=xlValues, LookAt:=xlWhole) If c Is Nothing Then MsgBox "Sheet1 de " & """Part Number""" & " bulunmadı..." Exit Sub Else Set cc = Sheet1.Rows(c.Row).Find(PartNumberBasNo, LookIn:=xlValues, LookAt:=xlWhole) If Not cc Is Nothing Then partnumberBsCol = cc.Column partnumberBtCol = cc.End(xlToRight).Column End If End If Do Until Sheet2.Cells(irsRow, col) = "" 'sheet2 deki irs numberların sheet1 de aranıp aktarılması Set c = Sheet1.Columns(2).Find(Sheet2.Cells(irsRow, col), LookIn:=xlValues, LookAt:=xlWhole) If Not c Is Nothing Then irsNumberRow = c.Row ' sheet1 de bulunan irs numberların Part No larının aktarımı j = irsRow + 2 ' Sheet2 ye tarihleri yazar Sheet2.Cells(irsRow - 1, col + 1) = Sheet1.Cells(irsNumberRow, "C") 'tarihler yazıldı For i = partnumberBsCol To partnumberBtCol If Sheet1.Cells(irsNumberRow, i) < 0 Then Sheet2.Cells(j, col) = Abs(Sheet1.Cells(irsNumberRow, i)) Else Sheet2.Cells(j, col) = Sheet1.Cells(irsNumberRow, i) End If j = j + 1 Next i End If col = col + 2 Loop Next a Application.ScreenUpdating = True End Sub