• DİKKAT

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

Birleştir ve Ortala

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,042
Excel Vers. ve Dili
2013 Türkçe
Arkadaşlar merhaba.
Makro ile hücreleri nasıl birleştirip, nasıl çözebiliriz.
 
Merhaba A1 ve B1 birleştirmek için
Kod:
Range("A1:B1").Select
Selection.Merge

Çözmek için
Kod:
Range("A1:B1").Select
Selection.unMerge
 
Sn accountant80 cevabınız için çok teşekkür ederim.
 
Bu tarz kodlara ulaşmak için en kolay yöntem makro kaydet yöntemidir.

Örnek olarak A1:C5 hücrelerini birleştir ve ortala yapmak için aşağıdaki kodu kullanabilirsiniz.

Kod:
Sub Makro()
    With Range("A1:C5")
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
        .Merge
    End With
End Sub
 
merhaba,
Benim de merge konusunda bir yardıma ihtiyacım var.

Bir müşteri sipariş dosyası var.

örneğin A sütunundaki müşteri kodu değiştiğinde o müşteriye ait satırları B sütununda merge ile birleştirmek istiyorum. (B sütunu veri içermiyor,Sevk aşamasında buraya o müşteriye ait kutu sayısını manuel olarak yazıyoruz)

yöntemi var mıdır?
Yardımcı olursanız sevinirim.

Teşekkürler,
 
Tekrar merhaba,
Forumda istediğim gibi bir formül buldum ve çalıştırdım oluyor.
Fakat çalıştıktan sonra mergeli bölümleri en alta yanaşık yazıyor.
Ortalama komutunu ise bir türlü yerleştiremedim.
Bu kod yapısında merge yaptıkatn sonra dikeydeki ortalamayı nasıl yapabiliriz?
(yatayda kendisi otomatik yapıyor)

Kod:
Sub Merge() 'müşteri no'ya göre seçilen sütunlardaki hücreleri birleştirir.
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    For i = 4 To Range("A4").End(4).Row
        If Cells(i, 1) <> Cells(i + 1, 1) Then
            Range(Cells(basla + 1, 1), Cells(basla + say + 1, 1)).Merge
            Range(Cells(basla + 1, 9), Cells(basla + say + 1, 9)).Merge
            Range(Cells(basla + 1, 10), Cells(basla + say + 1, 10)).Merge
            basla = i
            say = Empty
                Else
            say = say + 1
        End If
    Next i
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub
 
Aşağıdaki kodu deneyin.

Kod:
Sub Birlestir()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    For i = 4 To Range("A4").End(4).Row
        If Cells(i, 1) <> Cells(i + 1, 1) Then
            Range(Cells(basla + 1, 1), Cells(basla + say + 1, 1)).Merge
            Range(Cells(basla + 1, 1), Cells(basla + say + 1, 1)).HorizontalAlignment = xlCenter
            Range(Cells(basla + 1, 1), Cells(basla + say + 1, 1)).VerticalAlignment = xlCenter
            Range(Cells(basla + 1, 9), Cells(basla + say + 1, 9)).Merge
            Range(Cells(basla + 1, 9), Cells(basla + say + 1, 9)).HorizontalAlignment = xlCenter
            Range(Cells(basla + 1, 9), Cells(basla + say + 1, 9)).VerticalAlignment = xlCenter
            Range(Cells(basla + 1, 10), Cells(basla + say + 1, 10)).Merge
            Range(Cells(basla + 1, 10), Cells(basla + say + 1, 10)).HorizontalAlignment = xlCenter
            Range(Cells(basla + 1, 10), Cells(basla + say + 1, 10)).VerticalAlignment = xlCenter
            basla = i
            say = Empty
        Else
            say = say + 1
        End If
    Next i
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub
 
Korhan bey çok teşekkürler,bu şekilde çalıştı.

Fakat dosyayı seri kullandığımızda bir sorunla daha karşılaştık çözemedim.

Şöyle ki;
raporu her çalıştırdığımızda ilk 3 satırda sabit başlıklar var.
4.satır ve aşağısı değişken oluyor.
Makro ile A4 hücresinden itibaren A sütunundaki müşteri kodu her değiştiğinde A , I ve J sütunlarını merge ile birleştir diyoruz.
Fakat ilk müşterinin 1 den fazla satır kalemi varsa karıştırıp başlık kısımlarını da birleştirmeye çalışıyor.

Bu anlattıklarıma göre (tabi yeterli ise:)) kodda hatayı nerede yapıyor olabilirim?
 
Geri
Üst