• DİKKAT

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

Koşullu Hücre Değeri Taşımak

Engineerist34

Altın Üye
Katılım
8 Ekim 2012
Mesajlar
46
Excel Vers. ve Dili
Office 365
Merhabalar,

Örnek Excel dosyamız aşağıdaki gibidir. İstediğimiz şey G sütunundaki değerleri L sütununa taşımak. Ama eğer G sütunundaki hücre boş ise hiç bir işlem yapmasın bir alt satırdan devam etsin.

sozluk.jpg

Ben bunun için aşağıdaki kodu yazmaya çalıştım ama Compile Error : Next without For hatası verdi. For kısmı da yazılı aşağıdaki gibi.
Ben kodu deneme sayfasında 20 ye kadar çalışması için yapmıştım ama G 'nin son satırına kadar gitmesini istiyorum aslında.

Kod:
Sub kopyala()

For i = 1 To 20
ActiveSheet.Cells(i, 7).Select
If ActiveCell.Value <> "" Then
ActiveCell.Value = ActiveCell(i, 12).Value
Else
ActiveCell = ActiveSheet.Cells(i + 1, 7).Select

Next i

End Sub

Yardımlarınız için şimdiden teşekkür ederim.
 
Buyurun.:cool:
Kod:
Sub aktar59()
Dim sonsat As Long, i As Long, sat As Long
sonsat = Cells(Rows.Count, "G").End(xlUp).Row
Range("L:L").ClearContents
sat = 1
For i = 1 To sonsat
    If Cells(i, "G").Value <> "" Then
        Cells(sat, "L").Value = Cells(i, "G").Value
        sat = sat + 1
    End If
Next i
MsgBox "İşlem Tamam." & vbLf & "evrengizlen@hotmail.com"
End Sub
 
Evren Bey Merhaba,
İlginize çok teşekkür ederim ancak bizim istediğimiz G da boşluk varsa L de yazılı alan aynen kalmalı. Siz L sütununu baştan siliyorsunuz.
ve ortaya çıkan sonuç aşağıdaki resimde ki gibi oluyor.

sample.jpg

Dolayısıyla kelime karşılıkları yanlış oluyor. Bu bir sözlük çalışması ve deneme yapmak için bir kaç satırlı bir exceli örneği oluştuduk sadece. Resimdeki yeşil çizgiler doğru ancak kırmızı çizgiler boştuktan dolayı bir üst satıra geçtiği için karşılık olmuyor.
Dosyayı da ekledim kolaylık olsun diye. Şimdiden çok teşekkür ederim :)
 

Ekli dosyalar

Son düzenleme:
Merhaba.

Yanlış anlamıyorsam aşağıdaki kod işinizi görür.
Kod, G sütunundaki DOLU değerleri, bu değerin kendi satırında L sütununa yazar
(ilgili satırda L sütununun dolu olduğunun bir önemi olmaksızın, G sütunundaki değer L sütununa yazılır).
Kod:
Sub G_L_AKTAR()
Application.ScreenUpdating = False: Application.Calculation = xlCalculationManual
For sat = 1 To Cells(Rows.Count, "G").End(3).Row
    If Cells(sat, "G") <> "" Then Cells(sat, "L") = Cells(sat, "G")
Next
Application.ScreenUpdating = True: Application.Calculation = xlCalculationAutomatic
MsgBox "İşlem tamamlandı...", vbInformation, "..:: Ömer BARAN ::.."
End Sub
 
Son düzenleme:
Ömer Bey çok teşekkür ederim. Evet tam olarak istediğimiz şey buydu.
Ellerinize sağlık.

İyi Çalışmalar..
 
Bunu sorunuzda belirtmediğiniz için ben tüm sütunu silip sıfırdan başlattım.
Aşağıdaki kodları deneyiniz..:cool:

Kod:
Sub aktar59()
Dim sonsat As Long, i As Long
sonsat = Cells(Rows.Count, "G").End(xlUp).Row
For i = 1 To sonsat
    If Cells(i, "G").Value <> "" Then
        Cells(i, "L").Value = Cells(i, "G").Value
    End If
Next i
MsgBox "İşlem Tamam." & vbLf & "evrengizlen@hotmail.com"
End Sub
 
Geri
Üst