• DİKKAT

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

Hücre İçeriğine göre otomatik açılan userform

Katılım
9 Nisan 2015
Mesajlar
29
Excel Vers. ve Dili
2010
Herkese merhaba. Formu araştırdım ama sorunum ile ilgili net bir bilgiye ulaşamadım ( tabi bunda benim henüz kod işlemlerinde ki acemiliğimin de etkisi olabilir). O nedenle konuyu burada açma gereği hissettim. Hazırladığım küçük dosyanın linkini aşağıda veriyorum. Gerekli açıklamalar Excel dosyasının içindedir. Not: Hazırladığım Userform dosyanın içerisinde mevcuttur.
Yardımlarınızı bekliyorum. Saygılarımla...

Dosyam:
http://s5.dosya.tc/server2/zdt5iq/ornek223.rar.html
 
Son düzenleme:
Sayın muygun. Öncelikle emeğiniz ve gösterdiğiniz ilgi için çok teşekkür ederim. Çalışmanız iş görüyor ve istediğim gibi. Bunun için de ayrıca teşekkür ederim. Sadece küçük bir sorun var. O da A sütunundaki hücrelerden birini sildiğimde sildiğim hücrenin yanında "öğrenci bulunamadı" çıkıyor. Halbuki A sütununda bulunan hücreler boş olduğunda B ve C sütunundaki hücreler de boş olmalıdır. Yüzsüzlük olarak görmezseniz şayet formül ve kodları buna göre ayarlayabilir misiniz? İyi çalışmalar diliyorum. Saygılarımla...
 
Merhaba;
Kodlarda herhangi bir değişikliğe gerek yok.
B2 hücresindeki formülü;
=EĞER(A2="";"";EĞER(EHATALIYSA(İNDİS(Sayfa2!A:C;KAÇINCI(Sayfa1!A2;Sayfa2!A:A;0);2));"ÖĞRENCİ BULUNAMADI";İNDİS(Sayfa2!A:C;KAÇINCI(Sayfa1!A2;Sayfa2!A:A;0);2)))

C2 hücresindeki formülü;
=EĞER(A2="";"";EĞER(EHATALIYSA(İNDİS(Sayfa2!A:C;KAÇINCI(Sayfa1!A2;Sayfa2!A:A;0);3));"";İNDİS(Sayfa2!A:C;KAÇINCI(Sayfa1!A2;Sayfa2!A:A;0);3)))

Şeklinde düzenler ve aşağı doğru çoğaltırsanız galiba istediğiniz olur.
İyi çalışmalar.
 
İlginiz ve emeğiniz için çok teşekkür ederin sayın muygun. Çalışmalarınızda başarılar. Saygılarımla...
 
Sayın muygun. Anladığım kadarıyla userform sayfa 2 deki C sütununa sayıyı metin olarak yazıyor. Bunu sayı yada para birimi olarak yazma ihtimalimiz var mı? Saygılarımla...
 
Merhaba;
Kodlardaki;
s2.Cells(sonsatir, 3) = TextBox3
satırını,

=s2.Cells(sonsatir, 3) = Format(TextBox3, "#,##0")
yaparak deneyin.

Para birimi olarakta;
=s2.Cells(sonsatir, 3) = Format(TextBox3, "#,##0 TL")
şelinde olabilir.

İyi çalışmalar.
 
Verdiğiniz kodları denedim sayın muygun. Ancak 1,25 girdiğimde direkt 1,00 yazıyor. Neden sayıyı yuvarlıyor. Belki hücre ayarlarındandır diye düşündüm kontrol ettim orada sorun yok. Saygılarımla...
 
Sizi çok meşgul ettiğimin farkındayım bunun için kusura bakmayın sayın muygun. Verdiğiniz kodu denedim şimdi ondalıklı yazıyor ama yine metin olarak yazıyor...
 
Merhabalar.

Sayın muygun'un izniyle öneride bulunmak istedim.

VBA kod konusunda bilgim yeterli değil ama denediğimde sayı olarak aktarıldığını gördüm.

VBA ekranındaki kaydet makrosu içeriğinde yer alan aşağıdaki satıra kırmızı olan kısmı ekleyince aktarılan değer SAYI oluyor.

Kod:
s2.Cells(sonsatir, 3) = [B][COLOR="Red"]0 +[/COLOR][/B] Format(TextBox3, "#,##0.00 TL")
 
Çok teşekkür ederim omer.baran denedim işe yarıyor. Ayrıca çabalarından ve ilgisinden ayrıca bilgilerinden de çok istifade ettiğim sayın muygun'a da çok teşekkür ediyorum. Sorun çıktıkça buradan yazmaya devam edeceğim. Takdir edersiniz ki formül makro ve userform içeren bir dosya ile uğraşırken makro formülleri formüller kodları vs. vs. etkiliyor. Tam çözüm buldum diyecekken bir bakıyorsunuz farklı bir sorun ortaya çıkmış. Biz amatörler sordukça bu işi bilenler farklı sorunlara çözüm aradıkları için kendilerini daha da geliştirecekler ve onlar anlattıkça bizler de bir şeyler öğreneceğiz. Herkese buradan çalışmalarında başarılar diliyorum. Saygılarımla...
 
Merhaba;
s2.Cells(sonsatir, 3) = Format(TextBox3, "#,##0.00 TL") * 1
Birde bu şekilde deneyin.
Sayfa2 de hücre biçimi genel olarak kalır. (yani para birimi olmaz)
İyi çalışmalar.

Not:Ömer Bey'in önerisini görmeden yazmıştım. Çözüm için Ömer beye Teşekkürler.
 
Herkese merhaba arkadaşlar. Bugün denediğim ama sonuç alamadığım bir problemi de siz saygıdeğer arkadaşlara sunmak istiyorum. Sayfayı korumaya aldığımda (formül içeren sütunlar ve değişmesini istemediğim başlık içeren hücreler) otomatik açılan userform açılmıyor hata veriyor. Bu konuda çaresiz kaldım. Bu konuya çözüm bulabilirseniz minnettar olurum. Saygılarımla...
 
Merhaba.

ALT+F11 tuşlarına basarak kod ekranını açtıktan sonra;
1) Sol taraftan UserForm'a sağ tıklatın ve " View Code " yi seçin,
2) Sağ tarafta en üstteki kod bölümünü (aşağıdaki kırmızı renkli 123 sayfa koruma parolasıdır, kendinize uygun olanı yazarsınız);
Kod:
Private Sub CommandButton1_Click()
Call kaydet
Call userform_kapat
Sheets("Sayfa1").Select

Sheets("Sayfa1").Unprotect "[B][COLOR="red"]123[/COLOR][/B]" [COLOR="blue"]'koruma kaldırmak için[/COLOR]
   Cells(1, 4) = ""
Sheets("Sayfa1").Protect "[COLOR="red"][B]123[/B][/COLOR]" [COLOR="blue"]'koruma koymak için[/COLOR]

End Sub
şeklinde değiştirin.
3) Sonra da yine aynı kod ekranında sol taraftan Sayfa1'e fareyle çift tıklayın.

Kod:
  If Cells(sat, 2) = "ÖĞRENCİ BULUNAMADI" Then
satırından sonra
Kod:
Sheets("Sayfa1").Unprotect "[B][COLOR="Red"]123[/COLOR][/B]" [COLOR="Blue"]'koruma kaldırmak için[/COLOR]
satırını ve, End Sub satırından önce de
Kod:
Sheets("Sayfa1").Protect "[COLOR="red"][B]123[/B][/COLOR]" '[COLOR="blue"]koruma koymak için[/COLOR]

satırını ekleyin.

Bu şekilde sorunsuz çalışıyor.
 
Son düzenleme:
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A:A")) Is Nothing Then
    sat = Target.Row
  If Cells(sat, 2) = "ÖĞRENCİ BULUNAMADI" Then
  Cells(1, 4) = sat
  UserForm1.Show
  End If
  End If
    If Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub

    Dim son As Long, c As Range

    With Target
        If .Count > 1 Then Exit Sub
        If .Row < 2 Then Exit Sub
        If .Value = "" Then Exit Sub
        son = .Row - 1
        Set c = Range("A1:A" & son).Find(Cells(.Row, "A"), , xlValues, xlWhole)
        If Not c Is Nothing Then
            If Cells(c.Row, "A") = Cells(.Row, "A") And _
                    Cells(c.Row, "A") = Cells(.Row, "A") Then
                Cells(c.Row, "A") = Cells(c.Row, "A")
                Cells(c.Row, "D") = Cells(c.Row, "D") + 1
                Cells(.Row, "A").Resize(1).ClearContents
                Range("A" & son + 1).Select
            End If
        End If
    End With
End Sub
Sayfa1 de yukarıdaki kod mevcut. Dediklerinizi yapmaya çalıştım ancak yine hata verdi. (hata Cells(1, 4) = sat kısmını gösteriyor) Saygılarımla...
 
Örnek dosyanızı ekleyebilir misiniz?
 
Cells(1, 4) sayfanın D1 hücresi. Sayın muygun'un yazdığı kod bu hücreyi kullanıyor.

Eklediğiniz yeni kod'u test etmedim ancak, hata veren satırdan önce;
Kod:
Sheets("Sayfa1").Unprotect "123" 'koruma kaldırmak için
satırını, sonra da
Kod:
Sheets("Sayfa1").Protect "123" 'koruma koy
satırını ekleyerek deneyiniz.
 
Sayın omer.baran. Sizin söylediklerinizi tekrar yaptım yine hata verdi. Sonra sizin söylediklerinizden yola çıkarak D1 hücresinin korumasını kaldırınca sorun kalkıyor. Denedim şimdi oluyor. Emeğiniz ve alakanız için çok teşekkür ederim hepinize. Saygılarımla...
 
Geri
Üst