• DİKKAT

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

İki Hücre Değerinin Yer Değiştirmesi

Katılım
19 Eylül 2012
Mesajlar
322
Excel Vers. ve Dili
2010 türkçe
Merhaba, belki değişik gelebilir ama şöyle bir şey yapmak istiyorum. Aktif hücre ve aynı satırda yer alan kırmızı dolgulu ilk hücrenin içeriğinin birbirleri arasında yer değiştirmesi mümkün müdür?

Örnek: Aktif hücre "Y25" olsun ve aynı satırdaki ilk kırmızı dolgulu hücre de "U25" olsun (renkli hücre aynı satırda değişkendir) bu iki hücrenin değerlerini bir makro kodu ile yer değiştirebilir miyiz?
 
.

Kod:
Sub kod()


    sat = Selection.Row
    sut = Selection.Column
    Y = Cells(sat, sut)

    For i = sut - 1 To 1 Step -1
        If Cells(sat, i).Interior.Color = 255 Then
            Cells(sat, sut) = Cells(sat, i)
            Cells(sat, i) = Y
            Exit For
        End If
    Next i

End Sub

.
 
Son düzenleme:
.

Kod:
Sub kod()


    sat = Selection.Row
    Y = Cells(sat, "Y")

    For i = 24 To 1 Step -1
        If Cells(sat, i).Interior.Color = 255 Then
            Cells(sat, "Y") = Cells(sat, i)
            Cells(sat, i) = Y
            Exit For
        End If
    Next i

End Sub

.

Hocam teşekkür ederim. "Y" hücresini örnek olarak vermiştim. Aktif hücre her zaman değişken olacaktı. Yani o anda hangi hücre seçili ise o hücrenin bulunduğu satırdaki ilk kırmızı hücre ile seçili hücre içeriği yer değişecek.
 
.

Garip bir çalışma oluyor.
Önce hangi yöne bakmalı?

.
 
.

Garip bir çalışma oluyor.
Önce hangi yöne bakmalı?

.

Doğru haklısınız:)) ama şöyle olamaz mı biz satırı esas alıyoruz yani aktif hücrenin hangi sütunda olduğunun önemine bakılmadan aktif satırdaki ilk kırmızı dolgulu hücreyi esas alırsak zaten içerik değişikliği sonunda o hücreyi dolgu renksiz yapacağım için aynı satırdaki 2. kırmızı dolgulu hücre ilk kırmızı dolgulu hücre olacaktır. Yani satırdaki tüm kırmızı dolgulu hücreler için bu işlemi yapacağım için aktif hücre kırmızı dolgulu hücrenin sağında veya solunda olabiliyor.
 
.

Kod:
Sub kod()


    sat = Selection.Row
    sut = Selection.Column
    Y = Cells(sat, sut)

    For i = 1 To Columns.Count

        If i <> sut Then
            If Cells(sat, i).Interior.Color = 255 Then
                Cells(sat, sut) = Cells(sat, i)
                Cells(sat, i) = Y
                Exit For
            End If
        End If

    Next i

End Sub

.
 
.

Kod:
Sub kod()


    sat = Selection.Row
    sut = Selection.Column
    Y = Cells(sat, sut)

    For i = 1 To Columns.Count

        If i <> sut Then
            If Cells(sat, i).Interior.Color = 255 Then
                Cells(sat, sut) = Cells(sat, i)
                Cells(sat, i) = Y
                Exit For
            End If
        End If

    Next i

End Sub

.

Çok teşekkür ederim hocam sorunsuz çalıştı. Sizden son bir şey daha rica etsem yapabilir misiniz? Aşağıdaki kod aktif hücrenin bulunduğu sütunun 3. satırına 5 yazdırıyor. Peki aynı satırdaki ilk kırmızı dolgulu hücrenin bulunduğu sütunun 3. satırına 5 yazdırabilir miyiz?

Cells(3, Selection.Column).Value = 5
 
.

Kod:
Sub kod()

    sat = Selection.Row
    sut = Selection.Column
    Y = Cells(sat, sut)

    For i = 1 To Columns.Count

        If i <> sut Then
            If Cells(sat, i).Interior.Color = 255 Then
                Cells(sat, sut) = Cells(sat, i)
                Cells(sat, i) = Y
                Cells(3, i) = 5
                Exit For
            End If
        End If

    Next i

End Sub

.
 
Emeğiniz için çok teşekkür ederim hocam tam istediğim sonucu veriyor.
 
Geri
Üst