gelen veri içerisinden sayı olanları almak

Katılım
8 Eylül 2008
Mesajlar
950
Excel Vers. ve Dili
2016 İngilizce
merhabalar

elimde aşağıdaki gibi bir kod düzeneğim var. bu kod düzeneği A sütununda alt alta sıralı verilerden hostanem verisini alıp C sütunundaki ilk boşyere yazıyor. hemen altındaki (IMSI) verisi satırı varsa o satırı alıp D sütununa yazıyor. alt satırdaki (IMEI) içeren satırı ise E sütunundaki boş yere tüm veriyi yazıyor

şimdi ben şunu yapmak istiyorum. bu (IMSI) satırı ve (IMEI) satırı hem harf hem sayısal veri içermekte burada D ve E sütununa veriyi yazarken sadece sayısal olan veriyi yazsın istiyorum. tabi sayısal veri 11 haneden fazla olduğu için number formatında yazmalı.



örnek bir dosyada aşağıdaki linkte mevcuttur.

Kod:
Private Sub CommandButton2_Click()

Range("C2:G" & Rows.Count) = Empty

D = 1

For a = 1 To Cells(Rows.Count, 1).End(3).Row

b = Cells(a, 1).Value: c = 0: E = 0

If b Like "*.hostname*" Then c = 3: D = D + 1

If b Like "*(IMSI)*" Then c = 4

If b Like "*(IMEI)*" Then c = 5

If c > 0 Then

Cells(D, c) = Cells(a, 1)

End If

Next


End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,747
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

Kendinize göre düzenlersiniz.

C++:
Option Explicit

Sub Aktar()
    Dim Veri As Variant, Son As Long, X As Long, Say As Long, Zaman As Double
    
    Zaman = Timer
    
    Son = Cells(Rows.Count, 1).End(3).Row
    If Son = 2 Then Son = 3
    Veri = Range("A2:A" & Son).Value
    
    Range("C2:E" & Rows.Count).Clear
    Range("D2:E" & Rows.Count).NumberFormat = "@"
    
    ReDim Liste(1 To Son, 1 To 3)
    
    For X = LBound(Veri) To UBound(Veri)
        If InStr(1, Veri(X, 1), "_g") > 0 Then
            Say = Say + 1
            Liste(Say, 1) = Veri(X, 1)
        End If
        
        If InStr(1, Veri(X, 1), "(IMSI)") > 0 Then
            Liste(Say, 2) = WorksheetFunction.Trim(Split(Veri(X, 1), "=")(1))
            
        End If
    
        If InStr(1, Veri(X, 1), "(IMEI)") > 0 Then
            Liste(Say, 3) = WorksheetFunction.Trim(Split(Veri(X, 1), "=")(1))
        End If
    Next
    
    If Say > 0 Then
        Range("C2").Resize(Say, UBound(Liste, 2)) = Liste
    End If

    MsgBox "İşleminiz tamamlanmıştır." & Chr(10) & Chr(10) & _
           "İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye", vbInformation
End Sub
 
Katılım
8 Eylül 2008
Mesajlar
950
Excel Vers. ve Dili
2016 İngilizce
Üstadım emeğinize bilginize sağlık ne kadar teşekkür etsem azdır.
 
Üst