• DİKKAT

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

Virgülden sonraki rakamlar

Katılım
17 Mart 2011
Mesajlar
3
Excel Vers. ve Dili
2010
Merhaba;
virgülden öncesi aynı virgülden sonrası farklı alt alta sıralanmış rakamlarım var. virgülden önceki rakamı bi defa yazmak kaydıyla bi alt satıra sadece virgül koyup virgülden önceki rakamın gelmesini nasıl yapabilirim
 
Merhaba,

Çalışma sayfasının kod bölümüne kopyalayın.
A1 deki değerin tam sayı bölümünü alır, alt hücrelerde veri girerken virgül koyup veriyi girerseniz istediğiniz sonuca ulaşırsınız.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
 
    Dim deg As Double
 
    If Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub
    
    deg = Val(Range("A1"))
    
    With Target
        If .Row < 2 Then Exit Sub
        If .Value = "" Then Exit Sub
        Application.EnableEvents = False
            .Value = deg + .Value
        Application.EnableEvents = True
    End With
 
End Sub

.
 
Merhaba,

Çalışma sayfasının kod bölümüne kopyalayın.
A1 deki değerin tam sayı bölümünü alır, alt hücrelerde veri girerken virgül koyup veriyi girerseniz istediğiniz sonuca ulaşırsınız.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
 
    Dim deg As Double
 
    If Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub
    
    deg = Val(Range("A1"))
    
    With Target
        If .Row < 2 Then Exit Sub
        If .Value = "" Then Exit Sub
        Application.EnableEvents = False
            .Value = deg + .Value
        Application.EnableEvents = True
    End With
 
End Sub

.

virgül konmadan yazıldığında ise tamsayı ile a1 hücresindeki değer toplanıyor.
bir de her seferinde bir üst hücredeki sayının tamsayısını alan bir kod olsa.
 
Bu şekilde deneyin.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
 
    Dim deg As Double
 
    If Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub
    
    With Target
        If .Row < 2 Then Exit Sub
        deg = Val(.Offset(-1, 0))
        If .Value = "" Or .Value = 0 Then Exit Sub
        If IsNumeric(.Value) = False Then Exit Sub
        Application.EnableEvents = False
            If Left(.Value, 1) = 0 Then
                .Value = deg + .Value
            End If
        Application.EnableEvents = True
    End With
  
End Sub

.
 
Teşekkürler işime cok yaradı fakat belirtilen hücrelerin üzerine veri kopyaladıgım zaman "Run time error '13': Type mismatch" Hatası alıyorum.
 
Geri
Üst