• DİKKAT

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

Hücredeki formülü makro ile yapmak

Katılım
14 Kasım 2008
Mesajlar
87
Excel Vers. ve Dili
türkçe
Merhabalar arkadaşlar

Aşağıda hücredeki formülüm bulunmaktadır.

=EĞER(L7="B";'kağıt kalitesi'!$I$2;EĞER(L7="C";'kağıt kalitesi'!$J$2;EĞER(L7="E";'kağıt kalitesi'!$K$2;EĞER(L7="A";1,52;EĞER(L7=0;"";EĞER(L7="cb";'kağıt kalitesi'!$I$2;EĞER(L7="eb";'kağıt kalitesi'!$K$2)))))))

Makro kaydet yöntemi ile oluşan formül.

Range("AL7").Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[-26]=""B"",'kağıt kalitesi'!R2C9,IF(RC[-26]=""C"",'kağıt kalitesi'!R2C10,IF(RC[-26]=""E"",'kağıt kalitesi'!R2C11,IF(RC[-26]=""A"",1.52,IF(RC[-26]=0,"""",IF(RC[-26]=""cb"",'kağıt kalitesi'!R2C9,IF(RC[-26]=""eb"",'kağıt kalitesi'!R2C11)))))))"

Sizden istediğim yardım. Makro sadece bir hücre için bunu diğer hücrelere de uygulayabilirmiyiz. Şimdiden teşekkür ederim.
 
AL sütununda 7.'den 700. satıra kadar formül olarak yazdırmak için:
Kod:
Range("AL7:AL700").Formula = _
"=IF(L7=""B"",'kağıt kalitesi'!$I$2,IF(L7=""C"",'kağıt kalitesi'!$J$2,IF(L7=""E"",'kağıt kalitesi'!$K$2,IF(L7=""A"",1.52,IF(L7=0,"""",IF(L7=""cb"",'kağıt kalitesi'!$I$2,IF(L7=""eb"",'kağıt kalitesi'!$K$2)))))))"
 
formül yerine ilgili hücre değerlerini getirmek için şu da kullanılabilir.

makro çalışmadan önce formüllerin/değerlerin yazdırılacağı sayfa aktif olmalıdır.
veya kod buna göre revize edilmelidir.

Kod:
Sub veri_getir()

Dim syf As Worksheet
Dim ss As Long

Set ws = Worksheets("kağıt kalitesi")
ss = Range("L" & Rows.Count).End(xlUp).Row

For i = 7 To ss
    With Range("AL" & i)
        Select Case Range("L" & i).Value
            Case Is = "B": .Value = syf.Range("I2").Value
            Case Is = "C": .Value = syf.Range("J2").Value
            Case Is = "E": .Value = syf.Range("K2").Value
            Case Is = "A": .Value = 1.52
            Case Is = "": .Value = 0
            Case Is = "cb": .Value = syf.Range("I2").Value
            Case Is = "eb": .Value = syf.Range("K2").Value
        End Select
    End With
Next

End Sub
 
Merhaba Mancus kardeş

Öncelikle çok teşekkür ederim. Bu formul sadece bir sayfa yok. Her müşterinin sayfasında var. Yani müşteri sayfalarına girdiğimde nasıl uygulayabilirim.
 
kardeş derken :)
forumlarda vs "nick" ile hitap etmek en iyisi. kimseyi tanımadığımız için.

nasıl bir dosya. müşteriler dışında başka neler var.
en iyisi dosyayı buraya yüklemek. temsili veriler ile.
 
kardeş derken :)
forumlarda vs "nick" ile hitap etmek en iyisi. kimseyi tanımadığımız için.

nasıl bir dosya. müşteriler dışında başka neler var.
en iyisi dosyayı buraya yüklemek. temsili veriler ile.


merhaba mancubus teşekkür ederim. Haklısınız.
Ben dosyayı ekliyorum. İçerisine açıklama yazdım. Sağolasınız.
 

Ekli dosyalar

"formülleri makro ile yapmak istiyorum" demişsiniz.

bu ifadeyi "en tepedeki satırda bulunan formülleri el ile kopyalamak yerine makro tarafından yazılmasını istiyorum olarak okuyorum.

benim tek tek bütün formüllerinize bakarak bunu tek tek yazmam söz konusu olamaz. ama 2 no mesajımdaki mantığı kullanarak yapabilirsiniz.

formül bulunan en üst hücredeki formülü, hücre seçili iken F2 tuşu ile girerek = dahil seçin ve kopyalayın.

VBE penceresinde ilgili makronun içine formüllerin yazılacağı aralık referansından sonra gelmek üzere iki çift tırnak arasına yapıştırın.

; ayraçlarını , ayracı ile değiştirin. her gördüğününz çift tırnağa bir adet çift tırnak dah ilave edin. yani hücredeki formülde " varsa "" olacak. "" varsa """" olacak.

Türkçe Excel kullanıyorsanız formülleri İngilizcesi ile değiştirin.

hücredeki formül:
Kod:
=EĞER(L7="B";'kağıt kalitesi'!$I$2;EĞER(L7="C";'kağıt kalitesi'!$J$2;EĞER(L7="E";'kağıt kalitesi'!$K$2;EĞER(L7="A";1,52;EĞER(L7=0;"";EĞER( L7="cb";'kağıt kalitesi'!$I$2;EĞER(L7="eb";'kağıt kalitesi'!$K$2)))))))

makrodaki formül:
Kod:
[B][COLOR="Blue"]Range("AL7:AL700").Formula =[/COLOR] _
[COLOR="Red"]"[/COLOR]=[COLOR="Red"]IF[/COLOR](L7=[COLOR="red"]"[/COLOR]"B"[COLOR="red"]"[/COLOR][COLOR="red"],[/COLOR]'kağıt kalitesi'!$I$2,IF(L7=""C"",'kağıt kalitesi'!$J$2,IF(L7=""E"",'kağıt kalitesi'!$K$2,IF(L7=""A"",1.52,IF(L7=0,"""",IF(L7=""cb"",'kağıt kalitesi'!$I$2,IF(L7=""eb"",'kağıt kalitesi'!$K$2)))))))[COLOR="Red"]"[/COLOR][/B]

burada Range("AL7:AL700")'deki 700 temsili olup yerine formül yazılacak son satırın numarası yazılmalıdır. eğer bu son satır değişiyorsa bier değişkene atanabilir. forumda binlerce örneği var.

ben 2 nolu mesajdaki için bir örnek vereyim.
son satırı A sütununa göre buluyor. A ihtiyaca göre başka sütun harfi ile değiştirilebilir.

Kod:
Dim sonsat As Long
sonsat = Range("A" & Rows.Count).End(xlUp).Row

Range("AL7:AL" & sonsat).Formula = _
"=IF(L7=""B"",'kağıt kalitesi'!$I$2,IF(L7=""C"",'kağıt kalitesi'!$J$2,IF(L7=""E"",'kağıt kalitesi'!$K$2,IF(L7=""A"",1.52,IF(L7=0,"""",IF(L7=""cb"",'kağıt kalitesi'!$I$2,IF(L7=""eb"",'kağıt kalitesi'!$K$2)))))))"
 
Son düzenleme:
3. mesajımdaki gibi, formüller devre dışı kalsın, her şeyi makro yapsın derseniz ozaman bu bir proje olur ve beni aşar. bir satırda gördüğüm 30 civarındaki formül için zaman ayırmam mümkün değil.

iyi günler...
 
rica ederim. fazla yardımcı olamadım gerçi...
 
Geri
Üst