• DİKKAT

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

SpinButton ile belirli sütunları açmak/daraltmak

Katılım
10 Kasım 2006
Mesajlar
1,288
Excel Vers. ve Dili
Excel-2016
Değerli Arkadaşlarımıza selam ve sevgilerle ve hayırlı akşamlar..!

Şöyle bir uygulama : UserForm üzerinde; SpinButton ile istenilen sütunları kademeler halinde piksel değerlerine göre açmak ve daraltmak..

Diyelimki; B,D,E,F,G,I,K,M,N,O,P,Q,R,S,T,U,V,W sütun genişlikleri 6,00 piksel değerinde olsun.
SpinButton 'a ilk tıklayışta bu tütunları; 6,14 genişlik değerine, ikinci tık ile 6,29. üçüncü tık ile 6,43. sonra 6,57. sonra 6,71 daha sonra 6,86 ve 7,00 gibi bu şekilde ileri geri devam ettirmek..

Buna ait bir kodu nasıl düzenleyebiliriz..
 
Merhaba,
Ekli örneği inceleyiniz.
 

Ekli dosyalar

Merhaba,

Benimde çalışmam boşa gitmesin Sayın leumruk yanıtlamış.

A, C-D, G-I (Yeşil renkli) sütunların genişliğini ayarlar.

Kod:
Dim Genişlik As Double
Private Sub SpinButton1_SpinDown()
Genişlik = Genişlik - 0.15
If Genişlik < 6 Then Genişlik = 6
TextBox1.Value = Genişlik
Range("A:A,C:D,G:J").ColumnWidth = Genişlik
End Sub

Kod:
Private Sub SpinButton1_SpinUp()
Genişlik = Genişlik + 0.15
TextBox1.Value = Genişlik
Range("A:A,C:D,G:J").ColumnWidth = Genişlik
End Sub

Kod:
Private Sub UserForm_Initialize()
Genişlik = 6
TextBox1.Value = Genişlik
Range("A:A,C:D,G:J").ColumnWidth = Genişlik
End Sub
 

Ekli dosyalar

Sayın leumruk ve sayın Necdet Yeşertener arkadaşlarımıza ziyadesiyle teşekkür ediyorum..
Her iki örnek de, farklı yöntem itibariyle çok işime yarıyacak..
 
Saygıdeğer Arkadaşlar..! önce herkese selamlarımı iletiyorum..

Yukarıdaki sorunun cevabını almıştım, Ancak işlemi şu şekilde değiştirebilirmiyiz..
Örneklerde; SpinButton'a ilk tıklandığında, ilgili sütunları açılımını ilk değer olan (6,00 piksel değerinden başlatıyor, mevcut değerleri bozuyor..

İstenilen şu: Belirtilen sütunların genişlik değeri kaç pikselde ise, o değerden itibaren başlatarak açma/daraltma yapmak..
Yani başlangıç değeri belirmiyeceğiz, örneğin; sütunların birinin değeri 6,14 ve diğerinin değeri 6,71 ise; Makroyu ilk çalıştırdığımız zaman, birinin değeri 6,29, diğerinin değeri 6,86 olacağı gibi..
Belkide istenileni tam anlatamadım ama...
 
Saygıdeğer Arkadaşlar..! önce herkese selamlarımı iletiyorum..

Yukarıdaki sorunun cevabını almıştım, Ancak işlemi şu şekilde değiştirebilirmiyiz..
Örneklerde; SpinButton'a ilk tıklandığında, ilgili sütunları açılımını ilk değer olan (6,00 piksel değerinden başlatıyor, mevcut değerleri bozuyor..

İstenilen şu: Belirtilen sütunların genişlik değeri kaç pikselde ise, o değerden itibaren başlatarak açma/daraltma yapmak..
Yani başlangıç değeri belirmiyeceğiz, örneğin; sütunların birinin değeri 6,14 ve diğerinin değeri 6,71 ise; Makroyu ilk çalıştırdığımız zaman, birinin değeri 6,29, diğerinin değeri 6,86 olacağı gibi..
Belkide istenileni tam anlatamadım ama...
Dosyanız ekte.:cool:
Kod:
Private Sub SpinButton1_SpinDown()
Dim hcr As Range
For Each hcr In Range("B1,D1,E1,F1,G1,I1,K1,M1,N1,O1,P1,Q1,R1,S1,T1,U1,V1,W1")
    hcr.ColumnWidth = hcr.ColumnWidth - 4
Next hcr
End Sub

Private Sub SpinButton1_SpinUp()

For Each hcr In Range("B1,D1,E1,F1,G1,I1,K1,M1,N1,O1,P1,Q1,R1,S1,T1,U1,V1,W1")
    hcr.ColumnWidth = hcr.ColumnWidth + 4
Next hcr

End Sub
 

Ekli dosyalar

Çok değerli üstad Sn.Evren Bey..!

Gerçekten harikulade olmuş, Sadece aklımda olan bir soruyu da sormuş olayım,
Bu sütunların genişletilip/daraltılmasına sınır koyabilirmiyiz..Örneğin çalışan makro bu eylemi 6 ile 12 piksel değerleri arasında yapsın, bu değerlerin dışına çıktığında uyarı versin..

Not: Saygıdeğer hocam..Eğer kafa karışıklığı oluşturacaksa hiç uğraşmayın, nitekim istediğimin aslolanı aldım..Kalın sağlıcakla..
 
6dan küçük ve 12den büyük olmuyor.:cool:
Kod:
Private Sub SpinButton1_SpinDown()
Dim hcr As Range
For Each hcr In Range("B1,D1,E1,F1,G1,I1,K1,M1,N1,O1,P1,Q1,R1,S1,T1,U1,V1,W1")
    If hcr.ColumnWidth - 4 <= 6 Then
        hcr.ColumnWidth = 6
        Else
        hcr.ColumnWidth = hcr.ColumnWidth - 4
    End If
Next hcr
End Sub

Private Sub SpinButton1_SpinUp()
Dim hcr As Range
For Each hcr In Range("B1,D1,E1,F1,G1,I1,K1,M1,N1,O1,P1,Q1,R1,S1,T1,U1,V1,W1")
    If hcr.ColumnWidth + 4 >= 12 Then
        hcr.ColumnWidth = 12
        Else
        hcr.ColumnWidth = hcr.ColumnWidth + 4
    End If
Next hcr

End Sub
 

Ekli dosyalar

Sn.Evren Bey..! zahmet oldu ve de pek ağla olmuş, ziyadesiyle teşekkürler.. iyi akşamlar diliyorum..
 
Geri
Üst