• DİKKAT

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

Excel vba kodlarda revize

1903emre34@gmail.com

Altın Üye
Katılım
29 Mayıs 2016
Mesajlar
946
Excel Vers. ve Dili
Microsoft Excel 2013 Türkçe
Merhaba,

Aşağıdaki kodlarla, sayfa1'deki verileri, sayfa 2'ye aktarılıyor, ama Kümüle bakiye altındaki rakamların eksi işaretli olarak gözükmemesini istiyorum, istenen sayfa 3'de yapılmıştır.


Kod:
Option Explicit
Sub aktar()
Dim a(), b(), deg As Variant
Dim i As Long, Say As Long, S1 As Worksheet, S2 As Worksheet
Set S1 = Sheets("Sayfa1")
Set S2 = Sheets("Sayfa2")
a = S1.Range("A2:I" & S1.Cells(Rows.Count, 1).End(3).Row).Value
ReDim b(1 To UBound(a), 1 To 4)
    For i = 1 To UBound(a)
        deg = "Ara toplam*"
        If a(i, 1) Like deg Then
            Say = Say + 1
            b(Say, 1) = Right(a(i, 1), 3)
            b(Say, 2) = a(i, 5) + a(i, 7)
            b(Say, 3) = a(i, 8)
            b(Say, 4) = a(i, 9)
        End If
    Next i
    Application.ScreenUpdating = False
    If Say > 0 Then
        S2.Select
        S2.Range("B2:E" & Rows.Count).ClearContents
        S2.[B2].Resize(Say, 4) = b
        S2.[C2].Resize(Say, 3).NumberFormat = "#,##0.00"
    End If
    Application.ScreenUpdating = True
End Sub
 
Son düzenleme:
Kırmızı olan kodu ekleyin.

Kod:
        If a(i, 1) Like deg Then
            Say = Say + 1
            b(Say, 1) = Right(a(i, 1), 3)
            b(Say, 2) = a(i, 5) + a(i, 7)
            b(Say, 3) = a(i, 8)
          [COLOR=Red]  If a(i, 9) < 0 Then a(i, 9) = a(i, 9) * -1[/COLOR]
            b(Say, 4) = a(i, 9)
        End If

Daha basit nasıl olur diye baktığımda
Kod:
  If a(i, 1) Like deg Then
            Say = Say + 1
            b(Say, 1) = Right(a(i, 1), 3)
            b(Say, 2) = a(i, 5) + a(i, 7)
            b(Say, 3) = a(i, 8)
            b(Say, 4) = [COLOR=Red]abs([/COLOR]a(i, 9)[COLOR=Red])[/COLOR]
   End If
 
Geri
Üst