Sayının sonundaki eksiyi başa getirmek

Katılım
28 Kasım 2007
Mesajlar
919
Excel Vers. ve Dili
Office 2010 İngilizce
Merhaba arkadaşlar,

Kod:
Sub eksi_duzelt()

For a = 3 To WorksheetFunction.CountA(Range("A:A"))
If Cells(a, 1).Value > 0 Then
Cells(a, 8).Value = Right(Cells(a, 8)) = "-"
Cells(a, 8) = "-" & Mid(Cells(a, 8), 1, Len(Cells(a, 8)) - 1)
End If

If Cells(a, 8) < 0 Then
     Cells(a, 8).NumberFormat = "#,##0.00_ ;[Red]-#,##0.00 "
     End If
     Next a
 

End Sub
Sub ort_vade_duzelt_abs()
For a = 3 To WorksheetFunction.CountA(Range("A:A"))
If Cells(a, 1).Value > 0 Then
Cells(a, 8).Value = Abs(Cells(a, 8))
ElseIf Cells(a, 8).Value >= 1 Then
Cells(a, 8).Value = Cells(a, 8).Value * -1
End If
Next a
End Sub
H kolonuna veri 16-,200-, 200,25-,yada 200 formatında geliyor. Böyle oluncade sayı gözüken bu rakamlar aslında sayı olmuyor. Bunun için yukarıda ki iki kodu yazdım.Ama olmadı yardımcı olur musunuz lütfen ? Önce eksileri rakamın önüne alıyorum. Daha sonrada mutlak değer aldırarak sonuca ulaşmaya çalıştım.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,844
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
dosyanızı eklermisiniz
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
merhaba
sanki sol kulağınızı sağ elle tutmaya çalışmışsınız gibi görünüyor.
sondaki "-" işaretini başa alıp sonra mutlak değeri almaya gerek yok, silin gitsin. sonrada *1 ile çarparak sayıya dönüştürün.
örnek dosya eklerseniz daha çabuk yanıt alırsınız.
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
merhaba
kod yerine formül kullansanız olur mu?

Kod:
=YERİNEKOY(H3;"-";"")*1
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,844
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
bu kodu denermisiniz

Sub eksi_duzelt()
For a = 3 To WorksheetFunction.CountA(Range("A:A")) + 1
On Error Resume Next
say = Trim(Len(Cells(a, 8)))
yer = Trim(Mid(Cells(a, 8), say, say))
If yer = "-" Then
Cells(a, 8).Value = Trim(Mid(Cells(a, 8), 1, say - 1)) * 1
Else
Cells(a, 8).Value = Cells(a, 8).Value * 1
End If
Next a
End Sub
 
Katılım
28 Kasım 2007
Mesajlar
919
Excel Vers. ve Dili
Office 2010 İngilizce
Yukarıdaki kod sadece eksileri düzeltiyor arada sonunda eksi olmayan rakamlarda var onlarıda -1 ile çarpması gerekiyor.
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
merhaba
bende kulağımı tersten tutayım :)

Kod:
Sub sayıya_cevir()
son = Sheets("deneme").[A65536].End(3).Row
For i = 2 To son
Cells(i, 9) = WorksheetFunction.Substitute((Cells(i, 8)), "-", "")
Cells(i, 8) = Cells(i, 9) * 1
Cells(i, 9) = ClearContents
Next
End Sub
nedendir bilinmez, aynı hücrede hem yerine koyup hemde *1 ile çarpamadım :(
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,844
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
hepsini düzeltiyor ve sayıya çeviriyor
 

Ekli dosyalar

Katılım
28 Kasım 2007
Mesajlar
919
Excel Vers. ve Dili
Office 2010 İngilizce
Arkadaşlar H4 hücresinde 11,27 var ve yanında "-" yok. Bunuda tam tersi yapması gerekiyor. Yani toplamı düşürmesi gerekiyor.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,844
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
sorunu anlayamadım H4 hücresindeki 11.27 boşmu olması lazım yoksa 11.27- mi olması lazım yoksa -11.27 mi olması lazım
 
Katılım
28 Kasım 2007
Mesajlar
919
Excel Vers. ve Dili
Office 2010 İngilizce
-11.27 olması gerekiyor. Çünkü o verilerin hepsinin yanında "-" yok bazıları 11,27 gibi yanlarında "-" yok ise -1 ile çarpması gerekiyor.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,844
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
bu kodu kullun

Sub eksi_duzelt()
For a = 3 To WorksheetFunction.CountA(Range("A:A")) + 1
On Error Resume Next
say = Trim(Len(Cells(a, 8)))
yer = Trim(Mid(Cells(a, 8), say, say))
If yer = "-" Then
Cells(a, 8).Value = Trim(Mid(Cells(a, 8), 1, say - 1)) * 1
Else
Cells(a, 8).Value = Cells(a, 8).Value * -1
End If
Next a
End Sub
 
Katılım
28 Kasım 2007
Mesajlar
919
Excel Vers. ve Dili
Office 2010 İngilizce
Sub ort_vade_duzelt()
For a = 3 To WorksheetFunction.CountA(Range("A:A")) + 4
If Cells(a, 1).Value > 0 Then
Cells(a, 8).Value = CDbl(Cells(a, 8))

End If
Next a

Columns("h:h").Style = "Comma"
End Sub
arkadaşlar ben sorunumu yukarıdaki kodla çözdüm sanırım. Yanlız şöyle bir problemim var. Yukarıdaki kodla H kolonundaki sıra takip eden hücreleri düzelttim. Fakat en son hücreden sonra bir boşluk var ondan sonrada bir sayı mevcut onu düzeltemedim
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,641
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
bir sayının neden sonunda (-) olsun :dusun:
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,844
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
sayın hoso excel a kodda A sutununda değer varsa H sutunundaki verileri düzeltir eğer satırda boşluk varsa düzeltme işlemini boşluk sayısı kadar eksik düzeltir bu durumda A56 ve A57 Hücrelerine bir değer koyarsanız H hücresinde karşılık gelen satırlarıda düzeltir.
 
Katılım
28 Kasım 2007
Mesajlar
919
Excel Vers. ve Dili
Office 2010 İngilizce
Sub FF()
sat = Cells(65536, "H").End(xlUp).Row
Cells(sat, "H").Value = CDbl(Cells(h, 8))
End Sub
Yukarıdaki kodda nerde hata yapıyorum acaba arkadaşlar, H kolonundaki son hücreyi "Cells(sat, "H").Value = CDbl(Cells(h, 8))" bu formulle düzeltmeya çalışıyorum olmuyor.
 
Katılım
28 Kasım 2007
Mesajlar
919
Excel Vers. ve Dili
Office 2010 İngilizce
Sub ZFI0060_DUZELT()
For a = 3 To WorksheetFunction.CountA(Range("A:A")) + 2
If Cells(a, 1).Value > 0 Then
Cells(a, 8).Value = CDbl(Cells(a, 8))

End If
Next a
sat = Cells(65536, "H").End(xlUp).Row
Cells(sat, "H").Value = CDbl(Cells(sat, 8))

Columns("h:h").Style = "Comma"
End Sub
Arkadaşlar problemimi yukarıdaki kod ile çözdüm. Herkeze çok teşekkür edeim ilgilerinden dolayı.
 
Üst