• DİKKAT

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

Sayı eksiltme

Katılım
4 Mart 2010
Mesajlar
292
Excel Vers. ve Dili
2010 TÜRKÇE
Ister yazarak,ister başka yerden kopyalayıp yapıştırdığımız
sayıların (başında sıfır varsa onu saymıyoruz) ilk 7 rakamını
otomatik olarak yapmasını istiyoruz..

Teşekkürler...
 

Ekli dosyalar

Aşağıdaki kodları ilgili sayfanın kod bölümüne yazarsanız, B3'ten itibaren aşağıya doğru sayı girildikçe ilk yedi rakamı alır:

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
son = WorksheetFunction.Max(3, Cells(Rows.Count, "B").End(3).Row + 1)
If Intersect(Target, Range("B3:B" & son)) Is Nothing Then Exit Sub
If IsNumeric(Target) = True Then
Application.EnableEvents = False
Target = Left(Target, 7)
Application.EnableEvents = True
End If
End Sub
 
Burada kodunuzu kullandım.Eğer tek tek yapıştırırsam oluyor.
Fakat ben topluca (yüzlerce diyebilirim) kopyala yapıştır yapmalıyım.
Onu da ayarlamamız lazım...
Birde başında sıfırlar gözüküyor.
teşekkürler..
 
Son düzenleme:
Aşağıdaki kodları bir modüle kopyalayıp çalıştırdığınızda B3'ten itibaren sayıların ilk 7 rakamını alır.

Kod:
Sub rakam()
son = WorksheetFunction.Max(3, Cells(Rows.Count, "B").End(3).Row + 1)
For i = 3 To son
If IsNumeric(Cells(i, "B")) = True Then
Cells(i, "B") = Left(Cells(i, "B"), 7)*1
End If
Next
End Sub

Sıfır nasıl görünüyor anlamıyorum. Koddaki *1 kısmı başındaki sıfırı kaldırmak için var.
 
Merhaba,

Alternatif olarak aşağıdaki kodu kullanabilirsiniz. Hedef hücrede ve kopyalama yapılan alanda çalışır.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Intersect(Target, Range("b3:b10")) Is Nothing Then Exit Sub

Application.EnableEvents = False
Target.Value = Left(Target, 7)
For Each alan In Selection
alan.Value = Left(alan, 7)
Next
Application.EnableEvents = True

End Sub
 
Geri
Üst