Merhabalar;
@muygun hocamın desteği ile bir miktar ilerleyebildim ama bilmeyince takılıp kalıyor insan..
1
Yapmış olduğum excell de Rapor Sayfasında;
H sütunu son dolu satıra git,
H tan O ya kadar olan bölümü Bold yap
2
H sütünunun en son dolu satırının 1 altına in ve dolu satırdan bir öncesinden başyayarak H4 e kadar olan toplamı al.
Aldığın toplamı H ın en son satırı ile karşılaştır. Şayet eşit se dolgu yeşi, eşit değilse dolgu kırmızı.
3
B sütununda bulunan her firma için;
H+I+J+K+L+M+N (ve belkide ileride +O+P) toplamını P ye yaz.
O-P yi Q ya yaz ..
Şimdi siz diyeceksiniz ki arkadaş bunları basit formüller ile niye yapmıyorsun bu excel süreç içerisinde fena şekiller alacak. O nedenle öğrenem lazım vba ile bu işlemler nasıl yapılır.
Mevcut Durum;
Sub bakiyesi_olanları_getir()
Application.ScreenUpdating = False
On Error Resume Next
Set s1 = ThisWorkbook.Worksheets("BORC")
Set s2 = ThisWorkbook.Worksheets("Rapor")
s2.Range("B4:O65536").ClearContents
s2.Range("B4:O65536").Borders.LineStyle = xlNone
Sheets("BORC").Select
Selection.AutoFilter Field:=1
Selection.AutoFilter Field:=2
Selection.AutoFilter Field:=3
Selection.AutoFilter Field:=4
Selection.AutoFilter Field:=5
Selection.AutoFilter Field:=6
Selection.AutoFilter Field:=7
Selection.AutoFilter Field:=8
Selection.AutoFilter Field:=9
Selection.AutoFilter Field:=10
Sheets("Rapor").Select
Selection.AutoFilter Field:=1
Selection.AutoFilter Field:=2
Selection.AutoFilter Field:=3
Selection.AutoFilter Field:=4
Selection.AutoFilter Field:=5
Selection.AutoFilter Field:=6
Selection.AutoFilter Field:=7
Selection.AutoFilter Field:=8
Selection.AutoFilter Field:=9
Selection.AutoFilter Field:=10
For i = 13 To s1.Range("B65536").End(xlUp).Row + 1
If s1.Cells(i, "O") < -5 Then
sonsatir = s2.Range("B65536").End(xlUp).Row + 1
For O = 2 To 15
s2.Cells(sonsatir, O) = s1.Cells(i, O)
Next O
s2.Range("B" & sonsatir & ":O" & sonsatir).Borders.LineStyle = xlContinuous
s2.Range("H4" & sonsatir & ":O" & sonsatir).NumberFormat = "$* #,##0;$* #,##0"
End If
Next i
Application.ScreenUpdating = True
MsgBox "Rapor Hazır", vbInformation
End Sub
Şimdiden teşekkürler
@muygun hocamın desteği ile bir miktar ilerleyebildim ama bilmeyince takılıp kalıyor insan..
1
Yapmış olduğum excell de Rapor Sayfasında;
H sütunu son dolu satıra git,
H tan O ya kadar olan bölümü Bold yap
2
H sütünunun en son dolu satırının 1 altına in ve dolu satırdan bir öncesinden başyayarak H4 e kadar olan toplamı al.
Aldığın toplamı H ın en son satırı ile karşılaştır. Şayet eşit se dolgu yeşi, eşit değilse dolgu kırmızı.
3
B sütununda bulunan her firma için;
H+I+J+K+L+M+N (ve belkide ileride +O+P) toplamını P ye yaz.
O-P yi Q ya yaz ..
Şimdi siz diyeceksiniz ki arkadaş bunları basit formüller ile niye yapmıyorsun bu excel süreç içerisinde fena şekiller alacak. O nedenle öğrenem lazım vba ile bu işlemler nasıl yapılır.
Mevcut Durum;
Sub bakiyesi_olanları_getir()
Application.ScreenUpdating = False
On Error Resume Next
Set s1 = ThisWorkbook.Worksheets("BORC")
Set s2 = ThisWorkbook.Worksheets("Rapor")
s2.Range("B4:O65536").ClearContents
s2.Range("B4:O65536").Borders.LineStyle = xlNone
Sheets("BORC").Select
Selection.AutoFilter Field:=1
Selection.AutoFilter Field:=2
Selection.AutoFilter Field:=3
Selection.AutoFilter Field:=4
Selection.AutoFilter Field:=5
Selection.AutoFilter Field:=6
Selection.AutoFilter Field:=7
Selection.AutoFilter Field:=8
Selection.AutoFilter Field:=9
Selection.AutoFilter Field:=10
Sheets("Rapor").Select
Selection.AutoFilter Field:=1
Selection.AutoFilter Field:=2
Selection.AutoFilter Field:=3
Selection.AutoFilter Field:=4
Selection.AutoFilter Field:=5
Selection.AutoFilter Field:=6
Selection.AutoFilter Field:=7
Selection.AutoFilter Field:=8
Selection.AutoFilter Field:=9
Selection.AutoFilter Field:=10
For i = 13 To s1.Range("B65536").End(xlUp).Row + 1
If s1.Cells(i, "O") < -5 Then
sonsatir = s2.Range("B65536").End(xlUp).Row + 1
For O = 2 To 15
s2.Cells(sonsatir, O) = s1.Cells(i, O)
Next O
s2.Range("B" & sonsatir & ":O" & sonsatir).Borders.LineStyle = xlContinuous
s2.Range("H4" & sonsatir & ":O" & sonsatir).NumberFormat = "$* #,##0;$* #,##0"
End If
Next i
Application.ScreenUpdating = True
MsgBox "Rapor Hazır", vbInformation
End Sub
Şimdiden teşekkürler