Eğer Hücre "E" Değerini İçeriyorsa= hücre değeri 0 olsun

Katılım
27 Ekim 2011
Mesajlar
8
Excel Vers. ve Dili
2008 Türkçe
Herkese merhabalar
Sorunumu kısaca anlatmaya çalışacağım

Komple bir sütunda hamstok değerleri var
Bu değerler sqlden çekliyor ve DÜŞEYARA(D8;stok;10;YANLIŞ) tarzında bir formül ile başka bir alana aktarılıyor.

Yalnız bazı değerler sql den içerisinde E harfi olan saçma bir şekilde geliyor.Aslında dengi ve manası 0.
Bu değer sayısal bir değer olmadığı için de sorun oluşuyor

Amacım şu.
Öyle bir makro olsun ki bu düşeyara ile 2. yere çektiğim değer eğer E içeriyorsa o hücre"0" a eşitlensin

Yardımcı olacak herkese şimdiden çok teşekkür ediyorum
 

Ekli dosyalar

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,371
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Aşağıdaki kodları dener misiniz?

Kod:
Sub Sifirla()
 
    Dim i As Long
    On Error Resume Next
    Application.ScreenUpdating = False
    For i = 2 To Cells(Rows.Count, "A").End(3).Row
        If Cells(i, "A") Like "*E*" Then Cells(i, "A") = 0
    Next i
    Application.ScreenUpdating = True
    MsgBox "İşlem Tamam..."
    
End Sub
 
Katılım
27 Ekim 2011
Mesajlar
8
Excel Vers. ve Dili
2008 Türkçe
Valla oldu üstad.
Çok teşekkür ediyorum.Büyüksün :)
Peki dosyayı açınca makronun otomatik çalışması için ya da arka planda sürekli çalışması için ne yapabilirim.
Sql den veriler değiştikçe yine "E" olacak ve maktoyu sürekli çalıştırmam gerekecek
Arka planda sürekli çalışmasının bir yolu var mıdır acaba?
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,371
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Sürekli çalışmasına gerek var mı bilmiyorm. Makroyu bir butonla ilişkilendirip gerektiğinde çalıştırabilirsiniz.
 
Katılım
15 Kasım 2007
Mesajlar
336
Excel Vers. ve Dili
iş: 2010 İngilizce

ev:2010 Türkçe
Altın Üyelik Bitiş Tarihi
07.08.2023
merhaba,

peki buna else uygulamasını nasıl yapacağım yani bu koşullar dışındaysa "acente" yaz demek istiyorum yardımcı olur musunuz.

ub Button1_Click()

Dim i As Long
On Error Resume Next
Application.ScreenUpdating = True
For i = 2 To Cells(Rows.Count, "F").End(3).Row
If Cells(i, "F") Like "*O*" Then Cells(i, "F") = "KASKO"
If Cells(i, "F") Like "*T*" Then Cells(i, "F") = "TRAFİK"
If Cells(i, "M") Like "*BANKA*" Then Cells(i, "K") = "TGB"
If Cells(i, "M") Like "*BR*" Then Cells(i, "K") = "BROKER"

'SADECE M SÜTUNU sütunu hiçbirini sağlamıyorsa K SÜTUNUNDA "ACENTE" YAZACAK if else yapılacak'


'deneme if else bölümü'


Next i
Application.ScreenUpdating = False
MsgBox "İşlem Tamam..."

End Sub
 
Katılım
16 Kasım 2017
Mesajlar
255
Excel Vers. ve Dili
office professional plus 2021
Hocam iyi günler. Peki eğer sayfa1 a4 hücresi sayfa2 b4 hücresinin bir kısmını veya tamamını içeriyorsa nasıl yazılır.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,276
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

If Sheets("Sayfa2").Range("B4") Like "*" & Sheets("Sayfa1").Range("A4") & "*" Then

Ya da;

If InStr(1, Sheets("Sayfa2").Range("B4"), Sheets("Sayfa1").Range("A4")) > 0 Then
 
Katılım
16 Kasım 2017
Mesajlar
255
Excel Vers. ve Dili
office professional plus 2021
Deneyiniz.

If Sheets("Sayfa2").Range("B4") Like "*" & Sheets("Sayfa1").Range("A4") & "*" Then

Ya da;

If InStr(1, Sheets("Sayfa2").Range("B4"), Sheets("Sayfa1").Range("A4")) > 0 Then
Teşekkürler Korhan Hocam. Bende siz cevaplamadan böyle denemiştim, "If S2.Range("C5") Like S1.Range("C5") & "**" Then"
Acaba sizce böylede uygun olurmu.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,276
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Çift yıldızı neden kullandığınızı anlamadım.

Benim verdiğim yöntem İÇERİR mantığıyla sorgulama yapar.

"*" & Aranan_Değer & "*" (içerir yöntemi)
"*" & Aranan_Değer (ile biter yöntemi)
Aranan_Değer & "*" (ile başlar yöntemi)
 
Katılım
16 Kasım 2017
Mesajlar
255
Excel Vers. ve Dili
office professional plus 2021
Çift yıldızı neden kullandığınızı anlamadım.

Benim verdiğim yöntem İÇERİR mantığıyla sorgulama yapar.

"*" & Aranan_Değer & "*" (içerir yöntemi)
"*" & Aranan_Değer (ile biter yöntemi)
Aranan_Değer & "*" (ile başlar yöntemi)
Afadersiniz Hocam formda kelime aratma konusundan aklımda kalmış.
Öğrettiğiniz için sağolun şimdi daha iyi anladım.
Aslında böyle sormamın sebebi bu koşulu çalışma kitabımda uygulayınca oluyor fakat kapalı dosyalardaki veriler için yapamadım sanırım dosyaları açtırmak lazım değil mi hocam.
Birde korhan hocam koşulu 2 ye çıkarmak için hem c5 hem c6 da içeriyorsa demek için araya Or ifadesi koyulmalı değilmi?
 
Katılım
18 Ağustos 2009
Mesajlar
199
Excel Vers. ve Dili
Excel 365 - Türkçe
Altın Üyelik Bitiş Tarihi
14/06/2022
Farklı bir alternatif olarak, içinde E olan değerleri 0 olması için basit bir formül ekledim.
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,276
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Kapalı dosyalarda ne yapmaya çalıştığınızı bilemediğim için genel bir cevap vermem doğru olmaz. Önerdiğimiz sorgular açık çalışma kitabı için daha uygundur.

2 koşuldan bahsetmişsiniz. OR parametresi YA DA anlamındadır. Eğer bahsettiğiniz 2 koşulun aynı anda sağlanması gerekiyorsa AND kullanmanız uygun olacaktır. Koşullardan birisinin gerçekleşmesi sizin için yeterli ise o zaman OR kullanmalısınız.
 
Katılım
16 Kasım 2017
Mesajlar
255
Excel Vers. ve Dili
office professional plus 2021
Merhaba,

Kapalı dosyalarda ne yapmaya çalıştığınızı bilemediğim için genel bir cevap vermem doğru olmaz. Önerdiğimiz sorgular açık çalışma kitabı için daha uygundur.

2 koşuldan bahsetmişsiniz. OR parametresi YA DA anlamındadır. Eğer bahsettiğiniz 2 koşulun aynı anda sağlanması gerekiyorsa AND kullanmanız uygun olacaktır. Koşullardan birisinin gerçekleşmesi sizin için yeterli ise o zaman OR kullanmalısınız.
Merhaba KORHAN Hocam,
Eksik olmayın, sizin vaktinizi almayı sevmiyorum ama saatlerdir uğraşıyorum yapamıyorum. Or parametresinde emin oldum sayenizde sağolun.
Yapmak istediğim aşağaıya eklediğim kodlarla kapalı KAYITLAR klasöründeki birçok kapalı dosyalardaki sayfaların H8 hücresinde ki kelime çalışma kitabımın Q1 hücresinde ki kelimeleri içeriyorsa, bu sayfaların A2:I2 aralığını kopyalayıp çalışma kitabımdaki "Listele" sayfasının 4.satırının a hücresine yapıştırsın.Sonrada Listele sayfasına her veriyi yapıştırdığı satırın herhangibir hücresine, kopyaladığı sayfaya köprü atasın ki o sayfaya kolayca ulaşabileyim. Biraz karışık Hocam fakat benim için önemli. Tekrar sağolun ilginize.
Kod:
Sub Klasorden_Durumu_Guncelle()
Application.ScreenUpdating = False
Dim evn As Object, klasoradi As String, kitap As Workbook
Dim i As Integer, x As Integer, Dosyam As Workbook
Set kitap = ThisWorkbook
Set S1 = Sheets("Listele")
'S1.Range("A4:J" & S1.Rows.Count).ClearContents
klasoradi = "KAYITLAR"
Set evn = CreateObject("scripting.filesystemobject")
Set dosyalar = evn.getfolder(ThisWorkbook.Path & Application.PathSeparator & klasoradi)
For Each Klasor In dosyalar.Files
    Set Dosyam = GetObject(Klasor.Path)
    Son = S1.Range("B65536").End(3).Row
    Son2 = S1.Cells(S1.Rows.Count, 1).End(3).Row
    Son3 = Sheets("KAYITLAR").[a65536].End(3).Row + 1
      For i = 1 To Dosyam.Sheets.Count
       For x = 4 To Son
           If S1.Range("Q1") Like "*" & Dosyam.Sheets(i).Range("H8") & "*" Then
               Dosyam.Sheets(i).Range("I2").Copy
               S1.Range("a", x).PasteSpecial xlPasteValues
               'S1.Range("a", x) = Dosyam.Sheets(i).Range("I2") Bu deneme kodudur.
           End If
         Next x
       Next i
    Dosyam.Close False
Next Klasor
Set evn = Nothing: Set kitap = Nothing: Set Dosyam = Nothing
Application.ScreenUpdating = True
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,276
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Kod eklemek yerine örnek dosyalarınızı paylaşırsanız daha sağlıklı yardım alabilirsiniz.
 
Katılım
16 Kasım 2017
Mesajlar
255
Excel Vers. ve Dili
office professional plus 2021
Merhaba,

Kapalı dosyalarda ne yapmaya çalıştığınızı bilemediğim için genel bir cevap vermem doğru olmaz. Önerdiğimiz sorgular açık çalışma kitabı için daha uygundur.

2 koşuldan bahsetmişsiniz. OR parametresi YA DA anlamındadır. Eğer bahsettiğiniz 2 koşulun aynı anda sağlanması gerekiyorsa AND kullanmanız uygun olacaktır. Koşullardan birisinin gerçekleşmesi sizin için yeterli ise o zaman OR kullanmalısınız.
Sayın KORHAN Hocam aşağıya eklediğim kodlarla istediğimin büyük kısmını yaptım fakat köprüyü nasıl ekleyebilirim.

Kod:
Set Dosyam = Application.Workbooks.Open(klasor.Path)
      For i = 1 To Dosyam.Sheets.Count
           If Dosyam.Sheets(i).Range("H8") Like "*" & S1.Range("Q1") & "*" Then
           S1.Range("a65536").End(3)(2, 1) = Dosyam.Sheets(i).Range("H8")
               Dosyam.Sheets(i).Range("a2:ı2").Copy
             S1.Range("b65536").End(3)(2, 1).PasteSpecial xlPasteValues
            End If
       Next i
    Dosyam.Close False
Next klasor
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,276
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Forumda hyperlink ifadesi ile arama yapınız.
 
Katılım
16 Kasım 2017
Mesajlar
255
Excel Vers. ve Dili
office professional plus 2021
Forumda hyperlink ifadesi ile arama yapınız.
Hocam hyperlink konusunu daha önce çok araştırdım hatta kayıt makrosuyla ilgili sorum vardı size. Kayıt makrosunda o durumu çözmüştüm. Deneme yaparak adres kısmına tanımladığım ad ifadesini subadress kısmınada ad1 ifadesini kullanmıştım. Bu ad ve ad1 e sayfa adlarını ve hücresini tanınlamıştım. Fakat şimdi aklıma hiç birşey gelmiyor.
 
Üst