Hücredeki veriyi diğer hücrelere ayırarak aktarmak

1Al2Ver

Altın Üye
Katılım
5 Kasım 2007
Mesajlar
4,711
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Altın Üyelik Bitiş Tarihi
04-01-2026
Merhaba,

Ek'li dosyada Modül1'de kayıtlı macro, A1'den itibaren kayıtlı olan verilerden, rakam olanları alıp, B1'den itibaren sıralamaktadır, yani karşısına yazmaktadır.

İstenen ise; A2 den itibaren ( A2:A) kayıt edilen verileri cinsi, miktarı ve birimine göre B2 (B2:B) ve C2 (C2:C) den itibaren sıralatmaktır.

Teşekkür ederim.
 

1Al2Ver

Altın Üye
Katılım
5 Kasım 2007
Mesajlar
4,711
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Altın Üyelik Bitiş Tarihi
04-01-2026
Merhaba,

Veri--Metni Sütunlara Dönüştür , uygulaması ile istediğime ulaşamadım, malum hücredeki veriyi boşlukları dikkate alarak sütunlara ayırıyor, dolayısıyla Veri--Metni Sütunlara Dönüştür ile tam istediğim çözüm olamadı.

Mevcut kodda değişiklik mi gerekiyor, yoksa kod yeniden mi yazılmalı ?

Kodda olası değişiklikleri veya yeni kod gerekli ise kodu rica ediyorum,

Saygılarımla
 

BG

Özel Üye
Katılım
5 Mayıs 2008
Mesajlar
1,378
Excel Vers. ve Dili
Office 2021 TR & EN
sayın 1Al2Ver

soyle birsey mi ? dogru mu anladim acaba?
dosyanız ektedir.
 

1Al2Ver

Altın Üye
Katılım
5 Kasım 2007
Mesajlar
4,711
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Altın Üyelik Bitiş Tarihi
04-01-2026
soyle birsey mi ? dogru mu anladim acaba?
dosyanız ektedir.
Sayın brain, merhaba

A sütununda sadece malzemenin adı kalacak ( Çilek Reçeli ) diğer sütunlar için sorun yok

İlginiz için teşekkür ederim
 

1Al2Ver

Altın Üye
Katılım
5 Kasım 2007
Mesajlar
4,711
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Altın Üyelik Bitiş Tarihi
04-01-2026
Projenin ; A sütununda sadece malzemenin adı kalacak ( Örn ; Çilek Reçeli ) diğer sütunlar için sayın Brain'in çözümüne sorun yok

ilgilenen arkadaşlara teşekkür ederim,
 
Katılım
7 Temmuz 2004
Mesajlar
327
Excel Vers. ve Dili
office xp pro türkçe
Kod:
Sub RakamAl()
Dim birim As String
Columns("B").ClearContents
For i = 1 To [A65536].End(3).Row
    metin = Cells(i, "A")
    sayı = ""
   
    For j = 1 To Len(metin)
        Karakter = Mid(metin, j, 1)
         birim = Right(metin, 2)
        If IsNumeric(Karakter) = True Or Karakter = "." Or Karakter = "," Then
            sayı = sayı & Karakter
        End If
    Next j
    
    Cells(i, "A") = Mid(metin, 1, (Len(metin) - Len(sayı + birim) - 2)) ', (Len(metin) - Len(sayı + birim)))
    Cells(i, "B") = sayı + 0
    Cells(i, "c") = birim
Next i
End Sub
kodu bu şekilde denermisiniz.

iyi akşamlar
 

Korhan Ayhan

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

Alternatif olarak aşağıdaki kodu denermisiniz.

Kod:
Sub RAKAM_AYIR()
    Columns("B:C").ClearContents
    For X = 1 To [A65536].End(3).Row
    If InStr(1, Cells(X, 1), " ") > 0 Then
    Veri = Split(Cells(X, 1), " ")
    For Y = 1 To UBound(Veri)
    If IsNumeric(Veri(Y)) Then
    Cells(X, 2) = Veri(Y) * 1
    Cells(X, 3) = Veri(UBound(Veri))
    Cells(X, 1) = Mid(Cells(X, 1), 1, WorksheetFunction.Find(Cells(X, 2), Cells(X, 1), 1) - 2)
    End If
    Next
    End If
    Next
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 

1Al2Ver

Altın Üye
Katılım
5 Kasım 2007
Mesajlar
4,711
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Altın Üyelik Bitiş Tarihi
04-01-2026
Kod:
Sub RakamAl()
Dim birim As String
Columns("B").ClearContents
For i = 1 To [A65536].End(3).Row
    metin = Cells(i, "A")
    sayı = ""
   
    For j = 1 To Len(metin)
        Karakter = Mid(metin, j, 1)
         birim = Right(metin, 2)
        If IsNumeric(Karakter) = True Or Karakter = "." Or Karakter = "," Then
            sayı = sayı & Karakter
        End If
    Next j
    
    Cells(i, "A") = Mid(metin, 1, (Len(metin) - Len(sayı + birim) - 2)) ', (Len(metin) - Len(sayı + birim)))
    Cells(i, "B") = sayı + 0
    Cells(i, "c") = birim
Next i
End Sub
kodu bu şekilde denermisiniz.

iyi akşamlar
Sayın abdi, merhaba, çözüm ve ilginiz için teşekkür ederim, saygılarımla
 

1Al2Ver

Altın Üye
Katılım
5 Kasım 2007
Mesajlar
4,711
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Altın Üyelik Bitiş Tarihi
04-01-2026
Selamlar,

Alternatif olarak aşağıdaki kodu denermisiniz.

Kod:
Sub RAKAM_AYIR()
    Columns("B:C").ClearContents
    For X = 1 To [A65536].End(3).Row
    If InStr(1, Cells(X, 1), " ") > 0 Then
    Veri = Split(Cells(X, 1), " ")
    For Y = 1 To UBound(Veri)
    If IsNumeric(Veri(Y)) Then
    Cells(X, 2) = Veri(Y) * 1
    Cells(X, 3) = Veri(UBound(Veri))
    Cells(X, 1) = Mid(Cells(X, 1), 1, WorksheetFunction.Find(Cells(X, 2), Cells(X, 1), 1) - 2)
    End If
    Next
    End If
    Next
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
Sayın Korhan Ayhan, merhaba, kod çalışıyor, sorun yok, size de ilginiz ve çözümünüz için teşekkür ederim, saygılarımla.
 
Katılım
7 Temmuz 2004
Mesajlar
327
Excel Vers. ve Dili
office xp pro türkçe
sayın 1Al2Ver
işinize yaradığına sevindim iyi çalışmalar dilerim.
 
Üst