• DİKKAT

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

Soru sayıyaçevirme macrolarındaki sorun

Katılım
18 Ağustos 2009
Mesajlar
752
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Arkadaşlar birçok macro buldum denedim olanlar aşırı yavaş çalıştı,bazıları hata verdi. Ekteki sayfadaki tüm alanları otomatik olarak sayıya dönüştürmek istiyorum. Alan satır sayısını örnek için az tuttum 5000'e kadar gidebiliyor. En hızlı hangi macro ile çevirebiliriz?

Teşekkürler..
 

Ekli dosyalar

C++:
Sub TumSutunlariSayiyaDonustur()
    Dim huc As Range
    Dim h As Range
    Dim sonDoluHuc As Range
    Dim sutun As Integer
    
 
    For sutun = 1 To ActiveSheet.UsedRange.Columns.Count
        Set sonDoluHuc = ActiveSheet.Cells(ActiveSheet.Rows.Count, sutun).End(xlUp)
        If sonDoluHuc.Row = 1 Then
            GoTo SonrakiSutun
        End If
    For Each h In Range(Cells(1, sutun), sonDoluHuc)
        
            On Error Resume Next
            h.Value = CDbl(h.Value)
            On Error GoTo 0
    Next h
        
SonrakiSutun:
    Next sutun
End Sub

Mödül olarak ekleyip çalıştırın tüm hücreyi sayıya çevirecek.
 
Merhaba

Bu tür işlerde makroya gerek yok.
Herhangi bir hücreye 1 yazın, kopyalayın, Tabloyu seçin, özel yapıştır, çarp
 
C++:
Sub TumSutunlariSayiyaDonustur()
    Dim huc As Range
    Dim h As Range
    Dim sonDoluHuc As Range
    Dim sutun As Integer
   

    For sutun = 1 To ActiveSheet.UsedRange.Columns.Count
        Set sonDoluHuc = ActiveSheet.Cells(ActiveSheet.Rows.Count, sutun).End(xlUp)
        If sonDoluHuc.Row = 1 Then
            GoTo SonrakiSutun
        End If
    For Each h In Range(Cells(1, sutun), sonDoluHuc)
       
            On Error Resume Next
            h.Value = CDbl(h.Value)
            On Error GoTo 0
    Next h
       
SonrakiSutun:
    Next sutun
End Sub

Mödül olarak ekleyip çalıştırın tüm hücreyi sayıya çevirecek.


Bunu buldum ancak tek tek yaptığı için çok zaman alıyor. 1 dosyayı çevirmesi 10 dk dan fazla sürüyor. Excel'de sayıyadönüştür gibi hızlı yapan bir macro arıyorum hocam
 
Merhaba

Bu tür işlerde makroya gerek yok.
Herhangi bir hücreye 1 yazın, kopyalayın, Tabloyu seçin, özel yapıştır, çarp

Bu işlem hergün ve 10 ayrı dosyadan yapılan birşey olduğu için hergün aynı işlemle uğraşmamak için sayfada bulunan diğer macrolara ekleyerek hızlıca olması amacıyla bu şekilde birşey istiyorum
 
Örnek dosyanıza göre aşağıdaki kodu deneyin.

Kod:
Sub sayiyacevir()

Set s1 = Sheets("Sheet1")

sonsat = s1.Cells(Rows.Count, "A").End(3).Row

s1.Range("A2:W" & sonsat) = s1.Range("A2:W" & sonsat).Value

End Sub
 
Ben de Levent beyin çözümünü ilk defa gördüm.
Yeni bir şey öğrenmiş olduk.
E o zaman kodu biraz daha kısaltalım.

Kod:
Sub cevir()

ActiveSheet.UsedRange = ActiveSheet.UsedRange.Value

End Sub
 
Moderatör tarafında düzenlendi:
Usedrange kullanımı daha güzel bir çözüm olmuş. Teşekkürler Necdet Bey.
 
Ben Teşekkür ederim Levent bey.
Fikir sizdendi.
 
Geri
Üst