• DİKKAT

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

Metin Birleştirme Sorunu

Katılım
30 Ekim 2010
Mesajlar
108
Excel Vers. ve Dili
2007 Türkçe
Kod:
Private Sub CommandButton1_Click()

ab = "excel"
bc = "2016"
Range("a3").Formula = "= " & ab & " & ""_"" & " & bc & " "

End Sub

Formül sayıları birleştiriyor ama metinlerde hata veriyor. Sorun nedir anlayamadım.
 
Hata vermesinin sebebi, ='i formül olarak görüyor ve yazılanı bulamıyor. ='i neden koyduğunuzu ve ne yapmak istediğinizi daha ayrıntılı anlatırsanız yardımcı olmaya çalışayım.
 
Aşağıdaki gibi deneyin:

Kod:
Private Sub CommandButton1_Click()
Dim ab: Dim bc
ab = "excel"
bc = "2016"
Range("a3").Formula = "= " & ab & " & ""_"" & " & bc & " "

End Sub
 
Aşağıdaki gibi deneyin:

Kod:
Private Sub CommandButton1_Click()
Dim ab: Dim bc
ab = "excel"
bc = "2016"
Range("a3").Formula = "= " & ab & " & ""_"" & " & bc & " "

End Sub

Ben denedim bu kodu vb. bir kaç tanesini yine de hata veriyor Yusuf Bey.
Acaba Dim ab: Dim bc kodunu biraz açıklayabilir misiniz? Bende öğrenmiş olurum.
 
Aslında ben de bilmiyorum desem yanlış olmaz. Anladığım kadarıyla ab ve bc'nin ne tür bir veri olduğu belirtilmediği için hata veriyordu. VEri türünün de Dim ile tanımlandığını hatırlıyorum. Bilerek değil, tahminen yaptım. Tecrübeli arkadaşlar bana da öğretirlerse memnun olurum. iki nokta üst üste ise aynı satırda birden fazla tanımlama/işlem yapabilmek için kullanılıyor.
 
Kod:
srn = 1001
For i = 1 To Range("H65536").End(3).Row
If Range("A" & i).Value <> "#" Then
Else
Range("B" & i).Value = srn & " | " & Range("B" & i).Value
srn = srn + 1
End If
Next

Son = Cells(Rows.Count, "A").End(3).Row
For i = 3 To Son
    b = 1001
    If Cells(i, "A") = "#" Then
        a = Left(Cells(i, "B"), 4) * 1
        For j = i + 1 To Son
            If Cells(j, "A") <> "#" Then
            PT1 = Replace(Replace(Replace(Replace(Replace(Replace(Replace(Cells(j, "M"), "HAMMADDE", "H"), "YARIMAMUL", "Y"), "MAMUL", "M"), "ISCILIK", "I"), "NAKLIYE", "N"), "MONTAJ", "M"), "DIGER", "D")
            PT2 = Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Cells(j, "N"), "AHSAP", "A"), "AMBALAJ", "B"), "CAM", "C"), "DERI", "D"), "METAL", "M"), "KIMYASAL", "K"), "PLASTIK", "P"), "ISCILIK", "I"), "DIGER", "O")
                [COLOR="Red"]Cells(j, "A") [/COLOR]= PT2 & "." & PT1 & "." & a & "." & b
                b = b + 1
            Else
                i = j - 1
                j = Son
            End If
        Next
    End If
Next

Yusuf hocam ;
Kod:
Private Sub CommandButton1_Click()
Dim ab: Dim bc
ab = "excel"
bc = "2016"
Range("a3").Formula = "= " & ab & " & ""_"" & " & bc & " "

End Sub

bu şekilde de yapmadı. Amacım geçen yazdığınız kodda
Kod:
Cells(j, "A") = PT2 & "." & PT1 & "." & a & "." & b
hücrelere formül olarak gelmesi
 
Kendi adıma hâlâ ne istediğinizi anlamadım? Daha ayrıntılı açıklayabilir ya da örnek bir excel koyabilirseniz yardımcı olmaya çalışayım.
 
Kısacası "BİRLEŞTİR" Formülünü Makro olarak yazmak. Gerisini yukarıdaki Kod'a uygulayacağım.
 
"=" bunu kaldırdığınız da makronuz sorunsuz çalışıyor. "="'i neden koyuyorsunuz onu anlamadım?
 
Bu şekilde Hücreye Değer olarak geçiyor. Ben Makroyu bir defa çalıştırıp Hücreye Formül olarak geçmesini istiyorum. PT1 ve PT2 'yi her değiştirdiğimde makro çalıştırmak istemiyorum.
 
Yani siz Pt1 ve Pt2 değiştiğinde makro çalışsın ve o değer hücreye yazılsın istiyorsunuz. O zaman şöyle bir şey önerebilirim.

PT1 ve PT2 değerini bağımsız bir hücreye yazdırın.
Örn:
Kod:
=Sayfa1!A1=PT1

Sonra ab ve bc'yi yazdıracağınız safaya bunu yazın.

Kod:
Private Sub WorkSheet_Change(ByVal Target As Range)
If PT1=Sayfa1.Range("A1").Value  Then Goto Atla
ab = "excel"
bc = "2016"
Range("a3").Formula = ab & " & ""_"" & " & bc & " "
atla:
Range("A1").Select
End Sub

Ya da bu mantıkla PT1'in olduğu sayfaya aşağıdaki kodları ekleyin.

Kod:
Private Sub WorkSheet_Change(ByVal Target As Range)
ab = "excel"
bc = "2016"
[B]SAYFA1.[/B]Range("a3").Formula = ab & " & ""_"" & " & bc & " "

End Sub
 
Hücre birleştirme ve Is_Emri_Kayıt sayfasına birleştirilmiş hücreyi kaydetme

s2.Range("B" & Son_Satır) = s1.Range("I9").Value şeklinde bir satır kodum var. Bu kod içerisine "I9","L9" ve"M9" hücrelerindeki değeri birleştirerek Is_Emri_Kayıt sayfasına kaydetmek istiyorum. Yardımcı olabilir misiniz? Teşekkür ederim.
 
Geri
Üst