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

Engineerist34

Altın Üye
Katılım
8 Ekim 2012
Mesajlar
45
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.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
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
 

Engineerist34

Altın Üye
Katılım
8 Ekim 2012
Mesajlar
45
Excel Vers. ve Dili
Office 365
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:

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
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:

Engineerist34

Altın Üye
Katılım
8 Ekim 2012
Mesajlar
45
Excel Vers. ve Dili
Office 365
Ömer Bey çok teşekkür ederim. Evet tam olarak istediğimiz şey buydu.
Ellerinize sağlık.

İyi Çalışmalar..
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
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
 
Üst