teyadih

VIP 4
Excel Versiyonu
Excel 2016
Excel Sürümü
32 Bit
Excel Dili
Türkçe
Merhaba arkadaşlar. Ekli dosyada da açıkladığım üzere metindeki noktalama işaretlerini almayacak bir formüle ihtiyacım var. Yardım eder misiniz?
 

Ekli dosyalar

  • Almama formülü.xlsx
    933.3 KB · Görüntüleme: 8

Ömer BARAN

Forum Kurucusu
Yönetici
Sn. @teyadih
Mevcut iç içe YERİNEKOY işlevlerinin olduğu formülde,
"… " kısmında çift tırnak arasında sonda 1 ADET BOŞLUK var, o BOŞLUK karakterini silip "…" olarak değiştirerek deneyin.
İstediğiniz bu mu?
 
Son düzenleme:

teyadih

VIP 4
Evet boşluğu sildiğimde almıyor sayın Baran. Mevcut formülde almaması için birebir aynısı olması gerekiyor. Tek nokta varsa veya iki tane yan yana bir tane ayrı nokta varsa alıyor bu durumda ve hepsi için ayrı formül koymak gerekiyor. Ancak ne koyacaklarını da kestiremiyorum. Noktaların arasına - veya virgülde koyabilir. Bunun için Y deki mevcut formüle bir tane nokta tire virgül yazdığımda bitişik veya ayrı ayrı fark etmeksizin metinin içindeki tüm nokta virgül ve tireleri almamasını istiyorum mümkünse sayın Baran
 

teyadih

VIP 4
Sayın Baran bu konuya ilişkin talebim ile daha önce açtığım aynı olanlardan 1 tanesini almaya ilişkin talebimi aşağıdaki konu için yapmış olduğunuz aktarma makrosu ile çözebilir miyiz?
Aktarma yaparken F sütunundaki tüm noktalama işaretlerini almayacak
ve Kocaeli Kocaeli Merkez Kocaeli vb. şekilde yazan aynı kelimelerden sadece 1 tanesini alarak aktarma yaptırabilir miyiz?

 

Ömer BARAN

Forum Kurucusu
Yönetici
@teyadih

İlgili konu sayfasında verdiğim kodda yer alan,
For u = 1 To 9: sonuc(say, u) = veri(sat, u): Next
satırının yerine, aşağıdakileri yapıştırarak deneyin.
Noktalama işaretleri, fazla boşluklar ve mükerrer metinler kaldırılır.

Kodun mantığı noktalama işaretlerinin yerlerine BOŞLUK koyup, ardından da
TRIM işleviyle yan yana 1 den fazla boşlukları kaldırmak şeklinde olduğundan;
öngörülemeyen şey örneğin K.K.T.C/Bafra ifadesinin K T C Bafra halini alması.


C#:
..........
        For u = 1 To 9
            If u = 4 And Trim(veri(sat, u)) <> "" Then
                mtn = Trim(veri(sat, u)): karakter = Empty
                For k = 1 To Len(mtn)
                    karakter = Mid(mtn, k, 1): kod = Asc(karakter)
                    If Not IsNumeric(Application.Match(kod, harf, 0)) And _
                        (kod < 65 Or kod > 122) And _
                        Not IsNumeric(karakter) Then
                        mtn = Replace(mtn, karakter, " ")
                    End If
                Next
                ayir = Split(mtn, " "): xd = ""
                For kk = 0 To UBound(ayir)
                    If InStr(xd, ayir(kk)) = 0 Then xd = Trim(CStr(xd & " " & ayir(kk) & " "))
                Next
                sonuc(say, u) = xd
            Else: sonuc(say, u) = veri(sat, u)
            End If
        Next
...............
 

teyadih

VIP 4
Kodu uyguladım sayın Baran
1- Tüm noktalama işaretlerini denedim ^ _ \ bunları alıyor
2- İngilizcede bulunmayan ç ğ ı ü gibi harfleri de almıyor. Örnek Ağrı olanı A r olarak almış Çorlu Tekirdağ olanı orlu Tekirda almış.
Size zahmet bunları da düzeltebilirsek tamamdır sayın Baran.
 

Ömer BARAN

Forum Kurucusu
Yönetici
Koda yaptığım bir eklemeyi, mesajıma yazmayı unutmuşum.

Aşağıdaki If .... End If kod bloğundan sonraki harf = Array(...... şeklindeki satırı ilgili yere ekleyip tekrar deneyin.

C#:
..........
If cevap <> 6 Then
    MsgBox "İşlem İPTAL edildi..", vbInformation
    Exit Sub
End If
harf = Array(32, 199, 208, 214, 220, 221, 222, 231, 240, 246, 252, 253, 254)
.........
 

teyadih

VIP 4
Elinize sağlık sayın Baran. Ek kodu uyguladım ve İngilizcede bulunmayan harflerle ilgili sorun çözüldü. Ancak ^ _ \ bu noktalama işaretlerini aktarıyor halen. Size zahmet eğer sizi yormayacak ise bunu da halledebilirsek tüm açıkları kapatmış olacağım.
 

Ömer BARAN

Forum Kurucusu
Yönetici
Koddaki
C#:
                    If Not IsNumeric(Application.Match(kod, harf, 0)) And _
                        (kod < 65 Or kod > 122) And _
                        Not IsNumeric(karakter) Then
kısmını
C#:
                    If Not IsNumeric(Application.Match(kod, harf, 0)) And _
                        ((kod < 65 Or kod > 122) Or (kod > 90 And kod < 97)) And _
                        Not IsNumeric(karakter) Then
şeklinde değiştirerek deneyin.
 
Son düzenleme:

teyadih

VIP 4
Merhaba sayın Baran kusura bakmayın asıl dosyamda aktarım yaparken fark ettim.
Dosyayı aktarırken kesinleşen izinler sayfasını önce temizliyor sonra tekrar aktarıyor
Resmi izinler ile işçilerin hafta sonunu ve yol izinleri nedeniyle kesinleşen izinler sayfasında düzeltmeler yapıyorum. Ancak makro aktarmadan önce sayfadakileri temizlediği için her defasında düzeltme yapmak zorunda kalacağım
Size zahmet kesinleşen izinler sayfasındakileri temizlemeden sadece M sütunu 1 den büyük olanları kesinleşen izinler sayfasındaki boş satırdan itibaren aktararak şekilde güncelleyebilir misiniz?
Birde her 2 sayfaya da sayfa koruma makrosu koyduğum da aktarım yaparken 400 hatası veriyor. Formüllerin bozulmaması için her 2 sayfada da sayfa koruması varken aktarım yapılabilir mi?
 

Ekli dosyalar

  • Aktarma makrosu BARAN.xlsm
    2.2 MB · Görüntüleme: 3

Ömer BARAN

Forum Kurucusu
Yönetici
Uğraşmamak bakımından her iki sayfanın sayfa koruma şifresini iletmeniz lazım.
Böylece kod, vereceğiniz şifreyi kullanarak korumayı kaldıracak, işlemi tamamladıktan sonra aynı şifre ile koruma uygulayacak.

Açıklamanızda, M sütunu 1'den büyük olanlar demişsiniz,
1'den büyük/değil kontrolünün yapılacağı sütun M'mi yoksa K sütunu mu?
Zira M sütunu SIRA NO işlevi görüyor, K sütunu ise İZİN SÜRESİ.

1 olanlar aktarılmayacak öyle mi?

Ayrıca; verdiğim kodda, aktarma işlemi sonrasında SİCİL NO bilgisine göre bir SIRALAMA işlemi var.
Bu SIRALAMA artık hiç olmayacak mı, yoksa önceden var olanlar ve yeni aktarılanlar dahil bir sıralama mı olmalı?
 

teyadih

VIP 4
Merhaba sayın Baran sayfa koruma şifresini 1234 yapalım
Aktarma yaparken kesinleşen izinler sayfasındaki daha önce aktarılan bilgileri temizlemeden kesinleşen izinler sütununa aktarılacaklar için sıra numarası verdirdiğim M sütununda 1 ve üstü rakam olan C-D-E-F-G-H-I-J-K deki bilgileri kesinleşen izinler sayfasındaki ilk boş satırdan itibaren değer olarak aktarıp önceden olanlarla birlikte sicil noya göre küçükten büyüğe doğru sıralayacak sayın Baran
Ayrıca F sütunundaki noktalama işaretlerini almayacak ve aynı olan kelimelerden sadece 1 tanesini aktaracak
Yani mevcut kodda sadece aktarırken temizleme yapmayacak ve M sütunu 1 ve üstü olan satırları en son boş satırdan itibaren aktararak
 
Son düzenleme:

Hazır Excel Dosyası İndir

  • Öne çıkan
Excel ile Bordro Hesaplama, Excel ile yapılmış en iyi maaş hesaplama dosyasıdır.
5.00 Oylama 4 İnceleme
İndirilme
720
Güncelleme
Doğum Tarihinden Burç Listesi Oluşturma işlemini gerçekleştiren bir dosya bulunmaktadır.
5.00 Oylama 1 İnceleme
İndirilme
5
Güncelleme
Waterfall Grafik Oluşturma işleminin nasıl yapıldığını gösteren bir dosya yer almaktadır.
5.00 Oylama 1 İnceleme
İndirilme
6
Güncelleme
Dinamik Takvim Yapma aşamalarını öğreten oldukça faydalı bir dosya bulunmaktadır.
5.00 Oylama 1 İnceleme
İndirilme
7
Güncelleme
Fazla Mesai Yapanları Listeleme işleminin yapıldığı önemli formüller içeren bir dosya yer almaktadır
5.00 Oylama 1 İnceleme
İndirilme
10
Güncelleme
Üst
Konuşma Başlat
Sitemiz ile ilgili tüm soru(n)larınız için hızlı iletişim kurabilirsiniz. Excel sorularınız cevaplanmayacaktır.
Ekip üyelerimizden ilk müsait olan cevap verecektir.