DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
çok teşekkür ederim, kal sağlıcakla.İnceleyin.
çok teşekkür ederim, kal sağlıcakla.
bazılarını bulamadı neden.Makrolu alternatif dener misiniz?
Örnek verir misin? Hangileri?bazılarını bulamadı neden.
Metin içinde derken? Buna da örnek verir misin?Metin içinde varsa onu yazsın
Sub KelimeKontrolu()
Dim i As Long
Dim j As Long
Dim HValue As String
Dim AValue As String
Dim kelime As String
Dim found As Boolean
Dim dashPosition As Long
' B sütununu temizle
Range("B2:B" & Cells(Rows.Count, "B").End(xlUp).Row).ClearContents
' H sütunundaki verileri döngüye alıyoruz (H sütunu 2. satırdan başlıyor)
For i = 2 To Cells(Rows.Count, "H").End(xlUp).Row
HValue = Cells(i, "H").Value
found = False
' "-" işaretinden sonraki ilk kelimeyi al
dashPosition = InStr(HValue, "-")
If dashPosition > 0 Then
kelime = Trim(Split(Mid(HValue, dashPosition + 1), " ")(0)) ' İlk kelimeyi al
Else
kelime = HValue ' "-" işareti yoksa tamamını al
End If
' A sütunundaki verileri döngüye alıyoruz
For j = 2 To Cells(Rows.Count, "A").End(xlUp).Row
AValue = Cells(j, "A").Value
' Eğer A hücresinde kelime bulunursa
If InStr(1, AValue, kelime, vbTextCompare) > 0 Then
found = True
Cells(j, "B").Value = HValue ' B hücresine H hücresindeki değeri yaz
Exit For
End If
Next j
Next i
End Sub
mükerrer olanları yazmıyor yazması gerekir.Verilerin kontrol edildiği sütunlar önceki dosyanızdan farklı. Ayrıca Örnek "PAZARLAMA" kelimesi birden fazla yerde geçtiği için makroda karışıklık olabiliyor bu yüzden "-" işaretinden sonraki ilk kelimeyi dikkate alacak şekilde ayarlama yaptım. Bu kod, C sütunundaki hücrelerde bulunan "-" işaretinden sonra gelen ilk kelimeyi alır ve yalnızca bu kelimeyi A sütununda arar. Eşleşme bulunursa, B sütununda ilgili satıra C hücresinin tamamını yazdırır.
Güncellenmiş VBA Kodu
Kod:Sub KelimeKontrolu() Dim i As Long Dim j As Long Dim HValue As String Dim AValue As String Dim kelime As String Dim found As Boolean Dim dashPosition As Long ' B sütununu temizle Range("B2:B" & Cells(Rows.Count, "B").End(xlUp).Row).ClearContents ' H sütunundaki verileri döngüye alıyoruz (H sütunu 2. satırdan başlıyor) For i = 2 To Cells(Rows.Count, "H").End(xlUp).Row HValue = Cells(i, "H").Value found = False ' "-" işaretinden sonraki ilk kelimeyi al dashPosition = InStr(HValue, "-") If dashPosition > 0 Then kelime = Trim(Split(Mid(HValue, dashPosition + 1), " ")(0)) ' İlk kelimeyi al Else kelime = HValue ' "-" işareti yoksa tamamını al End If ' A sütunundaki verileri döngüye alıyoruz For j = 2 To Cells(Rows.Count, "A").End(xlUp).Row AValue = Cells(j, "A").Value ' Eğer A hücresinde kelime bulunursa If InStr(1, AValue, kelime, vbTextCompare) > 0 Then found = True Cells(j, "B").Value = HValue ' B hücresine H hücresindeki değeri yaz Exit For End If Next j Next i End Sub
Kod Açıklaması:
Kodu Çalıştırma:
- "-" işaretinden sonraki ilk kelimeyi alma: dashPosition ile "-" işaretinin konumunu buluyoruz. İşaretten sonraki kısmı Split ile boşluklardan ayırıp, ilk kelimeyi alıyoruz. Eğer "-" işareti yoksa, tüm hücreyi kullanıyoruz.
- Arama işlemi: Sadece bu ilk kelimeyi A sütunundaki hücrelerde arıyoruz. Eşleşme bulunursa, C sütunundaki tam değeri B sütunundaki ilgili satıra yazdırıyoruz.
Bu düzenlemeyle, C sütunundaki "-" işaretinden sonra gelen ilk kelime baz alınarak A sütununda arama yapılacaktır.
- VBA kodunu modülünüze yapıştırın.
- F5 tuşuna basarak veya Run butonuna tıklayarak makroyu çalıştırın.
Formülle uğraştım fakat çözemedim formül yardımında bulunursanız sevinirim.Makro ile ilgili bilginiz yoksa bence formülle kendiniz yapmaya çalışın. Böylece başkalarına bağımlı kalmazsınız. Sizin dosyanız formülle çözülebilecek düzeydeydi sanırım.
13 Nolu Mesaj da dosyada yapamadımEkteki dosya benim cevapladığım formüllü dosya. Bu dosyada Ünvanlar var. Ve yapmaya çalıştığınız şey hazırladığınız kodları ünvanlar ile eşleştirmeye çalışmaktasınız. Doğru mu???
Doğru ise şunu sormam gerekiyor. Bu ünvanların Vergi NO bilgileri var mı. Bu verileri siz bir sistemden mi alıyorsunuz, yoksa manuel mi hazırlıyorsunuz. Sistemden alıyorsunuz sanırım. Doğru ise sistemde ayrıca vergi no bilgileri olmalı. Bunu da temin edebilirseniz işlem yapmak kolaylaşır ve daha temiz bir dosyanız olur.
Dosyanın özelinde A sütununda ÇAY-KUR var, bunun kodunu ben göremedim. Bunun için kod hazırlanmadı mı? Yani tüm ünvanlara denk gelecek kodlar hazırlanmadı mı? Hazır değilse eşleşmeyen ünvanlar olacaktır doğal olarak.
Yazdıklarıma karşılık birkaç cümle açıklama yaparsanız daha mantıklı formüller kurmamıza yardımcı olur.
Her türlü benden tavsiye. Ticari Ünvan içeren excel dosyalarında bu ünvanların Vergi NO / TC No larının olması işlemlerde, formüllerde pratiklik , basitlik sağlar.
Çooooooooooook teşekkür ederim çok güzel oldu sağolun.Deneme adlı bir makro var. Veri adlı sayfada işlem yapmakta. B sütununda oluşan verileri kontrol edin. Pazar, Genel, Rize gibi kelimelerin geçtiği satırlarda hatalı eşleştirme yapma ihtimali var. Hatalı eşleştirme varsa kod kısmında düzeltme yapılabilir.