• DİKKAT

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

Sütundaki değişkenlerden türeyen kodun düzenlenmesi

likaba

Altın Üye
Katılım
3 Mayıs 2016
Mesajlar
158
Excel Vers. ve Dili
2016 Türkçe
Merhaba Arkadaşlar,

Bir konuda yardımınıza ihtiyacım var. Şimdiden ilgilenen arkadaşlara teşekkür ederim.

Her ekipman numarası değiştiğinde bağlı bulunduğu sınıf (B sütunu) ve karakteristik (C sütunu) kodlarını _ (alt çizgi) ile birleştirip "E" sütununa yazmam gerekiyor. Bunun için toplamda 100 bin satırım var. Konu hakkında yardımlarınıza ihtiyacım var.

Not: Her ekipman farklı sayıda karakteristik kodu üretmektedir. Örneğin 8000000 numaralı ekipman 4 karaktesitikten oluşurken, 8000001 numaralı ekipman 3 karakteristikten oluşmaktadır.

http://www.dosya.tc/server9/mt0oqq/yeni1.rar.html
 
Modul1 e yapıştırıp deneyiniz.

Kod:
Sub ekipman_birlestir()
   Application.ScreenUpdating = False
   Application.DisplayAlerts = False
   sonsatir = Cells(Rows.Count, "A").End(3).Row
   deger = ""
   For i = sonsatir To 1 Step -1
     ekipman = Cells(i, 1).Value
     If i = sonsatir Then eskiekipman = ekipman
     If ekipman = eskiekipman Then
        If deger = "" Then deger = Cells(i + 1, "D").Value Else deger = Cells(i + 1, "D").Value & "_" & deger
     Else
        deger = Cells(i + 1, "D").Value & "_" & deger
        Cells(i + 1, "E").Value = Cells(i + 1, "B").Value & "_" & deger
        deger = ""
     End If
     eskiekipman = ekipman
   Next i
   Application.ScreenUpdating = True
   Application.DisplayAlerts = True
End Sub
 
Son düzenleme:
İlgilendiğin için çok teşekkür ederim Asri.
Kod "C" sütununda yer alan ifadeyi de birleştiriyor ve birleşimin en sonuna "_" (alt çizgi) yerleştiriyor.
"C" sütununda ki ifadeyi birleştirmeye katmadan ve "E" sütununa yazılan sonucun sonuna da "_" koymadan kodu nasıl değiştirebilirim. Örnek "E" sütunu sonucu.

Kodun çalıştırdığı
ELO_KORUMA_SINIFI_Sistem Kabineti_IP65_1170_1400_300_

İstenen
Sistem Kabineti_IP65_1170_1400_300
 
İlgilendiğin için çok teşekkür ederim Asri.
Kod "C" sütununda yer alan ifadeyi de birleştiriyor ve birleşimin en sonuna "_" (alt çizgi) yerleştiriyor.
"C" sütununda ki ifadeyi birleştirmeye katmadan ve "E" sütununa yazılan sonucun sonuna da "_" koymadan kodu nasıl değiştirebilirim. Örnek "E" sütunu sonucu.

Kodun çalıştırdığı
ELO_KORUMA_SINIFI_Sistem Kabineti_IP65_1170_1400_300_

İstenen
Sistem Kabineti_IP65_1170_1400_300

Kod güncellendi.
 
Alternatif,

100.000 satır için hız olarak katkı sağlayabilir.

Kod:
Option Explicit

Sub YENİ_MALZEME_KODU_OLUŞTUR()
    Dim Son As Long, X As Long, Ekipman_No As Variant, Say As Long
    
    Application.ScreenUpdating = False
    
    Son = Cells(Rows.Count, 1).End(3).Row
    Range("E2:E" & Rows.Count).ClearContents
    
    For X = 2 To Son
        Ekipman_No = Cells(X, 1).Value
        Say = WorksheetFunction.CountIf(Range("A:A"), Ekipman_No)
        Select Case Say
            Case 1
                Cells(X, 5) = Cells(X, 2) & "_" & Cells(X, 4)
            Case Is > 1
                Cells(X, 5) = Cells(X, 2) & "_" & Join(Application.Transpose(Range(Cells(X, 4), Cells(X + Say - 1, 4))), "_")
        End Select
        X = X + Say - 1
    Next
    
    Range("A:E").EntireColumn.AutoFit

    Application.ScreenUpdating = True

    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Asri ve Korhan Ayhan, yardımlarınız için çok teşekkür ederim.
 
Geri
Üst