If else döngüsü karıştı

Katılım
28 Şubat 2011
Mesajlar
605
Excel Vers. ve Dili
2010 - Türkçe - Win10 x64
Selam,
Aşağıdaki kodlar ile yapmak istediğim şey bir birine girdi yardımcı olabilir
misiniz?

1- Q20:AR22 birleştirilmiş hücre içinde formül yok ise
Kod:
=DÜŞEYARA(A1;BI2:BJ37;2;0)
bu formülü kuracak ve her tıklama ile 1 arttıracak yada eksiltecek.
2- Yok eğer Q20:AR22 birleştirilmiş hücresi içinde zaten o formül var ise her tıklama ile 1 eksiltecek yada arttıracak.
3- Kodlar en çok A1 hücresindeki değeri 36 ya kadar arttırmalı.


Kod:
Sub Button55_Click()

If [Q20:AR22].HasFormula Then
Range("a1") = Range("a1") - 1
If Range("a1") <= 0 Then
Range("a1") = 1
Else
End If
Range("Q20:AR22").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(R[-19]C[-16],R[-18]C[44]:R[17]C[45],2,0)"
Range("Q20:AR22").Select
End If
End Sub


Sub Button66_Click()

If [Q20:AR22].HasFormula Then
Range("a1") = Range("a1") + 1
If Range("a1") >= 36 Then
Range("a1") = 36
Else
End If
Range("Q20:AR22").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(R[-19]C[-16],R[-18]C[44]:R[17]C[45],2,0)"
Range("Q20:AR22").Select
End If
End Sub
 

Emir Hüseyin Çoban

Destek Ekibi
Destek Ekibi
Katılım
11 Ağustos 2008
Mesajlar
5,893
Excel Vers. ve Dili
Office 2013 Tr - Win10 x64
. . .

İşin içinde birleştirilmiş hücre varsa, örnek dosyada olmalı..

. . .
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Merhaba.

Yanlış anlamadıysam, düğmeye tıkladıkça, A1 hücresindeki değer;
-- 1-36 arasında döngü gibi artarak veya azalarak değişecek
-- birleştirilmiş Q20:AR22 hücresinde de =DÜŞEYARA(A1;BI2:BJ37;2;0) formülünün olması sağlanacak.

A1 hücresindeki değerin artacağı/azalacağı kararını vermek için başka bir hücreyi dayanak almak gerekir bence
ve ben bu dayanak hücre olarak B1 hücresini düşündüm.
Bu dayanak hücre adresini belgenizdeki uygun bir hücre adresiyle değiştirebilirsiniz.

Eğer isteğiniz bu ise aşağıdaki kod işinizi görecektir. Kod'u ilgili düğme/şekil ile ilişkilendirin,
önce belgenizdeki A1 hücresine 1 yazın ve düğmeyi tıklayın.
.
Kod:
[FONT="Arial Narrow"][B][COLOR="Blue"]Sub TIKLA()[/COLOR][/B]
If Cells(20, "Q").HasFormula = False Then
    Cells(20, "Q").Formula = "=VLOOKUP(A1,BI2:BJ37,2,0)"
        End If
            If Cells(1, "A") = 1 Then [COLOR="Red"]Cells(1, "B")[/COLOR] = 1
        If Cells(1, "A") = 36 Then [COLOR="red"]Cells(1, "B") [/COLOR]= 36
    If [COLOR="red"]Cells(1, "B")[/COLOR] = 36 Then Cells(1, "A") = Cells(1, "A") - 1
If [COLOR="red"]Cells(1, "B")[/COLOR] = 1 Then Cells(1, "A") = Cells(1, "A") + 1
[B][COLOR="blue"]End Sub[/COLOR][/B][/FONT]
 
Son düzenleme:

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Önceki cevabımda yer alan kod'da renklendirme yaparken yaptığım hatayı düzelttim.
Sayfayı yenileyerek tekrar kontrol edin.
 
Katılım
28 Şubat 2011
Mesajlar
605
Excel Vers. ve Dili
2010 - Türkçe - Win10 x64
Merhaba,
Tekrar açıklama yapmam gerektiğini fark ettim.
Ekte bulunan dosya da yukarı aşağı butonlar yardımı ile araç plakalarını teker teker getirmek yada bahsettiğim birleştirilmiş hücrede veri doğrulama ile listeden plaka seçebilmek istiyorum.
Birleştirilmiş hücre de veri doğrulama listesinden bir plaka seçtiğimde içindeki formül doğal olarak siliniyor. Makro ile yapmak istediğim şey o birleştirilmiş hücre içinde
Kod:
=DÜŞEYARA(A1;BI2:BJ37;2;0)
Bu formül yok ise bu formülü kuracak ve A1 hücresindeki sayıları bir arttırarak yada 1 eksilterek farklı plakalar getirmek...

Umarım anlatabilmişimdir.
 

Ekli dosyalar

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Merhaba.

Ekli belgeyi inceleyin.
-- 4 ayrı düğme yerine 2 adet değer değiştirme düğmesi kullandım,
-- Düğmenin veri yazdığı hücreyi A1 yerine BI1 hücresi olarak değiştirdim.
-- Değer değiştirme düğmesini döngü şeklinde çalışır hale getirdim.
-- WorksheetChange kodu kullanarak, veri doğrulama da aktif kullanılır hale geldi.

Sonuçta Q20 hücresindeki formül tamamen gitmiş, formülün yaptığı işlem kod üzerine alınmış oldu,
değer değiştirme düğmesiyle artırma/eksiltme yapıldığında döngü oluştu
ve sadece aşağı ya da sadece yukarı tek yön tuşuyla da listede hareket etme imkanı elde edildi,
yukarı/aşağı işlevi de devam ediyor elbette.

Sanırım istediğiniz sonuç budur.
.
 

Ekli dosyalar

Katılım
28 Şubat 2011
Mesajlar
605
Excel Vers. ve Dili
2010 - Türkçe - Win10 x64
Teşekkür ederim Üstad.
Saygılar.
 
Üst