"merge" a,b,c Sütunundaki satırları boş olan hücreyi dolu olan hücre ile birleştirme

Katılım
18 Şubat 2013
Mesajlar
51
Excel Vers. ve Dili
excel 2019 türkçe dil
Altın Üyelik Bitiş Tarihi
07-03-2024
Merhaba,
benim sorunum, "A" sütunundan son dolu sütununa kadar 1.000 satırlık verim mevcut. ilk dolu satırın bir altından itibaren son dolu satıra kadar araya bir boş satır eklesin sonrada A,B ve C sütunundaki ilk boş hücreyi ilk dolu hücre ile birleştirsin. sonra ayın birinden itibaren son gününe kadar olan bölümde rakam harici herhangi bir harf varsa silsin ve rakam kalan hücrelerin bir üstüne X yazsın.
birleştirme işlemi hariç diğer işlemleri parça parça yapıyorum ama hepsini bir butonda birleştiremedim.
Örnek dosya ektedir. yardımcı olursanız sevinirim. (renklendirdiğim yer gibi makroda yapmaya çalışıyorum)
 

Ekli dosyalar

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,605
Excel Vers. ve Dili
2019 Türkçe
Merhaba.
Deneyiniz.
Kod:
Sub Test()
    Dim Bak As Long
    Dim BakGun As Integer

    Application.ScreenUpdating = False
    For Bak = Cells(Rows.Count, "A").End(xlUp).Row To 6 Step -1
        Rows(Bak + 1).Insert
        Range("A" & Bak & ":A" & Bak + 1).Merge
        Range("B" & Bak & ":B" & Bak + 1).Merge
        Range("C" & Bak & ":C" & Bak + 1).Merge
   
        For BakGun = 4 To 35
            If IsNumeric(Cells(5, BakGun)) Then
                If IsNumeric(Cells(Bak, BakGun)) And Not IsEmpty(Cells(Bak, BakGun)) Then
                    Cells(Bak + 1, BakGun) = Cells(Bak, BakGun)
                    Cells(Bak, BakGun) = "x"
                ElseIf Not IsEmpty(Cells(Bak, BakGun)) Then
                    Cells(Bak, BakGun) = ""
                End If
            End If
        Next
    Next
    Application.ScreenUpdating = True
End Sub
 
Katılım
18 Şubat 2013
Mesajlar
51
Excel Vers. ve Dili
excel 2019 türkçe dil
Altın Üyelik Bitiş Tarihi
07-03-2024
Hocam tam talep ettiğim gibi harika olmuş.
Üstüne ekleyecek olursak bu işlemi, ayın birinden itibaren son gününe kadar olan bölümde rakam harici herhangi bir harf varsa veya boşsa ve GÇ balıklı sütunda karşısına gelen hücrede boşsa satırı komple sildikten sonra bu işlemler yapılma imkanı var mı.
özetlemek gerekirse Tarık'ın ay içinde mesaisi yoksa karşına denk gelen GÇ başlıklı hücrede boşsa o satır komple silinsin gibisinden.

veya daha kolay olacaksa farklı bir sayfaya ham veriden sadece özetlediğim durum ve istediğimiz başlıklardaki veriler Listboxta eklediğim örnek dosyadaki E ve D sütunundaki seçilen tekli veya çoklu kriterler göre yukarıdaki işlemi uygulaya bilir miyiz,

Örnekleyecek olursak listboxtan Birim 1 in alt kırılımı (görevi) sadece Şoför veya seçim yaptığım diğer kriterlere veya 1 ve 2 seçtiğim zaman onların alt kırılımında seçili kritrlere göre gelmesi gibi
Biraz uzun oldu ama İnşallah anlatmışımdır.
olmama gibi durum varsa sadece "Hocam tam talep ettiğim gibi harika olmuş.
Üstüne ekleyecek olursak bu işlemi, ayın birinden itibaren son gününe kadar olan bölümde rakam harici herhangi bir harf varsa veya boşsa ve GÇ balıklı sütunda karşısına gelen hücrede boşsa satırı komple sildikten sonra bu işlemler yapılma imkanı var mı.
özetlemek gerekirse Tarık'ın ay içinde mesaisi yoksa karşına denk gelen GÇ başlıklı hücrede boşsa o satır komple silinsin gibisinden." bu bile olsa işim baya kolaylaşıyor.
 

Ekli dosyalar

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,605
Excel Vers. ve Dili
2019 Türkçe
Yeni kodlar.
Kod:
Sub Test()
    Dim Bak As Long
    Dim BakGun As Integer
    Dim RakamVar As Boolean
    
    Application.ScreenUpdating = False
    For Bak = Cells(Rows.Count, "A").End(xlUp).Row To 6 Step -1
        For BakGun = 4 To 35
            If IsNumeric(Cells(Bak, "AO").Text) Then
                RakamVar = True
                Exit For
            Else
                If IsNumeric(Cells(5, BakGun).Text) And IsNumeric(Cells(Bak, BakGun).Text) Then
                    RakamVar = True
                    Exit For
                End If
            End If
        Next
        If RakamVar = False Then
            Rows(Bak).Delete
        End If
        RakamVar = False
    Next

    For Bak = Cells(Rows.Count, "A").End(xlUp).Row To 6 Step -1
        Rows(Bak + 1).Insert
        Range("A" & Bak & ":A" & Bak + 1).Merge
        Range("B" & Bak & ":B" & Bak + 1).Merge
        Range("C" & Bak & ":C" & Bak + 1).Merge
  
        For BakGun = 4 To 35
            If IsNumeric(Cells(5, BakGun).Text) Then
                If IsNumeric(Cells(Bak, BakGun).Text) And Not IsEmpty(Cells(Bak, BakGun).Text) Then
                    Cells(Bak + 1, BakGun) = Cells(Bak, BakGun)
                    Cells(Bak, BakGun) = "x"
                ElseIf Not IsEmpty(Cells(Bak, BakGun)) Then
                    Cells(Bak, BakGun) = ""
                End If
            End If
        Next
    Next
    Application.ScreenUpdating = True
End Sub
 
Katılım
18 Şubat 2013
Mesajlar
51
Excel Vers. ve Dili
excel 2019 türkçe dil
Altın Üyelik Bitiş Tarihi
07-03-2024
Yeni kodlar.
Kod:
Sub Test()
    Dim Bak As Long
    Dim BakGun As Integer
    Dim RakamVar As Boolean
   
    Application.ScreenUpdating = False
    For Bak = Cells(Rows.Count, "A").End(xlUp).Row To 6 Step -1
        For BakGun = 4 To 35
            If IsNumeric(Cells(Bak, "AO").Text) Then
                RakamVar = True
                Exit For
            Else
                If IsNumeric(Cells(5, BakGun).Text) And IsNumeric(Cells(Bak, BakGun).Text) Then
                    RakamVar = True
                    Exit For
                End If
            End If
        Next
        If RakamVar = False Then
            Rows(Bak).Delete
        End If
        RakamVar = False
    Next

    For Bak = Cells(Rows.Count, "A").End(xlUp).Row To 6 Step -1
        Rows(Bak + 1).Insert
        Range("A" & Bak & ":A" & Bak + 1).Merge
        Range("B" & Bak & ":B" & Bak + 1).Merge
        Range("C" & Bak & ":C" & Bak + 1).Merge
 
        For BakGun = 4 To 35
            If IsNumeric(Cells(5, BakGun).Text) Then
                If IsNumeric(Cells(Bak, BakGun).Text) And Not IsEmpty(Cells(Bak, BakGun).Text) Then
                    Cells(Bak + 1, BakGun) = Cells(Bak, BakGun)
                    Cells(Bak, BakGun) = "x"
                ElseIf Not IsEmpty(Cells(Bak, BakGun)) Then
                    Cells(Bak, BakGun) = ""
                End If
            End If
        Next
    Next
    Application.ScreenUpdating = True
End Sub
Teşekkür ederim elinize sağlık
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,605
Excel Vers. ve Dili
2019 Türkçe
Rica ederim. Kolay gelsin.
 
Üst