• DİKKAT

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

hücre boyutlarının piksel değeri nasıl bulunur?

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,420
Excel Vers. ve Dili
excel 2010
merhaba
bir hücrenin yükseklik ve genişliğini piksel olarak veren kod nedir acaba?
 
Necdet bey aşağıdaki şekilde bir katsayı uygulamıştı.
KolonKatSayı = 5.7
SatırKatSayı = 1.01

sanırım Zafer beyin amprik bir formülü vardı ama tam olarak piksel değerini öğrenmek istiyorum.
 
merhaba
excel yardım menüden birşeyler buldum ama bu kodları nasıl anlaşılır hale getirebilirim?


Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With ActiveWindow
    lWinWidth = _
        .PointsToScreenPixelsX(.Selection.Width)
    lWinHeight = _
        .PointsToScreenPixelsY(.Selection.Height)
End With
MsgBox lWinWidth
MsgBox lWinHeight
End Sub
 
merhaba
excel yardım menüden birşeyler buldum ama bu kodları nasıl anlaşılır hale getirebilirim?


Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With ActiveWindow
    lWinWidth = _
        .PointsToScreenPixelsX(.Selection.Width)
    lWinHeight = _
        .PointsToScreenPixelsY(.Selection.Height)
End With
MsgBox lWinWidth
MsgBox lWinHeight
End Sub

Nasıl yani? Şöyle bir şey mi?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With ActiveWindow
genişlik = _
.PointsToScreenPixelsX(.Selection.Width)
yükseklik = _
.PointsToScreenPixelsY(.Selection.Height)
End With
MsgBox genişlik
MsgBox yükseklik
End Sub

Bu kodlar bende doğru sonuç üretmiyor.
 
merhaba
syn yurttas,
bir hücrenin boyutlarının 20x20 olduğunu düşünelim.
genişlik için 20,00 (145 piksel)
yükseklik için 19,50 (26 piksel) olduğunu görüyoruz.
kod ile elde ettiğimiz değer ise genişlik:137 yükseklik:156 değerlerini alıyoruz.
bu değerler birbirini tutmuyor.
olası nedeni ekran ayarlarından mıdır?
 
Necdet bey aşağıdaki şekilde bir katsayı uygulamıştı.
KolonKatSayı = 5.7
SatırKatSayı = 1.01

sanırım Zafer beyin amprik bir formülü vardı ama tam olarak piksel değerini öğrenmek istiyorum.

Süleyman bey,

Ben o kodları deneme yanılma yöntemi ile bulmuştum, yakın değerler ama çok doğru değildi.
 
Tekrar merhaba,

Belki lazım olur, aşağıdaki kodları araştırıp bulmuştum. Ekran Çözünürlüğünü bulan Kullanıcı Tanımlı Fonksiyonlar.

Kod:
Private Declare Function GetSystemMetrics Lib "user32" _
    (ByVal nIndex As Long) As Long
Private Const SM_CXSCREEN = 0
Private Const SM_CYSCREEN = 1
Kod:
Private Function EkranGenisligi() As Long
    EkranGenisligi = GetSystemMetrics(SM_CXSCREEN)
End Function
Kod:
Private Function EkranYuksekligi()
    EkranYuksekligi = GetSystemMetrics(SM_CYSCREEN)
End Function
 
Merhaba,
Sayın Yeşertener,
Aşağıdaki kodları bu forumdan almıştım.
Sizin gonderdiğiniz functionla aynı işlemi yapıyor galiba.
Alternatif olarak işe yarar diye düşündüm.

Kod:
Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
 
Sub ekran()
MsgBox ("Çözünürlük Pixel Değerleri: " & GetSystemMetrics(0) & " x " & GetSystemMetrics(1))
End Sub
 
Merhaba,
Sayın Yeşertener,
Aşağıdaki kodları bu forumdan almıştım.
Sizin gonderdiğiniz functionla aynı işlemi yapıyor galiba.
Alternatif olarak işe yarar diye düşündüm.

Kod:
Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
 
Sub ekran()
MsgBox ("Çözünürlük Pixel Değerleri: " & GetSystemMetrics(0) & " x " & GetSystemMetrics(1))
End Sub

Evet böyle daha kısa, ben ham olarak alıp arşive attığım için üzerinde düşünmemiştim kodları kısaltmak için.
 
Merhaba;

Aktif hücrenin, pixel cinsinden genişlik ve yükseklik değerleri için aşağıdaki gibi bir kod kullanılabilir;

Kod:
Sub Test()
    MsgBox "Genişlik = " & ActiveCell.Width * 4 / 3 & " Pixel" & vbCrLf _
         & "Yükseklik = " & ActiveCell.Height * 4 / 3 & " Pixel"
End Sub

.
 
bir örnek de ben veriyim

Sub satırsutunno()
a = ActiveWindow.RangeSelection.Address
b = Worksheets(ActiveSheet.Name).Range(a).ColumnWidth
c = Worksheets(ActiveSheet.Name).Range(a).RowHeight
MsgBox "Sutun genişliği " & b & Chr(10) & Chr(10) & _
"Satır genişliği " & c, vbInformation, "Sutun ve Satır No"
End Sub
 
Merhaba;

Aktif hücrenin, pixel cinsinden genişlik ve yükseklik değerleri için aşağıdaki gibi bir kod kullanılabilir;

Kod:
Sub Test()
    MsgBox "Genişlik = " & ActiveCell.Width * 4 / 3 & " Pixel" & vbCrLf _
         & "Yükseklik = " & ActiveCell.Height * 4 / 3 & " Pixel"
End Sub

.



merhaba
nezamandır syn Haluk'un bu soruyu farketmesini bekliyordum.
bu kod çok işime yarayacak, Haluk bey çok teşekkür ederim.
 
Geri
Üst