• DİKKAT

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

Soru aktif olan userform

GursoyC

Altın Üye
Katılım
7 Ocak 2015
Mesajlar
558
Excel Vers. ve Dili
Office 2024 Türkçe
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.
 
Sayfa aktifleştirmeden önce userformu kapatmayı denediniz mi (unload me şeklinde)?
 
Sayfayı aktif etmeden ve hücreyi seçmeden o hücreye verinizi yazabilirsiniz.:cool:
 
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 :)
 
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.
 
Örnek kodu kendinize uyarlayın.
Kod:
UserForm1.Show 0
Application.WindowState = xlMinimized
[a1].Select
Application.WindowState = xlNormal
 
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
 
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ş :)
 
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
 
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.
 
Geri
Üst