• DİKKAT

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

Döngü kodu kısaltma

Katılım
5 Nisan 2005
Mesajlar
185
Merhaba arkadaşlar,

Aşağıdaki gibi bir döngü kodu var. Buradaki örnek olarak kısaltılmış, aslı benzer şekilde uzayıp gidiyor. C sütunundaki değerleri aşağıdaki döngüdeki değerlere göre D sütununa "Salt", "U1", "U2" olarak 3 grup halinde yazıyor.

Bu kodu daha kısa bir şekilde nasıl yazabiliriz acaba?

KOD:___________________________________________

For Each Grup In Range("C2:C65536")

If Grup.Value = "SY" Then
With Grup.Offset(0, 1).Cells
.FormulaR1C1 = "Salt"
End With
ElseIf Grup.Value = "24V" Then
With Grup.Offset(0, 1).Cells
.FormulaR1C1 = "Salt"
End With

ElseIf Grup.Value = "U1Gen" Then
With Grup.Offset(0, 1).Cells
.FormulaR1C1 = "U1"
End With
ElseIf Grup.Value = "U1Temp" Then
With Grup.Offset(0, 1).Cells
.FormulaR1C1 = "U1"
End With

ElseIf Grup.Value = "U2Gen" Then
With Grup.Offset(0, 1).Cells
.FormulaR1C1 = "U2"
End With
ElseIf Grup.Value = "U2Temp" Then
With Grup.Offset(0, 1).Cells
.FormulaR1C1 = "U2"
End With
End If

Next
 
böyle denermisiniz.
For Each Grup In Range("C2:C65536")
If Grup.Value = "SY" Then
Grup.Offset(0, 1).Cells.FormulaR1C1 = "Salt"
ElseIf Grup.Value = "24V" Then
Grup.Offset(0, 1).Cells.FormulaR1C1 = "Salt"
ElseIf Grup.Value = "U1Gen" Then
Grup.Offset(0, 1).Cells.FormulaR1C1 = "U1"
ElseIf Grup.Value = "U1Temp" Then
Grup.Offset(0, 1).Cells.FormulaR1C1 = "U1"
ElseIf Grup.Value = "U2Gen" Then
Grup.Offset(0, 1).Cells.FormulaR1C1 = "U2"
ElseIf Grup.Value = "U2Temp" Then
Grup.Offset(0, 1).Cells.FormulaR1C1 = "U2"
End If
Next
 
Teşekkür ederim Sayın halit3 bey.
Verdiğiniz şekilde kodu bir miktar sadeleştirmiş olduk. Sorunsuz bir şekilde çalışıyor.

Daha da kısaltma imkanı var mıdır acaba? If yerine başka bir şey kullanarak veya For Each... Next döngüsü yerine başka bir döngü ile daha pratik bir kod kullanabilir miyiz acaba? Bu haliyle de işime yarıyor tabii ama kodu ne kadar kısaltırsak daha hızlı çalışacak çünkü.
 
:cool:
Kod:
For Each grup In Range("C2:C" & Cells(65536, "C").End(xlUp).Row)
If UCase(Left(grup.Value, 1)) = "U" Then
    grup.Offset(0, 1).Value = Left(grup.Value, 2)
    Else
    grup.Offset(0, 1).Value = "Salt"
End If
Next
 
Geri
Üst