• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Kod'da Büyük Harf

Katılım
5 Kasım 2007
Mesajlar
4,727
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Merhaba,

Aşağıdaki kod, GENEL sayfası "C" ve "F" sütunlarındaki isimlerin tamamı büyük ise veri getiremiyor,

Ancak, İlk Harfleri büyük yaptığımda sonuç alıyorum,

İsteğim, anılan sütunlardaki isimler Türkçe ve büyük harf olduğundan, kodun bu özelliklere göre işlem yapmasıdır,

Kod'da nasıl bir düzenleme yapılması gerekir ( kodlar alıntıdır ) ?

Teşekkür ederim.

Kod:
Option Explicit
Sub Veri_Al()
Dim ts, kaplan, trabzonspor
trabzonspor = MsgBox(Sheets("Süz").Range("J1") & " Takımının" _
& " Maçlarını Buraya Aktarıyorum", vbYesNo, "Onay")
If trabzonspor = vbNo Then Exit Sub
Application.ScreenUpdating = False
Sheets("Süz").Range("F18:M55").ClearContents
kaplan = 18
For ts = 2 To Sheets("GENEL").Cells(65536, "B").End(xlUp).Row
If Sheets("GENEL").Cells(ts, "C") = WorksheetFunction.Proper(Sheets("Süz").Range("J1")) _
Or Sheets("GENEL").Cells(ts, "F") = WorksheetFunction.Proper(Sheets("Süz").Range("J1")) Then
Sheets("Süz").Cells(kaplan, "G") = Sheets("GENEL").Cells(ts, "B")
Sheets("Süz").Cells(kaplan, "H") = Sheets("GENEL").Cells(ts, "C")
Sheets("Süz").Cells(kaplan, "I") = Sheets("GENEL").Cells(ts, "D")
Sheets("Süz").Cells(kaplan, "J") = Sheets("GENEL").Cells(ts, "F")
Sheets("Süz").Cells(kaplan, "K") = Sheets("GENEL").Cells(ts, "E")
If Sheets("Süz").Cells(kaplan, "I") = "" And Sheets("Süz").Cells(kaplan, "K") = "" Then
Sheets("Süz").Cells(kaplan, "L") = ""
ElseIf Sheets("Süz").Cells(kaplan, "I") = Sheets("Süz").Cells(kaplan, "K") Then
Sheets("Süz").Cells(kaplan, "L") = "B"
ElseIf Sheets("Süz").Cells(kaplan, "H") = WorksheetFunction.Proper(Sheets("Süz").Range("J1")) Then
If Sheets("Süz").Cells(kaplan, "I") > Sheets("Süz").Cells(kaplan, "K") Then
Sheets("Süz").Cells(kaplan, "L") = "G"
Else
Sheets("Süz").Cells(kaplan, "L") = "M"
End If
ElseIf Sheets("Süz").Cells(kaplan, "J") = WorksheetFunction.Proper(Sheets("Süz").Range("J1")) Then
If Sheets("Süz").Cells(kaplan, "K") > Sheets("Süz").Cells(kaplan, "I") Then
Sheets("Süz").Cells(kaplan, "L") = "G"
Else
Sheets("Süz").Cells(kaplan, "L") = "M"
End If
End If
If Sheets("Süz").Cells(kaplan, "L") = "G" Then
Sheets("Süz").Cells(kaplan, "M") = 3
ElseIf Sheets("Süz").Cells(kaplan, "L") = "B" Then
Sheets("Süz").Cells(kaplan, "M") = 1
ElseIf Sheets("Süz").Cells(kaplan, "L") = "M" Then
Sheets("Süz").Cells(kaplan, "M") = 0
End If
kaplan = kaplan + 1
Sheets("Süz").Range("F18") = 1
Sheets("Süz").Cells(kaplan, "F") = WorksheetFunction.Max(Range("F18:F" & kaplan - 1)) + 1
End If
Next
Application.ScreenUpdating = True
MsgBox Sheets("Süz").Range("J1") & " Takımının Maçlarını Buraya Aktardım", _
vbInformation, "Bitiş"
End Sub
 
Şöyle bir yol göstersem yapabileceğinizi düşünüyorum.
C++:
Hücre = UCase(Replace(Replace(Hücre, "i", "İ"), "ı", "I"))
 
Sayın ÖmerFaruk merhaba,

İlginiz ve öneriniz için teşekkür ederim, bu kodlar 2011 yılında bir üyemiz tarafından yazıldı, kodlara benim bir katkım olmadı,

Öneriniz doğrultusunda kendimce yaptığım denemeler sonuçsuz kaldı,

Zamanınız var ise çözümü sizden rica ediyorum,

Deneme için örnek bir dosya ekledim,

Teşekkür ederim.
 

Ekli dosyalar

Sheets("GENEL").Cells(ts, "C") = WorksheetFunction.Proper(Sheets("Süz").Range("J1"))
Hücre = UCase(Replace(Replace(Hücre, "i", "İ"), "ı", "I"))
Üstteki satırı alttakindeki mantıkla yeniden yazacaksınız.

Sheets("GENEL").Cells(ts, "C") =UCase(Replace(Replace(Sheets("Süz").Range("J1"), "i", "İ"), "ı", "I"))

Diğer ya da ihtiyaç duyduğunuz satırlarda da benzer işlemi yapmalısınız.
 
Sayın ÖmerFaruk tekrar merhaba,

Önerileriniz ve örnek kodla ilgili kendimce gerekenleri yaptım, ancak sanırım eksik bir şeyler yapıyorum,

Olabiliyor ise çözüm kodunu dosyaya uygular mısınız ?

Böylece eksiğimi ve/veya hatamı gözlemleye bilirim,

Tekrar teşekkür ederim.

Kod:
Option Explicit
Sub Veri_Al()
Dim ts, kaplan, trabzonspor
trabzonspor = MsgBox(Sheets("Süz").Range("J1") & " Takımının" _
& " Maçlarını Buraya Aktarıyorum", vbYesNo, "Onay")
If trabzonspor = vbNo Then Exit Sub
Application.ScreenUpdating = False
Sheets("Süz").Range("F18:M55").ClearContents
kaplan = 18
For ts = 2 To Sheets("GENEL").Cells(65536, "B").End(xlUp).Row

'If Sheets("GENEL").Cells(ts, "C") = WorksheetFunction.Proper(Sheets("Süz").Range("J1")) _
'Or Sheets("GENEL").Cells(ts, "F") = WorksheetFunction.Proper(Sheets("Süz").Range("J1")) Then

  Sheets("GENEL").Cells(ts, "C") = UCase(Replace(Replace(Sheets("Süz").Range("J1"), "i", "İ"), "ı", "I"))
  Sheets("GENEL").Cells(ts, "F") = UCase(Replace(Replace(Sheets("Süz").Range("J1"), "i", "İ"), "ı", "I"))

Sheets("Süz").Cells(kaplan, "G") = Sheets("GENEL").Cells(ts, "B") 'tarih
Sheets("Süz").Cells(kaplan, "H") = Sheets("GENEL").Cells(ts, "C") '1.takım
Sheets("Süz").Cells(kaplan, "I") = Sheets("GENEL").Cells(ts, "D") '1'skor
Sheets("Süz").Cells(kaplan, "J") = Sheets("GENEL").Cells(ts, "F") '2.takım
Sheets("Süz").Cells(kaplan, "K") = Sheets("GENEL").Cells(ts, "E") '2.skor
If Sheets("Süz").Cells(kaplan, "I") = "" And Sheets("Süz").Cells(kaplan, "K") = "" Then
Sheets("Süz").Cells(kaplan, "L") = ""
ElseIf Sheets("Süz").Cells(kaplan, "I") = Sheets("Süz").Cells(kaplan, "K") Then
Sheets("Süz").Cells(kaplan, "L") = "B"

'ElseIf Sheets("Süz").Cells(kaplan, "H") = WorksheetFunction.Proper(Sheets("Süz").Range("J1")) Then
ElseIf Sheets("Süz").Cells(kaplan, "H") = UCase(Replace(Replace(Sheets("Süz").Range("J1"), "i", "İ"), "ı", "I")) Then

If Sheets("Süz").Cells(kaplan, "I") > Sheets("Süz").Cells(kaplan, "K") Then
Sheets("Süz").Cells(kaplan, "L") = "G"
Else
Sheets("Süz").Cells(kaplan, "L") = "M"
End If

'ElseIf Sheets("Süz").Cells(kaplan, "J") = WorksheetFunction.Proper(Sheets("Süz").Range("J1")) Then
ElseIf Sheets("Süz").Cells(kaplan, "J") = UCase(Replace(Replace(Sheets("Süz").Range("J1"), "i", "İ"), "ı", "I")) Then

If Sheets("Süz").Cells(kaplan, "K") > Sheets("Süz").Cells(kaplan, "I") Then
Sheets("Süz").Cells(kaplan, "L") = "G"
Else
Sheets("Süz").Cells(kaplan, "L") = "M"
End If
End If
If Sheets("Süz").Cells(kaplan, "L") = "G" Then
Sheets("Süz").Cells(kaplan, "M") = 3
ElseIf Sheets("Süz").Cells(kaplan, "L") = "B" Then
Sheets("Süz").Cells(kaplan, "M") = 1
ElseIf Sheets("Süz").Cells(kaplan, "L") = "M" Then
Sheets("Süz").Cells(kaplan, "M") = 0
End If
kaplan = kaplan + 1
Sheets("Süz").Range("F18") = 1
Sheets("Süz").Cells(kaplan, "F") = WorksheetFunction.Max(Range("F18:F" & kaplan - 1)) + 1
'End If
Next
Application.ScreenUpdating = True
MsgBox Sheets("Süz").Range("J1") & " Takımının Maçlarını Aktardım", _
vbInformation, "Bitiş"
End Sub
 
Merhaba,
Alternatif olarak
"WorksheetFunction.Proper" kullanılan her eşitliğin sol tarafında da "WorksheetFunction.Proper" kullanabilirsiniz. Mesela:
If Sheets("GENEL").Cells(ts, "C") = WorksheetFunction.Proper(Sheets("Süz").Range("J1")) yerine:
If WorksheetFunction.Proper(Sheets("GENEL").Cells(ts, "C")) = WorksheetFunction.Proper(Sheets("Süz").Range("J1"))
şeklinde.
 
Bence bunu siz kendiniz yapacaksınız. Sırf yılmayın, hatanızı görün diye. İnanın forumdaki bazı kullanıcıların potansiyelleri fark edememelerindeki tek sebep cesaretsizlik, denemekten kaçınmak ya da korkaklık.

Ben inanın sabahtan akşama kadar Scripting.Dictionary çalıştığım günleri hatırlıyorum. Halen de yapamadığım bir sürü işlem oluyor ve saatlerce takılıp kalıyorum. Ama asla yılmıyorum.

Kodlarınızı başına baktım ve gördüğüm ilk aksaklık;
ilk iki satırda IF-THEN sorgusu varken siz revize ettğiniz sayfada IF sorgusunu da komple kaldırmışsınız.

'If Sheets("GENEL").Cells(ts, "C") = WorksheetFunction.Proper(Sheets("Süz").Range("J1")) _
'Or Sheets("GENEL").Cells(ts, "F") = WorksheetFunction.Proper(Sheets("Süz").Range("J1")) Then

Sheets("GENEL").Cells(ts, "C") = UCase(Replace(Replace(Sheets("Süz").Range("J1"), "i", "İ"), "ı", "I"))
Sheets("GENEL").Cells(ts, "F") = UCase(Replace(Replace(Sheets("Süz").Range("J1"), "i", "İ"), "ı", "I"))
 
Sayın ÖmerFaruk merhaba,

Cesaretlendirici ve güzel sözleriniz ve de ilginiz için çok teşekkür ederim,

Çeşitli konularda çözüm ararken (çoğu zaman dosya örnek dosya eklerim) hemen her seferinde, başta sitemiz olmak üzere nette vb. araştırma yapıyorum, benzer çözümler var ise dosyama adapte etmeye çalışıyorum, defalarca farklı denemeler yapıyorum,

Sonuç alamazsam da öncelikle sitemize baş vuruyorum, bu çözüm arayışım da böyle oluştu,

Dosyama gelince,

Önerdiğiniz kodu, IF-THEN sorgularını kaldırmadan da denedim, satır komple kırmızı oluyor ve o satırdaki ( _ ) alt tire için "Geçersiz Karakter" uyarısı ve Syntax Error hatası almaktayım,

Ek'li dosya'da görülebilir,

Teşekkür ederim.
 

Ekli dosyalar

Son düzenleme:
Herhangi bir kod satırını birden fazla satırda yazmak istiyorsanız

ikinci satıra geçeceğiniz yerde evet _ (alt çizgi) koyuyoruz.
Ancak alt çizgiden hemen önce muhakkak bir boşluk olması gerekiyor

C++:
If a=b Or c=d Then

'tireden önce boşluk olmazsa'
If a=b_
Or c=d Then

'bunun anlamı te satırda aşağıdaki gibi olur
If a=bOr c=d Then'
    
'Doğrusu
If a=b _
Or c=d Then
 
Sayın ÖmerFaruk tekrar merhaba,

Yardımlarınız, sabrınız ve öğreticiliğiniz için çok teşekkür ederim,

Yardımlarınız sayesinde sorun çözülmüştür,

Sevgi ve saygılarımla.
 
Geri
Üst