Excel Vba Forum - Excelce.Net
SORU ve CEVAPLAR (Yazılabilir) => Microsoft Excel, Vba, Makro, Formül vb. Soruları => Çözülen Excel, Vba, Makro, Formül vb. Soruları => Konuyu başlatan: voleybolcu - 04 Şubat 2012, 23:25:57
-
Merhaba.
Excel dosyasının A sütununda İngilizce kelimeler, hemen yanındaki B sütununda ise bu İngilizce kelimelerin fonetik okunuşları yer almaktadır.
Bazı İngilizce kelimeler birden çok fonetik okunuşlara sahiptir ve bu fonetik okunuşlar B sütununun ilgili hücrelerinde aralarında virgül olacak şekilde belirtilmektedir.
A sütunundaki bir İngilizce kelimenin birden çok fonetik okunuşu varsa, her bir fonetik okunuşu bu İngilizce kelimenin yanında olacak şekilde bu İngilizce kelimenin alt alta tekrar etmesini sağlayan bir makro programını sizlerden rica ediyorum.
İyi günler.
-
Merhaba,
Şu kodları dener misiniz?
Sub ExcelceFonetikAyir()
Dim bulent As Long
For bulent = 2 To Range("B65530").End(3).Row
If InStr(1, Range("B" & bulent), ",") > 0 Then
karakter = InStr(1, Range("B" & bulent), ",")
Range("B" & bulent + 1).EntireRow.Insert Shift:=xlDown
Range("A" & bulent + 1).Value = Range("A" & bulent)
Range("B" & bulent + 1).Value = VBA.Mid(Range("B" & bulent), karakter + 1)
Range("B" & bulent).Value = VBA.Left(Range("B" & bulent), karakter - 1)
End If
Next bulent
MsgBox "İşlem tamam.", vbInformation, "Excelce.Net"
End Sub
-
Merhaba.
Mesajımın ekinde yer alan Deneme isimli Excel dosyasının A sütununun birinci hücresindeki "bacteriophage" kelimesinin fonetik okunuşlarına göre alt alta tekrarlanmasında hazırladığınız makro programı başarılı olamadı. Bunu düzeltir misiniz?
-
Merhaba Ayşe hanım,
İlk örneğinizde başlık satırı olduğu için döngüyü 2'den başlatmıştım.
Başlık satırı olmadan kullanacaksanız,
şu satırı:
For bulent = 2 To Range("B65530").End(3).Row
şu şekilde değiştirin:
For bulent = 1 To Range("B65530").End(3).Row
-
Çok teşekkür ederim.