• DİKKAT

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

G sütunundaki Tutar sütunundaki bedellerin önüne topluca (-) işareti nasıl konulur?

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,588
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Pro x64 TR
Değerli Dostlar,


Ekteki dosya da yıllık 2000 satıra yaklaşan harcamaları izliyorum.

Bu konuda daha önce aşağıdaki linkteki soruma Sayın ÖmerBey tarafından verilen yanıt, her bir satırdaki "Ödendi" seçildiğinde çalışmaktadır.


Ancak, H sütunu (Durumu) "Ödendi" kayıtları filtre ile seçtiğimde, G sütunu (Tutar) önüne topluca makroyla (-) eksi konması için makro kodu nasıl olmalıdır?

Yardımınızı rica ediyorum.
 

Ekli dosyalar

Hücre Biçimlendirme kodu, deneyiniz.
Kod:
[g2:g100].NumberFormat = "- #,##0.00"
 
Üstadım,

Teşekkürler. Kusura bakmayın önerinizi başaramadım. Makro ile çözüm olabilir mi?
 
Destek ekibinden Sayın ÖmerBey'in aşağıdaki kodu:

Sub kod()
Dim tutar As Double, a As Integer
For a = 2 To Cells(Rows.Count, "H").End(3).Row
tutar = Cells(a, "G")
Cells(a, "G") = IIf(Cells(a, "H") = "Ödendi", -1 * Abs(tutar), Abs(tutar))
Next
End Sub

tek, tek "Ödendi" tıklandığında çalışmaktadır. ilk mesajımda değindiğim gibi, tutar önüne topluca (-) işareti konulması için kodda nasıl bir değişik yapmak gerekiyor.?
 
Merhaba Selim Bey,

Önerilen kod zaten döngü ile işlem yapıyor.

Alternatif;

Hız olarak daha iyi sonuç verecektir.

C++:
Option Explicit

Sub Eksi_Yap()
    Dim Veri As Variant, Son As Long, X As Long
    
    Son = Cells(Rows.Count, 1).End(3).Row
    Veri = Range("G2:H" & Son).Value
    
    ReDim Liste(1 To UBound(Veri), 1 To 1)
    
    For X = 1 To UBound(Veri)
        If Veri(X, 2) = "Ödendi" Then
            If Veri(X, 1) > 0 Then
                Liste(X, 1) = Veri(X, 1) * -1
            Else
                Liste(X, 1) = Veri(X, 1) * -1
            End If
        ElseIf Veri(X, 2) = "Ödenmedi" Or Veri(X, 2) = Empty Then
            Liste(X, 1) = Abs(Veri(X, 1))
        End If
    Next
    
    Range("G2").Resize(X - 1) = Liste
    
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Sayın Korhan Ayhan,

Üstadım gününüz aydınlık, neşeniz, sağlığınız yerinde ve kazancınız bol olsun.

Yardımınız için gönülden teşekkür eder. Sevgi ve saygılarımı sunarım.
 
Alternatif olarak ekleme yapmak istiyorum.
Herhangi bir alandaki sayıların işaretini değiştirmek için boş bir hücreye -1 yazın ve bu hücreyi kopyalayın. İşareti değiştirilecek alanı seçin ve sağ tıklayıp özel yapıştır menüsünü açın. Açılan menüde "Değerler"i ve "Çarp"ı seçip işlemi tamamlayın. Bu hücrelerin biçimini de - görünecek şekilde ayarlamanız gerekmektedir.
 
Sayın YUSUF44,

Bilgilendirmeniz için çok teşekkür eder, sevgi ve saygılarımı sunarım.
Sağ olun, var olun.
 
Değerli Dostlar,


Sayın Korhan Ayhan'ın 5. iletideki kodu hızlı çalışıyor ve "H" sütununda" Ödendi" yazılı olan kayıtların, "G" sütunundaki tutarların başına "-" işareti geliyor.

Ancak, daha önce A sütununda en son boş hücre üzerinde çift tıkladığımda; üst satırdaki kaydın tümü, daha önce bir alt satıra kopyalanırken, artık bir alt satıra kopyalanmıyor ve hata iletisi alıyorum.

Makro bilgim olmadığı için, sorunun çözümüne ilişkin yardımınızı rica ediyorum.
 

Ekli dosyalar

Son düzenleme:
Sayın Korhan Ayhan'ın kodu modüle; üst satırı kopyalama kodu Sayfa kodu kısmına kopyalanınca, sorun ÇÖZÜLDÜ.
 
Geri
Üst