Soru TEK SEFERLİK İF

Katılım
7 Ağustos 2019
Mesajlar
55
Beğeniler
3
Excel Vers. ve Dili
İngilizce
#1
MERHABA
benim sorum şu ben makroda nasıl a1 in değeri "pantalon" olunca şunu yap . sonra a1 in değeri değiştiğinde şunu yap sonra a1 in değeri pantalon olana kadar bir şey yapma derim ???
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
12,656
Beğeniler
121
Excel Vers. ve Dili
Ofis 2003 İngilizce
Ofis 2007 Türkçe
Ofis 2010 Türkçe
#3
Merhaba,

Aşağıdaki kodlar belki bir fikir verir.

Kod:
Sub A1eGore()

    Dim s1  As Worksheet
    
    Set s1 = Sheets("Sayfa1")
    
    s1.Select
    
    If Range("A1") = "Pantolan" Then
        MsgBox "A1'in değeri : Pantolondur"
    ElseIf Range("A1") = "Gömlek" Then
        MsgBox "A1'in değeri Gömlektir...."
    Else
        MsgBox "A1'in değeri ne Pantolon ne de Gömlek, A1'in Değeri : " & Range("A1") & "'dir."
    End If
    
End Sub
 
Katılım
7 Ağustos 2019
Mesajlar
55
Beğeniler
3
Excel Vers. ve Dili
İngilizce
#4
Merhaba,

Aşağıdaki kodlar belki bir fikir verir.

Kod:
Sub A1eGore()

    Dim s1  As Worksheet
   
    Set s1 = Sheets("Sayfa1")
   
    s1.Select
   
    If Range("A1") = "Pantolan" Then
        MsgBox "A1'in değeri : Pantolondur"
    ElseIf Range("A1") = "Gömlek" Then
        MsgBox "A1'in değeri Gömlektir...."
    Else
        MsgBox "A1'in değeri ne Pantolon ne de Gömlek, A1'in Değeri : " & Range("A1") & "'dir."
    End If
   
End Sub
Merhaba bu kod atiyorum gomlekten swite donussede calisicak ben istiyorum ki a1 pantalon oldu calisti . Sonra pantolon degisti t-shirt oldu yine Calisti . T-shirten sonra swit olursa calismiycak . Ama eger pantalon olursa calisicak mumkun mu yardim eder misin
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
12,656
Beğeniler
121
Excel Vers. ve Dili
Ofis 2003 İngilizce
Ofis 2007 Türkçe
Ofis 2010 Türkçe
#5
Merhaba,

Aşağıdaki kodları ilgili sayfanın kod bölümüne kopyalayarak deneyiniz.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, [A1]) Is Nothing Then Exit Sub
    
    If Target.Value = "Pantolan" Or "Gömlek" Then
        MsgBox "A1'in değeri : " & Target.Value
    Else
        MsgBox "A1'in değeri ne Pantolon ne de Gömlek, A1'in Değeri : " & Target.vaule & "'dir."
    End If
    
End Sub
 
Katılım
7 Ağustos 2019
Mesajlar
55
Beğeniler
3
Excel Vers. ve Dili
İngilizce
#6
Merhaba,

Aşağıdaki kodları ilgili sayfanın kod bölümüne kopyalayarak deneyiniz.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, [A1]) Is Nothing Then Exit Sub
   
    If Target.Value = "Pantolan" Or "Gömlek" Then
        MsgBox "A1'in değeri : " & Target.Value
    Else
        MsgBox "A1'in değeri ne Pantolon ne de Gömlek, A1'in Değeri : " & Target.vaule & "'dir."
    End If
   
End Sub
Tesekurler neclet bey ama bu da olmaz bana lazim olan kod şunu demeli ; a1 pantalon iken değişirse çalış
Sizin yazdığınız kod pantalon yada gömlek iken çalış diyor .
Yani a1 gömlekti swite alırsam çalışmıycak hiç bir macro . Ama pantalona alınca çalışıcak . Sonra pantalon iken başka bir şeye çevirince yine çalışıcak ama diğer türler arasında değişirken çalışmıyacak . Yardımlarınız için teşekür ederim tekrar
Bende çözmeye çalışıyorum çözer isem burdan paylaşacağım
 

Korhan Ayhan

Moderatör
Yönetici
Katılım
15 Mart 2005
Mesajlar
24,656
Beğeniler
438
Excel Vers. ve Dili
OFFICE 2019 PRO TR
#8
Aşağıdaki yapıyı deneyebilirsiniz.

Büyük - küçük harf duyarlıdır.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
    Select Case Target
         Case "Pantolon"
         Rem makro kodlarınız...
    End Select
End Sub
 
Katılım
7 Ağustos 2019
Mesajlar
55
Beğeniler
3
Excel Vers. ve Dili
İngilizce
#9
Aşağıdaki yapıyı deneyebilirsiniz.

Büyük - küçük harf duyarlıdır.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
    Select Case Target
         Case "Pantolon"
         Rem makro kodlarınız...
    End Select
End Sub
Kodu açıklar mısınız öğrenme amacıyla soruyorum case komutu nedir
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
7,511
Beğeniler
235
Excel Vers. ve Dili
İş : Ofis 2016 - Türkçe
Ev: Ofis 2016 - Türkçe
#10
Sayın Korhan Ayhan'ın kodlarından esinlenerek şöyle bir şeyler yaptım. Kod A1 hücresi seçildiğinde A1'deki değeri daha sonra karşılaştırmada kullanmak üzere Z1 hücresine yazar ve duruma göre farklı mesajlar verir:

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A1]) Is Nothing Then Exit Sub
If [Z1].Value = "Pantolon" Then
    MsgBox "A1 eskiden Pantolon olduğundan bu kod çalıştı. Yeni değer ise : " & Target.Value
ElseIf Target = "Pantolon" Then
    MsgBox "A1 Pantolon olduğundan bu kod çalıştı. Eski değer: " & [Z1].Value & " idi"
Else
    MsgBox "A1'in eski veya yeni değeri Pantolon olmadığından bu kod çalıştı. A1'in  yeni değeri : " & Target.Value & ", eski değeri : " & [Z1].Value & "'dir."
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, [A1]) Is Nothing Then Exit Sub
[Z1] = Target
End Sub
 

Korhan Ayhan

Moderatör
Yönetici
Katılım
15 Mart 2005
Mesajlar
24,656
Beğeniler
438
Excel Vers. ve Dili
OFFICE 2019 PRO TR
#11
VBA'da kullanılan bir sorgulama yapısıdır.

IF-THEN-ELSE-END IF
SELECT CASE-CASE-ELSE-END SELECT

Bazı durumlarda esnek kullanımı olduğu için kullanmayı tercih edebilirsiniz.

İnceleyiniz.

 
Üst