• DİKKAT

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

Sayfada seçili olan hücrelere diğer sayfadaki metni yapıştırmak

  • Konbuyu başlatan Konbuyu başlatan erhay
  • Başlangıç tarihi Başlangıç tarihi
Katılım
17 Aralık 2010
Mesajlar
9
Excel Vers. ve Dili
2010
İyi günler,
Benim şöyle bir sorunum var.
ERgYgq.jpg


Bulmacanın "Dolu" sayfasında çözümü var.Boş sayfasında o an seçili olan hücrelerin Dolu sayfasındaki karşılıklarını Boş sayfasındaki seçili hücrelere aktarmayı istiyorum. En son 2000'li yıllarda makrolarla uğraştığım için yapamadım :(
 
Merhaba;
örnek bir excel dosyasını mesajınıza eklerseniz daha kolay anlaşılır olacaktır. Dolayısı ile daha çabuk çözüme ulaşırsınız.
 
Merhaba.

Umarım yanlış anlamadım.
Alt taraftan BOŞ adlı sayfanın adına fareyle sağ tıklayıp KOD GÖRÜNTÜLEyi seçin,
açılan VBA ekranında sağ taraftaki boş alana aşağıdaki kod'u yapıştırın.
.
Kod:
[B]Private Sub Worksheet_SelectionChange(ByVal Target As Range)[/B]
Set b = Sheets("BOŞ"): Set d = Sheets("DOLU")
[COLOR="Red"]b.Range("B2:Q17") = "": b.Range("B2:Q17").Font.Color = xlNone[/COLOR]
If Intersect(Target, Range("B2:Q17")) Is Nothing Then Exit Sub
For Each hcr In d.Range(Selection.Address(0, 0))
    If d.Range(hcr.Address(0, 0)) <> "" Then
        b.Range(hcr.Address(0, 0)) = d.Range(hcr.Address)
        b.Range(hcr.Address(0, 0)).Font.Color = vbRed
    End If
Next
[B]End Sub[/B]
 
Merhaba.

Umarım yanlış anlamadım.
Alt taraftan BOŞ adlı sayfanın adına fareyle sağ tıklayıp KOD GÖRÜNTÜLEyi seçin,
açılan VBA ekranında sağ taraftaki boş alana aşağıdaki kod'u yapıştırın.
.
Kod:
[B]Private Sub Worksheet_SelectionChange(ByVal Target As Range)[/B]
Set b = Sheets("BOŞ"): Set d = Sheets("DOLU")
b.Range("B2:Q17") = "": b.Range("B2:Q17").Font.Color = xlNone
If Intersect(Target, Range("B2:Q17")) Is Nothing Then Exit Sub
For Each hcr In d.Range(Selection.Address(0, 0))
    If d.Range(hcr.Address(0, 0)) <> "" Then
        b.Range(hcr.Address(0, 0)) = d.Range(hcr.Address)
        b.Range(hcr.Address(0, 0)).Font.Color = vbRed
    End If
Next
[B]End Sub[/B]


Merhaba,
Tam olarak bu değil. İstediğim şey makroyu çalıştırdığımızda "boş" sayfasında o an seçili olan hücrelerin, "dolu" sayfasındaki aynı hücrelerindeki yazıyı "boş" sayfasındaki hücrelere kopyalamak. Adımlar şöyle:

1) Boş sayfasında ilgili hücreleri seç.
2) Makro çalışsın ve seçili hücrelerin Dolu sayfasındaki karşılıkları gelsin.
3) Ayrıca makroyu tekrar çalıştırdığımızda diğer yazılar gitmesin.
 
Merhaba,
Tam olarak bu değil. İstediğim şey makroyu çalıştırdığımızda "boş" sayfasında o an seçili olan hücrelerin, "dolu" sayfasındaki aynı hücrelerindeki yazıyı "boş" sayfasındaki hücrelere kopyalamak. Adımlar şöyle:

1) Boş sayfasında ilgili hücreleri seç.
2) Makro çalışsın ve seçili hücrelerin Dolu sayfasındaki karşılıkları gelsin.
3) Ayrıca makroyu tekrar çalıştırdığımızda diğer yazılar gitmesin.
Önceki cevabımda kırmızı renklendirdiğim satırı silmeniz yeterli olur.
 
bu kod olabilirmi

Kod:
Sub deneme()
MsgBox ActiveWindow.RangeSelection.Address
Sheets("BOŞ").Range(ActiveWindow.RangeSelection.Address).Value = Sheets("DOLU").Range(ActiveWindow.RangeSelection.Address).Value
End Sub
 
Tekrar merhaba.

Verdiğim kod'un, konu açılış mesajındaki;
"Boş sayfasında o an seçili olan hücrelerin Dolu sayfasındaki karşılıklarını Boş sayfasındaki seçili hücrelere aktarmayı istiyorum."
cümlesinin tam karşılığı olduğunu düşünüyorum.

Son cevabınızdaki "İstediğim tam olarak bu değildi ama bu haliyle de iyi" şeklinde ve
bence "idare eder" anlamına gelebilecek geri bildirim biraz garip.

Aklınızda olup, sorunuzda yazmadığınız bir şey mi var yoksa yazdığınızı ben mi yanlış anlamışım?

Sorunuzda belirsiz olan şey;
"o an seçili olan hücrelerin" ibaresi ile
"makroyu tekrar çalıştırdığımızda" ibaresinin
kod'u tetikleyenin ne olacağını net ortaya koymamış olmasıydı.

Ben de, istenilen aktarma işleminin hücre/alan seçildiğinde yapılmasının kast edildiğini varsaydım.
.
 
Veya bu kod
Kod:
Sub deneme()
MsgBox ActiveWindow.RangeSelection.Address
Sheets("DOLU").Range(ActiveWindow.RangeSelection.Address).Value = Sheets("BOŞ").Range(ActiveWindow.RangeSelection.Address).Value
End Sub
 
Tekrar merhaba.

Verdiğim kod'un, konu açılış mesajındaki;
"Boş sayfasında o an seçili olan hücrelerin Dolu sayfasındaki karşılıklarını Boş sayfasındaki seçili hücrelere aktarmayı istiyorum."
cümlesinin tam karşılığı olduğunu düşünüyorum.

Son cevabınızdaki "İstediğim tam olarak bu değildi ama bu haliyle de iyi" şeklinde ve
bence "idare eder" anlamına gelebilecek geri bildirim biraz garip.

Aklınızda olup, sorunuzda yazmadığınız bir şey mi var yoksa yazdığınızı ben mi yanlış anlamışım?

Sorunuzda belirsiz olan şey;
"o an seçili olan hücrelerin" ibaresi ile
"makroyu tekrar çalıştırdığımızda" ibaresinin
kod'u tetikleyenin ne olacağını net ortaya koymamış olmasıydı.

Ben de, istenilen aktarma işleminin hücre/alan seçildiğinde yapılmasının kast edildiğini varsaydım.
.


Öncelikle ilginize teşekkür ederim. Ben açık anlatamamış olabilirim. Şöyle ki, henüz makroyu çalıştırmadan ben ilgili hücreleri seçiyorum.Tetikleme hücrenin seçilmesi olmayacak. Makroya bir kısayol tuşu atayıp, kısayol tuşunu çalıştırdığımızda o an hangi hücre seçili ise onun izdüşümü olan hücreleri kopyalayıp yapıştırmalı.

Ancak sizin verdiğiniz örnek daha işlevsel geldi bana.O yüzden bu şekilde kullanmaya karar verdim. Her şey için teşekkür ederim.
 
Veya bu kod
Kod:
Sub deneme()
MsgBox ActiveWindow.RangeSelection.Address
Sheets("DOLU").Range(ActiveWindow.RangeSelection.Address).Value = Sheets("BOŞ").Range(ActiveWindow.RangeSelection.Address).Value
End Sub



Kod çalışmadı ama diğer örneği kullanmaya karar verdim.Teşekkürler...
 
görsel videoyu izleyin böyle olmayacakmıydı


Hayır hocam.Ben bu bulmacayı yeğenlerime bilgi yarışması şeklinde uyguluyorum.Dolu sayfayı sadece ben görmeliyim.Ben boş sayfa üzerinde seçimi yapmalıyım.

1) Boş sayfada seçimi yap.
2) Kısayol tuşunu çalıştır.Makro çalışsın.
3) Kopyalama gerçekleşsin.
 
buyur iki kod var burada birincisi dolu-boş ikincisi boş-dolu hangisini kullanacaksan kullan

Kod:
Sub deneme1()

adres = ActiveWindow.RangeSelection.Address
MsgBox adres
Sheets("DOLU").Range(adres).Value = Sheets("BOŞ").Range(adres).Value
End Sub


Kod:
Sub deneme2()

adres = ActiveWindow.RangeSelection.Address
MsgBox adres
Sheets("BOŞ").Range(adres).Value = Sheets("DOLU").Range(adres).Value
End Sub
 
buyur iki kod var burada birincisi dolu-boş ikincisi boş-dolu hangisini kullanacaksan kullan

Kod:
Sub deneme1()

adres = ActiveWindow.RangeSelection.Address
MsgBox adres
Sheets("DOLU").Range(adres).Value = Sheets("BOŞ").Range(adres).Value
End Sub


Kod:
Sub deneme2()

adres = ActiveWindow.RangeSelection.Address
MsgBox adres
Sheets("BOŞ").Range(adres).Value = Sheets("DOLU").Range(adres).Value
End Sub

Çok sağolun. Kod çalıştı.
 
Geri
Üst