Soru DEĞİŞTİRME

Katılım
27 Mart 2022
Mesajlar
21
Excel Vers. ve Dili
Microsoft Office 2019 Professional Plus-Türkçe
MERHABA;
AŞAĞIDAKİ ÖRNEK TABLODA YER ALAN MAYIS VE HAZİRAN AYLARINDAKİ İSİMLERİ SIRA NO DA YER ALAN İSİMLE TOPLU BİR ŞEKİLDE EN KOLAY NASIL DEĞİŞTİREBİLİRİM.

SIRA NO

MAYIS

HAZİRAN

1-AHMET

ELA

VELİ

2-MEHMET

AHMET

EMEL

3-VELİ

EMEL

ELA

4-EMEL

VELİ

MEHMET

5-ELA

MEHMET

AHMET

 
Son düzenleme:

Ali

Özel Üye
Katılım
21 Temmuz 2005
Mesajlar
7,979
Excel Vers. ve Dili
Office 365 Türkçe
Insert-Module ile bir modüle ekle ve aşağıdaki kodlar çalıştırıp kontrol ediniz.

Kod:
Sub IsimleriSirayaGoreDegistir()
    Dim ws As Worksheet
    Set ws = ActiveSheet
    
    Dim i As Long
    Dim sonSatir As Long
    
    ' Son satırı bul (SIRA NO sütununda veri olan son satır)
    sonSatir = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
    
    ' 2. satırdan son satıra kadar döngü
    For i = 2 To sonSatir
        ' Mayıs ve Haziran sütunlarını SIRA NO sütunundaki isimle değiştir
        ws.Cells(i, 2).Value = ws.Cells(i, 1).Value ' Mayıs (B sütunu)
        ws.Cells(i, 3).Value = ws.Cells(i, 1).Value ' Haziran (C sütunu)
    Next i
End Sub
 

hasankardas

Altın Üye
Katılım
14 Ağustos 2006
Mesajlar
474
Excel Vers. ve Dili
Ofis 2021ProPlus TR 64 Bit
Altın Üyelik Bitiş Tarihi
18-01-2027
Ctrl+H işlemi işinizi görür..
 
Katılım
27 Mart 2022
Mesajlar
21
Excel Vers. ve Dili
Microsoft Office 2019 Professional Plus-Türkçe
Insert-Module ile bir modüle ekle ve aşağıdaki kodlar çalıştırıp kontrol ediniz.

Kod:
Sub IsimleriSirayaGoreDegistir()
    Dim ws As Worksheet
    Set ws = ActiveSheet
   
    Dim i As Long
    Dim sonSatir As Long
   
    ' Son satırı bul (SIRA NO sütununda veri olan son satır)
    sonSatir = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
   
    ' 2. satırdan son satıra kadar döngü
    For i = 2 To sonSatir
        ' Mayıs ve Haziran sütunlarını SIRA NO sütunundaki isimle değiştir
        ws.Cells(i, 2).Value = ws.Cells(i, 1).Value ' Mayıs (B sütunu)
        ws.Cells(i, 3).Value = ws.Cells(i, 1).Value ' Haziran (C sütunu)
    Next i
End Sub
yardımlarınız için teşekkür ederim.........
 
Katılım
27 Mart 2022
Mesajlar
21
Excel Vers. ve Dili
Microsoft Office 2019 Professional Plus-Türkçe
Insert-Module ile bir modüle ekle ve aşağıdaki kodlar çalıştırıp kontrol ediniz.

Kod:
Sub IsimleriSirayaGoreDegistir()
    Dim ws As Worksheet
    Set ws = ActiveSheet
   
    Dim i As Long
    Dim sonSatir As Long
   
    ' Son satırı bul (SIRA NO sütununda veri olan son satır)
    sonSatir = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
   
    ' 2. satırdan son satıra kadar döngü
    For i = 2 To sonSatir
        ' Mayıs ve Haziran sütunlarını SIRA NO sütunundaki isimle değiştir
        ws.Cells(i, 2).Value = ws.Cells(i, 1).Value ' Mayıs (B sütunu)
        ws.Cells(i, 3).Value = ws.Cells(i, 1).Value ' Haziran (C sütunu)
    Next i
End Sub
kodlar çalıştı isimler değişti ama sıralaması yanlış oluyor.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,491
Excel Vers. ve Dili
2019 Türkçe
Merhaba.
Alternatif

Aşağıdaki kodu bir modüle kopyalayıp çalıştırın.
Kod:
Sub Test()
    With Range("B2:C" & Cells(Rows.Count, "A").End(xlUp).Row)
        .Formula = "=A2"
        .Value = .Value
    End With
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,200
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Ben sorunuzu bu şekilde anladım...

C++:
Option Explicit

Sub Replace_Name()
    Dim Rng As Range
    
    On Error Resume Next
    
    For Each Rng In Range("B2:C" & Cells(Rows.Count, 1).End(3).Row)
        If Rng <> "" Then
            Rng = Evaluate("=IFERROR(INDEX(A:A,MATCH(""*-" & Rng & "*"",A:A,0)),"""")")
            If Err Then
                Rng = ""
                Err.Clear
            End If
        End If
    Next

    MsgBox "Verileriniz düzenlenmiştir."
End Sub
 
Katılım
27 Mart 2022
Mesajlar
21
Excel Vers. ve Dili
Microsoft Office 2019 Professional Plus-Türkçe
Ben sorunuzu bu şekilde anladım...

C++:
Option Explicit

Sub Replace_Name()
    Dim Rng As Range
   
    On Error Resume Next
   
    For Each Rng In Range("B2:C" & Cells(Rows.Count, 1).End(3).Row)
        If Rng <> "" Then
            Rng = Evaluate("=IFERROR(INDEX(A:A,MATCH(""*-" & Rng & "*"",A:A,0)),"""")")
            If Err Then
                Rng = ""
                Err.Clear
            End If
        End If
    Next

    MsgBox "Verileriniz düzenlenmiştir."
End Sub
kod çalıştı yardımlarınız için teşekkür ederim.........
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,561
Excel Vers. ve Dili
Ofis 365 Türkçe
Alternatif olsun,
Korhan bey'in mantığı ile sadece vba kodları kullanılarak yapılmış hali:
Kod:
Sub Duzelt()

Dim i   As Long
Dim c   As Range
Dim adr As String
Dim rng As Range

Application.ScreenUpdating = False

i = Cells(Rows.Count, "A").End(3).Row

For Each rng In Range("B2:C" & i)
    
    With Range("A:A")
        Set c = .Find(rng, LookIn:=xlValues)
        If Not c Is Nothing Then
            adr = c.Address
            Do
                rng = c
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> adr
        End If
    End With
    
Next rng
Application.ScreenUpdating = True

End Sub
 
Üst