Soru aktif olan userform

GursoyC

Altın Üye
Katılım
7 Ocak 2015
Mesajlar
526
Excel Vers. ve Dili
2016 Türkçe
Altın Üyelik Bitiş Tarihi
17-05-2028
Herkese merhaba,
Userfom'umdaki bir düğmeye atadığım bir makro setim var, çalışıyor ve işlevini yerine getiriyor. Satırın en sonundaki kod ise range("A1").Select şeklinde.
Yalnız sheets("1").Activate bile yazsam aktif olan hala userform oluyor. Kod işlemini bitirdikten sonra A1 hücresini klavyeden değiştirmek istediğimde, örneğin klavyeden 3'e bastığımda, A1 hücresine 3 yazmıyor çünkü aktif olan sayfa değil userform. Yani hücreyi değiştirmek istediğimde mutlaka gidip alttaki sayfa sekmelerinden önce sayfayı seçmem gerekiyor.

Bu durumu nasıl düzeltebilirim? Activate komutu doğru komut değil midir?

Teşekkürler.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Sayfa aktifleştirmeden önce userformu kapatmayı denediniz mi (unload me şeklinde)?
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Sayfayı aktif etmeden ve hücreyi seçmeden o hücreye verinizi yazabilirsiniz.:cool:
 

GursoyC

Altın Üye
Katılım
7 Ocak 2015
Mesajlar
526
Excel Vers. ve Dili
2016 Türkçe
Altın Üyelik Bitiş Tarihi
17-05-2028
Yusuf hocam; userformun daima açık olması gerekiyor. Sadece o an aktif olanın userform değil sayfa olması gerek.
Orion1 hocam; kodların yaptığı işlem sayfaya data başka bir yerlerden kopyala-yapıştır şeklinde getirmek ve veri işlemlerden sonra yazılmalı maalesef.

iki üstad da bu tarz yolu önerdiğine göre sanırım bu durumun çözümü yok :)
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Bildiğim kadarıyla userform açıkken sayfada seçim vs yapabilmek için userform'un showmodal özelliğinin false olması gerekiyor. Öyle yaplırsa kodlarda sayfa aktifleştirildikten sonra hücre için de aktifleştirme yapılırsa düzelir bence. Diğer türlü eğer belirli bir hücreye belirli bir şey yazacaksanız kodda bu işlem belirtilebilir, ya da belirli bir hücreye belirsiz bir şey yazacaksanız inputbox ile yazılacak veri istenip o hücreye yazdırılabilir.
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Örnek kodu kendinize uyarlayın.
Kod:
UserForm1.Show 0
Application.WindowState = xlMinimized
[a1].Select
Application.WindowState = xlNormal
 

GursoyC

Altın Üye
Katılım
7 Ocak 2015
Mesajlar
526
Excel Vers. ve Dili
2016 Türkçe
Altın Üyelik Bitiş Tarihi
17-05-2028
Seyit Tiken hocam, verdiğiniz kodları uyarladım maalesef işe yaramadı.
benim kodlarım şu şekilde:
Kod:
.....

NoH3 = Cells(Rows.Count, 76).End(xlUp).Row + 1
    ActiveSheet.Shapes("Free3").Left = Range("BX" & NoH).Left
    ActiveSheet.Shapes("Free3").Top = Range("BX" & NoH).Top
    ActiveSheet.Shapes("Free3").Height = Range(Cells(74, 76), Cells(NoH, 76)).Height
    
If ActiveSheet.Range("M33").Value <> 0 Then
MsgBox "LÜTFEN FATURA BAŞLIĞININ DOĞRULUĞUNU KONTROL EDİNİZ"
End If
Range("Y37").Select
End sub
 

GursoyC

Altın Üye
Katılım
7 Ocak 2015
Mesajlar
526
Excel Vers. ve Dili
2016 Türkçe
Altın Üyelik Bitiş Tarihi
17-05-2028
Sayın Yusuf44 hocam, evet doğrudur, showmodal özelliği false durumda. Dolayısıyla sayfada seçim yapabiliyorum. Ancak kodlar işini yapıp işlemi bitirdikten sonra en son işlem Range"(Y37").select şeklinde ve o hücre seçili olarak bitiriyor işlemi. Lakin klavyede mesela o hücreye 5 yazmak istiyorsam, mutlaka gidip önce excel sayfasına tıklamam gerekiyor ki aktif olan userform değil excel sayfası olsun.

içerik anlamında userform'a bir textbox ekleyip o hücreye yazılması gereken rakamı bu textbox ile yazdırmaya başlamak en doğru çözüm olacak sanırım. Ben userform yerine excel sheet'i aktive etmek kolaydır diye düşünerek sormuştum soruyu. Sanırım pek de kolay değilmiş :)
 

Korhan Ayhan

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

Boş bir excel kitabında aşağıdaki kodu denedim ve olumlu sonuç aldım.

Userform açılırken ShowModal özelliği FALSE olmalıdır.

Kodu kendinize uyarlayıp denedikten sonra sonucu bildirirseniz memnun olurum.

Kod:
Private Sub CommandButton1_Click()
    With Sheets("Sheet2")
        .Range("A1") = "Test"
    End With
    Sheets("Sheet1").Select
    Range("A10").Select
    AppActivate Application.Caption
End Sub
 

GursoyC

Altın Üye
Katılım
7 Ocak 2015
Mesajlar
526
Excel Vers. ve Dili
2016 Türkçe
Altın Üyelik Bitiş Tarihi
17-05-2028
Merhaba,
Korhan bey, gayet güzel çalışıyor. End sub satırından önce "AppActivate Application.Caption" yazmak yeterli oldu.
Tüm ilgilenen üstadlara çok teşekkür ederim. Saygılar.
 
Üst