Belirlenen İki Karakter Arasını Silmek veya URL Temizlemek

Katılım
8 Eylül 2021
Mesajlar
2
Excel Vers. ve Dili
365 Türkçe
Selamlar herkese,

Excel dosya içerisinde bir sütunda kaynak kodu içerisinde url ler mevcut. URL ler exceldeki köprüler değil onu belirteyim. Örneğin;

<div><img src=" /e/Q5NM96RZZo-YRYNeYvAi9aeqFMY3fvEkMLNGAiSy_A05VTgEhjot0pUJqqJFkGye/Overview/Superior-Optical.jpg" /></div>
<div>&nbsp;</div>
<div>

şekilde yer alıyor. Kırmızı ile işaretlediğimiz alanları temizlememiz gerekiyor.

1. Her satırda yer alan metin uzunlukları farklı. Yani URL leri içerisinden ayıklayacağımız genel metin uzunluklarıda duruma göre değişebiliyor.
2. Her URL değişken --- Örn: "hepsiburada.com" da olabilir "n11.com" da
3. Her URL nin karakter sayıları farklı. --- Örn: "hepsiburada.com" da olabilir "n11.com" da - Duruma göre 10 karakterde olabilir, 5 de.
4. Her satır içerisinde birden fazla URL yer alabilir. Yani bir hücre içinde "hepsiburada.com" da olabilir "n11.com" da. Veya "hepsiburada.com" birden fazla yer alabilir.
5. Değişmeyen tek şey bunların "http" ile başlayıp, ".com" ile bitmesi. ( Tabi ki .net vs de olabilir fakat ilk .com u çözebilirsem diğerlerine de uyarlayacağım )
6. Bu metinlerin hücre sıralamalarının değişmemesi gerekiyor. Her bir metin bir ürüne ait.
7. Genel metin içerisinde hiç URL yer almayada bilir.

Örn: Genel metnin içerisinde ne kadar "http XXXXXXXXX.com" var ise biz bu tüm XXXXXXXXX değişkenlerini yani URL leri silmek veya değiştirmek istiyoruz.

Kısaca "http" ile başlayıp ".com" ile biten metin aralıklarının hepsini ya silmek yada mutlak bir değer ile değiştirmek istiyorum. Her hücrede birden fazla URL olduğu için Soldan ve Sağdan fonksiyonu ile yapılamayacağını düşünüyorum ama emin değilim.

Çünkü excele formülü yazdık diyelim ve ilgili metinde SOLDAN geldi ve "http" metnini buldu, sonrasında ise ".com" karakterlerini de buldu diyelim. Fakat aynı hücre içerisinde birden fazla "http" ve ".com" var ise düzgün çalışmayacağını düşünüyorum.

İşin içerisinden yaklaşık 10 gündür çıkamadım. Yardımlarınızı bekliyorum. Herkese iyi günler dilerim.
 

muratboz06

Destek Ekibi
Destek Ekibi
Katılım
23 Mart 2017
Mesajlar
568
Excel Vers. ve Dili
Office365 TR
Örnek dosya paylaşınız. A sütununda kaynak verileri, B sütununda da olmasını istediğiniz sonucu yazınız. A sütununda 4-5 farklı veri olsun.
Belki bir çözüm üretebiliriz.
Örnek dosyayı dosya.tc sitesine yükleyebilirsiniz.
 
Katılım
8 Eylül 2021
Mesajlar
2
Excel Vers. ve Dili
365 Türkçe
İlginiz için teşekkürler. Kafanız karışabilir diye düşünerek B sütununa olması gerekeni yazamadım. Fakat izah edebildiğimi düşünüyorum. Yine soracağınız bir konu olur ise yazabilirsiniz.

 

askm

Destek Ekibi
Destek Ekibi
Katılım
4 Haziran 2005
Mesajlar
2,745
Excel Vers. ve Dili
2010-2016
Aşağıdaki kodlar ile yapabilirsiniz.
Kod:
Sub askm()
Dim son As Long
Dim kelime1 As String, kelime2 As String
Dim s1 As Long, s2 As Long
Application.ScreenUpdating = False
On Error Resume Next
son = Range("A" & Rows.Count).End(3).Row
For i = 2 To son
    kelime1 = Cells(i, 1).Value
    s1 = InStr(kelime1, "http")
    s2 = InStr(kelime1, "com")
    kelime2 = Mid(kelime1, 1, s1 - 1) & Mid(kelime1, s2, Len(kelime1))
    Cells(i, 2).Value = kelime2
Next i
Application.ScreenUpdating = True
MsgBox "İşlem tamam...", vbInformation, "UYARI!"
End Sub
 

muratboz06

Destek Ekibi
Destek Ekibi
Katılım
23 Mart 2017
Mesajlar
568
Excel Vers. ve Dili
Office365 TR
Örnek dosyanız için yazılmış kod aşağıdadır.
http://*/ veya https://*/ url adreslerini https://excel.web.tr olarak değiştirir.
Kod:
Sub RegexReplacingEveryInstanceOfAPattern()
    For i = 2 To 5  '5 sayısını excel dosyanızdaki A sütunundaki son satır numarasını yazınız.
        Dim stringOne As String
        Dim regexOne As Object
        Set regexOne = New RegExp
        
        regexOne.Pattern = "http[s]?://[^/]+"
        regexOne.Global = TRUE
        stringOne = Cells(i, 1).Value
        
        Cells(i, 2) = regexOne.Replace(stringOne, "https://excel.web.tr") 'https://excel.web.tr adresine istediğinizi yazabilirsiniz.
    Next i
    
    MsgBox "İşlem tamamlandı."
End Sub
 
Üst