Hücre içeriğini yazı formatı ile birlikte eşitleme fonksiyonu

Katılım
2 Kasım 2010
Mesajlar
7
Excel Vers. ve Dili
excel 2010 türkçe
arkadaşlar merhaba,

bir hücreyi diğer hücreye eşitlediğimizde içerik aynen geliyor ama örneğin hücre içinde hem altı çizili hemde bold satırlar varsa bu özellikler kayboluyor.
benim ihtiyacım olan şeyde tam bu. yani bir hücredeki içeriği yazı tipi özellikleri ile birlikte başka bir hücreye eşitleme yapan bir fonksiyona ihtiyacım var.

örneğin hücreye "=B1" değilde mesela "=icerigi_al(B1)" yazınca yazı tipi özellikleri ile birlikte eşitleme yapmak istediğim...
şimdiden çok teşekkür ederim.
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,472
Excel Vers. ve Dili
Office 2010 & 2013 tr
arkadaşlar merhaba,

bir hücreyi diğer hücreye eşitlediğimizde içerik aynen geliyor ama örneğin hücre içinde hem altı çizili hemde bold satırlar varsa bu özellikler kayboluyor.
benim ihtiyacım olan şeyde tam bu. yani bir hücredeki içeriği yazı tipi özellikleri ile birlikte başka bir hücreye eşitleme yapan bir fonksiyona ihtiyacım var.

örneğin hücreye "=B1" değilde mesela "=icerigi_al(B1)" yazınca yazı tipi özellikleri ile birlikte eşitleme yapmak istediğim...
şimdiden çok teşekkür ederim.
Merhaba,
Zamanında bu sorunun cevabını çok aramıştım. Bu sorunun cevabının olmayışı soluğu bu sitede almamı ve makro ile tanışmamı sağlamıştı. Gel zaman git zaman fonksiyon kullanmaz oldum.
Birden anılarım canlandı. Yazayım dedim.
Sorunuzun cevabına gelince Fonksiyonlarda böyle bir özellik yok. Belki isteğinizin durumuna göre koşullu biçimlendirmeyle olabilir.O da olmazsa makro kodlarına müracaat etmeniz kaçınılmaz olacaktır.
 
Katılım
2 Kasım 2010
Mesajlar
7
Excel Vers. ve Dili
excel 2010 türkçe
Merhaba,
Zamanında bu sorunun cevabını çok aramıştım. Bu sorunun cevabının olmayışı soluğu bu sitede almamı ve makro ile tanışmamı sağlamıştı. Gel zaman git zaman fonksiyon kullanmaz oldum.
Birden anılarım canlandı. Yazayım dedim.
Sorunuzun cevabına gelince Fonksiyonlarda böyle bir özellik yok. Belki isteğinizin durumuna göre koşullu biçimlendirmeyle olabilir.O da olmazsa makro kodlarına müracaat etmeniz kaçınılmaz olacaktır.
:) düşünsene bir 2000 satır olan bir excel tablosu ve hepsini formülle diğer sayfada eşitleyebilmek. eğer bu biçimle birlikte eşitlemeyi (özellikle bold olayı) bulamazsam her seferinde 2000 satırla diğer sayfada yeniden bold yapmayla uğraşacağım. ben aslında program yazmadan anlıyorum ama bu macro olayını bilmiyorum. baya bi sayfa gezdim birkaç gündür ama bulamadım uygun bir makro... yinede saol bilgi için yanlız olmadığım bilmek güzel :))))
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,472
Excel Vers. ve Dili
Office 2010 & 2013 tr
:) düşünsene bir 2000 satır olan bir excel tablosu ve hepsini formülle diğer sayfada eşitleyebilmek. eğer bu biçimle birlikte eşitlemeyi (özellikle bold olayı) bulamazsam her seferinde 2000 satırla diğer sayfada yeniden bold yapmayla uğraşacağım. ben aslında program yazmadan anlıyorum ama bu macro olayını bilmiyorum. baya bi sayfa gezdim birkaç gündür ama bulamadım uygun bir makro... yinede saol bilgi için yanlız olmadığım bilmek güzel :))))
Dosyanızın içeriğini tam olarak bilemiyorum; ama biçimleri aktarmak için uygun makro yazılabilir.
NOT: Biçimlendirmelerinizin aktarılabilmesi için sabit biçimler kullanmış olmanız gerekli. Yani worddeki gibi parça parça biçimlendirmeler varsa ona makro da kar etmez.:)
 
Katılım
2 Kasım 2010
Mesajlar
7
Excel Vers. ve Dili
excel 2010 türkçe
Dosyanızın içeriğini tam olarak bilemiyorum; ama biçimleri aktarmak için uygun makro yazılabilir.
NOT: Biçimlendirmelerinizin aktarılabilmesi için sabit biçimler kullanmış olmanız gerekli. Yani worddeki gibi parça parça biçimlendirmeler varsa ona makro da kar etmez.:)
daha net açıklayım

Örnek :
birinci hücrede (bu kaynak hücre)

Diz üstü bilgisayar
300 gb hdd
1 gb ekran kartı

yazıyor (bunların hepsi aynı hücrede )

bu hücredeki içeriği başkabir hücrede "=" ile taşıdığınızda bold olan yazı düz oluyor. ben bold özelliğini de taşımak istiyorum.
aklıma ilk gelen "=" işaretiyle gelen fonksiyonlar gibi bir makro yazmak. bu c++ da olsa bir iki döngüyle bold özelliği olanları diğer tarafa geçiririm ama makro hakkında hiçbirşey bilmiyorum.
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,472
Excel Vers. ve Dili
Office 2010 & 2013 tr
Evet, şimdi daha kesin konuşabilirim. Sizin bu isteğinizin makro ile de çözümü yok maalesef. Ya formülden vazgeçip yavaş yavaş makroya adım atacaksınız ya da biçim aktarma işinden vazgeçeceksiniz.
 
Katılım
2 Kasım 2010
Mesajlar
7
Excel Vers. ve Dili
excel 2010 türkçe
Evet, şimdi daha kesin konuşabilirim. Sizin bu isteğinizin makro ile de çözümü yok maalesef. Ya formülden vazgeçip yavaş yavaş makroya adım atacaksınız ya da biçim aktarma işinden vazgeçeceksiniz.
klasik formüllerde olmadığını anladım zaten. sorun şu bu işi yapan bir makro fonksiyonu nedir? :) yani biraz anlasam yazacağımda :( inşallah bilen biri yardımcı olabilir.
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,472
Excel Vers. ve Dili
Office 2010 & 2013 tr
Makroya karar verdiyseniz, örnek bir dosya üzerinde isteğinizi açıklayın. Yardımcı olmaya çalışalım.
 
Katılım
2 Kasım 2010
Mesajlar
7
Excel Vers. ve Dili
excel 2010 türkçe
Makroya karar verdiyseniz, örnek bir dosya üzerinde isteğinizi açıklayın. Yardımcı olmaya çalışalım.
Çok teşekkür ederim
bir xls dosyası ekledim
sayfada solda orjinal hazırlanmış satırlar
sağda ise kopyaları var
ben soldaki her hücreyi sağa içeri ile taşımak istiyorum.
ancak hangi hücre nereye aktarılacak sürekli değişiyor. bu nedenle makro dinamik bir fonksiyon olmalı.
tekrar çok teşekkür ederim.
 

Ekli dosyalar

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,472
Excel Vers. ve Dili
Office 2010 & 2013 tr
Ekteki örneği deneyin. C sütununda veri girişi yapın ve sonucu gözlemleyin.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo son
If Not Intersect(Target, [c4:c65536]) Is Nothing Then
Set Aralik = Range("h4:h" & [g65536].End(3).Row)
 Set Bul = Aralik.Find(Target.Row, lookat:=xlWhole, LookIn:=xlValues)
        If Not Bul Is Nothing Then
            Adres = Bul.Address
            Do
            Target.Copy Cells(Bul.Row, Bul.Column - 1)
            Set Bul = Aralik.FindNext(Bul)
            Loop While Not Bul Is Nothing And Bul.Address <> Adres
        End If
ElseIf Not Intersect(Target, [h4:h65536]) Is Nothing Then
Range("c" & Target).Copy Target.Offset(0, -1)
End If
son:
End Sub
 

Ekli dosyalar

Son düzenleme:
Katılım
2 Kasım 2010
Mesajlar
7
Excel Vers. ve Dili
excel 2010 türkçe
Ekteki örneği deneyin. C sütununda veri girişi yapın ve sonucu gözlemleyin.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo son
If Intersect(Target, [c4:c65536]) Is Nothing Then Exit Sub
Target.Copy Target.Offset(0, 4)
son:
End Sub
ellerine sağlık dediğimi yapmış fakat bu sadece kod içine yazdığımız spesifik hücrelerde çalışıyor.
benim formül alanından işlem yapacağı hücreyi girebileceğim hale getirilebilir mi?
çünkü ben her zaman yan yana olan yada aynı hizada olan satırları eşitlemeyeceğim çapraz eşitlemeler de olacak.
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,472
Excel Vers. ve Dili
Office 2010 & 2013 tr
10 nolu mesajdaki dosyayı güncelledim. Yaniden deneyebilirsiniz. Ek bir sütun kullanacaksınız. H sütununa almak istediğiniz hücrenin satır numarasını yazdığınızda veri gelir. Kaynaktan değişiklik yaptığınızda hedef güncellenir.
 
Katılım
2 Kasım 2010
Mesajlar
7
Excel Vers. ve Dili
excel 2010 türkçe
10 nolu mesajdaki dosyayı güncelledim. Yaniden deneyebilirsiniz. Ek bir sütun kullanacaksınız. H sütununa almak istediğiniz hücrenin satır numarasını yazdığınızda veri gelir. Kaynaktan değişiklik yaptığınızda hedef güncellenir.
çok çok teşekkürler tekrar ama bu bir fonksiyon olmayınca olmuyor.
yani sence fonksiyon olarak yazılamazmı
bana gereken sadece yazının koyu satırları koyu kalsın

hedef hücreye "=ozeltasi(xy)" yazınca xy ile yazılacak olan hücredeki texti yazdığım hücreye eşitlemeli başka türlü olmuyor. :(((
(xy sütun ve satır adresi)
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,472
Excel Vers. ve Dili
Office 2010 & 2013 tr
çok çok teşekkürler tekrar ama bu bir fonksiyon olmayınca olmuyor.
yani sence fonksiyon olarak yazılamazmı
bana gereken sadece yazının koyu satırları koyu kalsın

hedef hücreye "=ozeltasi(xy)" yazınca xy ile yazılacak olan hücredeki texti yazdığım hücreye eşitlemeli başka türlü olmuyor. :(((
(xy sütun ve satır adresi)
Yerleşik fonksiyonlarla metin biçimlendirmelerini alamazsınız. Ben bu sorunun cevabını en az 1 sene araştırdım ve sonuç alamadım. Bir 1 sene de siz araştırmak isterseniz bir şey diyemem.:)
 

Merhum İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,094
Excel Vers. ve Dili
Excel, 365 - İngilizce
.

Sayın hmzblgn,


Sayın leumruk'un önerdiği ve copy / paste'e dayalı benzeri çözümlerin dışında bir çözümün olacağını sanmıyorum.

Hücrenin formatına dayalı olarak hesaplama işlemleri için UDF - User Defined Function (KTF- Kullanıcı Tanımlı Fonksiyon) yazmak mümkündür. Bunun pek çok örneğini bu Forumda bulabilirsiniz. Ancak, bir hücrenin rengini, fontunu velhasıl biçimini KTF ile değiştiremezsiniz, veya formülle başka yere taşıyamazsınız.

.
.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,020
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Bu işlem için diğer arkadaşlarımızında belirttiği gibi bir fonksiyonla bu işlemi yapamazsınız. İstediğiniz gibi olmasada daha öncede buna benzer bir soruya verdiğim yanıttaki yöntemi sizin örnek dosyanıza uyarladım. O başlığı bulursam linkini buraya eklerim.

Örneğin bir hücreye =C1 yazıp enter tuşuna basıp hücreyi terk ediyorsunuz. Bu anda makro devreye giriyor. Hücredeki değerin formül olup olmadığı kontrol ediliyor. Burada önemli nokta formülün "=" işareti ile başlamasıdır.

Hücreye yazdığınız ifade formül ise makro formülde geçen hücre adresini bulup formülü yazdığınız hücreye kopyala-yapıştır işlemi yapmaktadır. Tabiki bu işlem sonunda hücredeki başvuru formülü silinmektedir.

Eğer bu yöntem işinize yararsa ekteki örnek dosyayı kullanabilirsiniz.


Uygulanan kod; (Sayfanın kod bölümüne uygulayınız.)

Kod:
Option Explicit
 
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Sayfa As String, Hücre As String
    If Target.HasFormula Then
        If InStr(1, Target.Formula, "!") > 0 Then
            Sayfa = Split(Replace(Target.Formula, "=", ""), "!")(0)
            Hücre = Split(Replace(Target.Formula, "=", ""), "!")(1)
            Worksheets(Sayfa).Range(Hücre).Copy Target
        ElseIf InStr(1, Target.Formula, "=") > 0 Then
            Hücre = Replace(Target.Formula, "=", "")
            Range(Hücre).Copy Target
        End If
    End If
End Sub
 

Ekli dosyalar

Katılım
11 Mart 2015
Mesajlar
1
Excel Vers. ve Dili
2007
Selamlar,

Bu işlem için diğer arkadaşlarımızında belirttiği gibi bir fonksiyonla bu işlemi yapamazsınız. İstediğiniz gibi olmasada daha öncede buna benzer bir soruya verdiğim yanıttaki yöntemi sizin örnek dosyanıza uyarladım. O başlığı bulursam linkini buraya eklerim.

Örneğin bir hücreye =C1 yazıp enter tuşuna basıp hücreyi terk ediyorsunuz. Bu anda makro devreye giriyor. Hücredeki değerin formül olup olmadığı kontrol ediliyor. Burada önemli nokta formülün "=" işareti ile başlamasıdır.

Hücreye yazdığınız ifade formül ise makro formülde geçen hücre adresini bulup formülü yazdığınız hücreye kopyala-yapıştır işlemi yapmaktadır. Tabiki bu işlem sonunda hücredeki başvuru formülü silinmektedir.

Eğer bu yöntem işinize yararsa ekteki örnek dosyayı kullanabilirsiniz.


Uygulanan kod; (Sayfanın kod bölümüne uygulayınız.)

Kod:
Option Explicit
 
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Sayfa As String, Hücre As String
    If Target.HasFormula Then
        If InStr(1, Target.Formula, "!") > 0 Then
            Sayfa = Split(Replace(Target.Formula, "=", ""), "!")(0)
            Hücre = Split(Replace(Target.Formula, "=", ""), "!")(1)
            Worksheets(Sayfa).Range(Hücre).Copy Target
        ElseIf InStr(1, Target.Formula, "=") > 0 Then
            Hücre = Replace(Target.Formula, "=", "")
            Range(Hücre).Copy Target
        End If
    End If
End Sub
Merhabalar,

kopyalanan hücrede değişiklik yapıldığında tekrar bu kod otomatik olarak çalışarak hücreyi güncel tutabilir miyiz? Böyle bir yöntem var mıdır?
 
Üst