Userform pozisyonu aktif hücreye göre ayarlamak

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,049
Excel Vers. ve Dili
Office 2013 İngilizce
Merhaba,
Ekli dosyada
sarı boyalı alanda dolu bir hücre seçildiği zaman Userform açılmakta;
Userform' un sol konumunu aktif hüzrenin sağına göre açılmasını nasıl sağlayabiliriz?
ekli görselde olduğu gibi..

teşekkürler,
iyi Çalışmalar.

Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim WS As Worksheet

If Intersect(Target, Range("D3:I11")) Is Nothing Then Exit Sub
If Target = "" Then Exit Sub

UserForm1.Caption = " [ " & Target.Value & " ]"
UserForm1.Label1.Caption = Target.Value

UserForm1.Show

End Sub
 

Ekli dosyalar

DoğanD

Altın Üye
Katılım
22 Eylül 2023
Mesajlar
427
Excel Vers. ve Dili
Office 365 TR
Altın Üyelik Bitiş Tarihi
05-10-2028
Merhaba,

Dener misiniz?

Userform'un Activate olayına;
UserForm1.Left = ActiveCell.Left + ActiveCell.Width +15

Düzeltme: Denemeden yazmıştım, bende biraz sağlı duruyor. O yüzden 15 ekleyerek hizalayabildim.
 
Son düzenleme:

bmutlu966

Altın Üye
Katılım
26 Ocak 2006
Mesajlar
756
Excel Vers. ve Dili
Office 365 İngilizce 64 Bit
Altın Üyelik Bitiş Tarihi
31-01-2025
Alternatif olsun.
 

Ekli dosyalar

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,049
Excel Vers. ve Dili
Office 2013 İngilizce
Merhaba,

Dener misiniz?

Userform'un Activate olayına;
UserForm1.Left = ActiveCell.Left + ActiveCell.Width +15

Düzeltme: Denemeden yazmıştım, bende biraz sağlı duruyor. O yüzden 15 ekleyerek hizalayabildim.
Teşekkürler Hocam
yalnız bu durum aplikasyon full-screen (tam ekran) olunca oluyor,
yalnız applikasyonu ekran üzerinde küçültüp farklı boyutlara getirdiğimizde bu ayar kayıyor.
ekli ekran görüntüsü....
iyi çalışmalar.
 

Ekli dosyalar

bmutlu966

Altın Üye
Katılım
26 Ocak 2006
Mesajlar
756
Excel Vers. ve Dili
Office 365 İngilizce 64 Bit
Altın Üyelik Bitiş Tarihi
31-01-2025
Deneyiniz.
 

Ekli dosyalar

DoğanD

Altın Üye
Katılım
22 Eylül 2023
Mesajlar
427
Excel Vers. ve Dili
Office 365 TR
Altın Üyelik Bitiş Tarihi
05-10-2028
Tekrar merhaba,

Sanırım aşağıdaki gibi işinizi görür, dener misiniz?

Kod:
Private Sub UserForm_Activate()
Dim dd As Integer
If Application.Left > 0 Then
dd = Application.Left
End If
UserForm1.Left = ActiveCell.Left + ActiveCell.Width + 15 + dd
End Sub
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Merhaba.

Aşağıdaki kodu Sayfa1'in kod kısmına kopyalayın.
Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("D3:I11")) Is Nothing And Target <> "" Then
        Target.Interior.Color = RGB(255, 0, 0)
        With UserForm1
            .StartUpPosition = 0
            .Caption = " [ " & Target.Value & " ]"
            .Label1.Caption = Target.Value
            .Left = ActiveCell.Left + ActiveCell.Width + 14 + ActiveWindow.Left
            .Top = ActiveCell.Top + 170 + ActiveWindow.Top
            .Show
        End With
        ActiveCell.Interior.Color = RGB(255, 255, 0)
    End If
End Sub
 
Son düzenleme:
Üst