Soru TEK SEFERLİK İF

Katılım
7 Ağustos 2019
Mesajlar
106
Excel Vers. ve Dili
İngilizce
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 ???
 

yanginci34

Altın Üye
Katılım
6 Temmuz 2010
Mesajlar
1,587
Excel Vers. ve Dili
excel2016
Örnek dosya yükleye bilirseniz daha kolay çözüm alırsınız.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,181
Excel Vers. ve Dili
Ofis 365 Türkçe
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
106
Excel Vers. ve Dili
İngilizce
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
15,181
Excel Vers. ve Dili
Ofis 365 Türkçe
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
106
Excel Vers. ve Dili
İngilizce
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

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,327
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
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
106
Excel Vers. ve Dili
İngilizce
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
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
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

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,327
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
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