• DİKKAT

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

Excel de sütun da ki + değeri - Negatife çevirme hk.

Katılım
5 Aralık 2015
Mesajlar
113
Excel Vers. ve Dili
windows 10 Pro TR
Arkadaşlar merhabalar
VBA da Excel sayfasına kaydettiğim [ Sheets("Sorgu2").Range("L2:P100") ] deki değerleri, Nasıl bir kod la, O sütunlardaki (+) Pozitif değerleri, (-) Negatife çevirebilirim.
İlgilenen kardeşlerimize şimdiden teşekkürlerimi iletir , Herkese sağlıklı günler dileği ile Selamlar.
 
Direkt hücre biçimlendirmeden
L2:P100 aralığını seçip
isteğe uyarlanmış
-0,00;-0,00;

yaparsanız tüm pozitif değerler negatife dönüşür
Virgül formatını istediğiniz gibi ayarlayabilirsiniz.

Mesala aşağıdaki gibi de olabilir.
-0;-0;0
 
Negatife çevirmek istediğin alanı seçtikten sonra;

Kod:
Sub negatif()

Dim hcr As Range
For Each hcr In Selection
If IsNumeric(hcr.Value) Then
hcr.Value = -1 * (hcr.Value)
End If
Next hcr

End Sub

kodu çalıştırınız.
 
Direkt hücre biçimlendirmeden
L2:p100 aralığını seçip
isteğe uyarlanmış
-0,00;-0,00;

yaparsanız tüm pozitif değerler negatife dönüşür
Virgül formatını istediğiniz gibi ayarlayabilirsiniz.

Mesala aşağıdaki gibi de olabilir.
-0;-0;0
Teşekkürler Ömer Faruk bey kardeşim sayeniz de bu yolu da öğrenmiş oldum.
Ama bu yol Sabit sayfa satırı olarak kalıyor, Aynı "Sorgu2" sayfasını başka verilerde de kullanıyorum, bu işlemi formül yada Kod la yapabilir miyiz.
Sağlıklı günler dileği ile Selamlar.
 
[TR][TD]
Dim x As Long
[/TD][/TR]
[TR][TD]
Dim y As Byte
[/TD][/TR]
[TR][TD]
Dim st As Byte
[/TD][/TR]
[TR][TD]
Dim hcr As Range
[/TD][/TR]
[TR][TD]
st = 1
[/TD][/TR]
[TR][TD]

[/TD][/TR]
[TR][TD]
For x = 2 To 1000000
[/TD][/TR]
[TR][TD]
If Sheets("FaturaHareketleri").Range("A" & x).Value = "" Then Exit For
[/TD][/TR]
[TR][TD]
If Sheets("FaturaHareketleri").Range("A" & x).Value = LstFaturalar.List(LstFaturalar.ListIndex, 0) Then ' Burası Fatura kodu
[/TD][/TR]
[TR][TD]
st = st + 1
[/TD][/TR]
[TR][TD]
For y = 1 To 17
[/TD][/TR]
[TR][TD]
Sheets("Sorgu2").Cells(st, y).Value = Sheets("FaturaHareketleri").Cells(x, y).Value
[/TD][/TR]
[TR][TD]
( ? ? ? )
[/TD][/TR]
[TR][TD]
Sheets("Sorgu2").Cells(st, y).Value = Sheets("FaturaHareketleri").Cells(x, y).Value * -1 ' Burada *-1 kullanırsam Sayısal verileri (-) yapıyor, ama [ Bu formüle "FaturaHareketleri" sayfasın dan X in "A:p" ye kadar kaç satırı varsa "Sorgu2" sayfasına getiriyor ] B sütununda ki değerler Tarih olduğun dan B sütununu bozuyor. ( ? ? ? ) olan satıra nasıl bir kod yazarsak B sütununu tekrar tarih olarak düzeltiriz. Yada B sütununa ( X in satır sayısı kadar ) =BUGÜN() Tarihini getirirsek daha iyi olacak.
[/TD][/TR]
[TR][TD]
Not: "Sorgu2" sayfasına X in satıları ne kadarsa "FaturaHareketleri" sayfasından gelecek A dan : P ye kadar, bunun I dan P ye kadarını (-) çevirecek, B sütunun, kaç satır ise arık. B sütununu { =BUGÜN() } yapacak veya [ FrmFatura.TxtDtTarihi.Value ] alacak. Başa bir kod da olabilir.
[/TD][/TR]
[TR][TD]
If IsNumeric(hcr.Value) Then
[/TD][/TR]
[TR][TD]
hcr.Value = -1 * (hcr.Value)
[/TD][/TR]
[TR][TD]
End If
[/TD][/TR]
[TR][TD]
Next hcr
[/TD][/TR]
[TR][TD]

[/TD][/TR]
[TR][TD]
Next
[/TD][/TR]
[TR][TD]
End If
[/TD][/TR]
[TR][TD]
Next
[/TD][/TR]
 
Teşekkürler Tahsin bey kardeşim
sanırım yanlış uyguladım Prosödür olduğunu yeni fark ettim tekrar deneyeceğim.
Ben aşağıdaki kod ları Kullanıyordum.

Dim x As Long
Dim y As Byte
Dim st As Byte
st = 1
For x = 2 To 1000000
If Sheets("FaturaHareketleri").Range("A" & x).Value = "" Then Exit For
If Sheets("FaturaHareketleri").Range("A" & x).Value = LstFaturalar.List(LstFaturalar.ListIndex, 0) Then ' Burada ("A" & x) Fatura kodu A Sütununda
st = st + 1
For y = 1 To 17
Sheets("Sorgu2").Cells(st, y).Value = Sheets("FaturaHareketleri").Cells(x, y).Value
( ? ? ? )
Sheets("Sorgu2").Cells(st, y).Value = Sheets("FaturaHareketleri").Cells(x, y).Value *-1' Burada *-1 kullanırsam Sayısal verileri (-) yapıyor, ama
[ Bu formüle "FaturaHareketleri" sayfasın dan X in "A
dan P ?" ye kaç satırı varsa "Sorgu2" sayfasına getiriyor ] B sütununda ki değerler Tarih olduğun dan B sütununu bozuyor. ( ? ? ? ) olan satıra nasıl bir kod yazarsak B sütununu tekrar tarih olarak düzeltiriz. Yada B sütununa ( X in satır sayısı kadar ) =BUGÜN() Tarihini getirirsek daha iyi olacak.

Not: "Sorgu2" sayfasına x in satıları ne kadar ise "FaturaHareketleri" sayfasından gelecek A dan : P ye kadar, bunun I dan P ye kadarını (-) çevirecek, B sütunun, kaç satırı var ise artık.
B sütununu {
=BUGÜN() } yapacak Ya da [ FrmFatura.TxtDtTarihi.Value ] alacak.
Başa bir kod da olabilir


Next
End If
Next

Tekrar alakanız için Sağ olun, sağlıklı günler dileği ile Selamlar.
 
Son düzenleme:
Örnek dosya olursa daha sağlıklı çözümler gelir.
 
Geri
Üst