Aktarılan veriyi sırayla devam ettirme

Erdinç FIRTINA

Altın Üye
Katılım
14 Şubat 2007
Mesajlar
400
Excel Vers. ve Dili
excel 2003 türkçe
Altın Üyelik Bitiş Tarihi
15-05-2026
Değerli forum üyeleri;
Sayın Korhan AYHAN’ın esirgemediği yardımlarıyla hazırlanan kodları kendi dosyama uyarlamaya çalıştım.
Sayın Korhan AYHAN’ın talebim doğrultusunda hazırlamış olduğu kodlar aşağıdaki gibidir. Benim dosyama uyarladığım kodlar ise bir alttaki gibidir.
Kodlarda TextBox1 de aranan ve aktarılan veriler için belirlenen bir kriter var. Bu kritere göre verileri sütuna ve ikinci satıra aktarıyor. Yapmak istediğim ise, biraz daha farklıdır.
Hazırlanan dosyadaki TextBox1 de yer alan kriter, ComboBox yardımıyla arama yapılarak alınan ve TextBox1 e aktarılan kriterdir. Yapmak istediğim, aktarılan verinin, ComboBox yardımıyla alınarak TextBox1 de “aranan” durumunda bulunan kriterin bulunduğu satıra aktarılarak yazılmasıdır.

Yardımlarınız için şimdiden çok teşekkürler!!!

Dosyam ektedir.


If ComboBox51.Value = "" Then
MsgBox "LÜTFEN! ÖNCELİKLE YILIN AYINI SEÇİNİZ, LİSTEDEKİ İSME DAHA SONRA TIKLAYINIZ"
Exit Sub
End If
If ComboBox51.Value = "OCAK" Then
Sheets("OCAK").Select
ActiveSheet.Unprotect "123"
ElseIf ComboBox51.Value = "ŞUBAT" Then
Sheets("ŞUBAT").Select
ActiveSheet.Unprotect "123"
ElseIf ComboBox51.Value = "MART" Then
Sheets("MART").Select
ActiveSheet.Unprotect "123"
ElseIf ComboBox51.Value = "NİSAN" Then
Sheets("NİSAN").Select
ActiveSheet.Unprotect "123"
ElseIf ComboBox51.Value = "MAYIS" Then
Sheets("MAYIS").Select
ActiveSheet.Unprotect "123"
ElseIf ComboBox51.Value = "HAZİRAN" Then
Sheets("HAZİRAN").Select
ActiveSheet.Unprotect "123"
ElseIf ComboBox51.Value = "TEMMUZ" Then
Sheets("TEMMUZ").Select
ActiveSheet.Unprotect "123"
ElseIf ComboBox51.Value = "AĞUSTOS" Then
Sheets("AĞUSTOS").Select
ActiveSheet.Unprotect "123"
ElseIf ComboBox51.Value = "EYLÜL" Then
Sheets("EYLÜL").Select
ActiveSheet.Unprotect "123"
ElseIf ComboBox51.Value = "EKİM" Then
Sheets("EKİM").Select
ActiveSheet.Unprotect "123"
ElseIf ComboBox51.Value = "KASIM" Then
Sheets("KASIM").Select
ActiveSheet.Unprotect "123"
ElseIf ComboBox51.Value = "ARALIK" Then
Sheets("ARALIK").Select
ActiveSheet.Unprotect "123"
Exit Sub
End If
Dim ALAN As Range
If ComboBox51.Value = "OCAK" Then
Set S1 = Sheets("OCAK")
Set S2 = Sheets("CETVEL2")
SATIR = 2
SÜTUN = 93
S1.Select
[CO2:IV65536].ClearContents
ElseIf ComboBox51.Value = "ŞUBAT" Then
Set S1 = Sheets("ŞUBAT")
Set S2 = Sheets("CETVEL2")
SATIR = 2
SÜTUN = 93
S1.Select
[CO2:IV65536].ClearContents
ElseIf ComboBox51.Value = "MART" Then
Set S1 = Sheets("MART")
Set S2 = Sheets("CETVEL2")
SATIR = 2
SÜTUN = 93
S1.Select
[CO2:IV65536].ClearContents
ElseIf ComboBox51.Value = "NİSAN" Then
Set S1 = Sheets("NİSAN")
Set S2 = Sheets("CETVEL2")
SATIR = 2
SÜTUN = 93
S1.Select
[CO2:IV65536].ClearContents
ElseIf ComboBox51.Value = "MAYIS" Then
Set S1 = Sheets("MAYIS")
Set S2 = Sheets("CETVEL2")
SATIR = 2
SÜTUN = 93
S1.Select
[CO2:IV65536].ClearContents
ElseIf ComboBox51.Value = "HAZİRAN" Then
Set S1 = Sheets("HAZİRAN")
Set S2 = Sheets("CETVEL2")
SATIR = 2
SÜTUN = 93
S1.Select
[CO2:IV65536].ClearContents
ElseIf ComboBox51.Value = "TEMMUZ" Then
Set S1 = Sheets("TEMMUZ")
Set S2 = Sheets("CETVEL2")
SATIR = 2
SÜTUN = 93
S1.Select
[CO2:IV65536].ClearContents
ElseIf ComboBox51.Value = "AĞUSTOS" Then
Set S1 = Sheets("AĞUSTOS")
Set S2 = Sheets("CETVEL2")
SATIR = 2
SÜTUN = 93
S1.Select
[CO2:IV65536].ClearContents
ElseIf ComboBox51.Value = "EYLÜL" Then
Set S1 = Sheets("EYLÜL")
Set S2 = Sheets("CETVEL2")
SATIR = 2
SÜTUN = 93
S1.Select
[CO2:IV65536].ClearContents
ElseIf ComboBox51.Value = "EKİM" Then
Set S1 = Sheets("EKİM")
Set S2 = Sheets("CETVEL2")
SATIR = 2
SÜTUN = 93
S1.Select
[CO2:IV65536].ClearContents
ElseIf ComboBox51.Value = "KASIM" Then
Set S1 = Sheets("KASIM")
Set S2 = Sheets("CETVEL2")
SATIR = 2
SÜTUN = 93
S1.Select
[CO2:IV65536].ClearContents
ElseIf ComboBox51.Value = "ARALIK" Then
Set S1 = Sheets("ARALIK")
Set S2 = Sheets("CETVEL2")
SATIR = 2
SÜTUN = 93
S1.Select
[CO2:IV65536].ClearContents
End If
If TextBox1 = "" Then
MsgBox "LÜTFEN ARAMAK İSTEDİĞİNİZ VERİYİ GİRİNİZ VE AYI TEKRAR BELİRTİNİZ!", vbExclamation, "DİKKAT !"
TextBox1.SetFocus
Exit Sub
End If
Sheets("CETVEL2").Unprotect "123"
For Each ALAN In S2.Range("E7:FH40").SpecialCells(xlCellTypeConstants, 23)
If Evaluate("=UPPER(""" & ALAN.Value & """)") = Evaluate("=UPPER(""" & TextBox1.Value & """)") Then
S1.Cells(SATIR, SÜTUN) = S2.Cells(ALAN.Row, 3)
S1.Cells(SATIR, SÜTUN + 1) = ALAN.Value
S1.Cells(SATIR, SÜTUN + 2) = ALAN.Offset(0, 1).Value
S1.Cells(SATIR, SÜTUN + 3) = ALAN.Offset(0, 2).Value
S1.Cells(SATIR, SÜTUN + 4) = ALAN.Offset(0, 3).Value
S1.Cells(SATIR, SÜTUN + 5) = ALAN.Offset(0, 4).Value
SÜTUN = SÜTUN + 6
'SATIR = SATIR + 1
Columns("CB:IA").EntireColumn.AutoFit
'Columns("CB:FN").Select
End If
Next
If WorksheetFunction.CountA(Rows(2)) > 0 Then
MsgBox "AKTARMA İŞLEMİ TAMAMLANMIŞTIR.", vbInformation
Else
MsgBox "ARANAN KAYIT BULUNAMAMIŞTIR.", vbCritical
End If
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,745
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Aşağıdaki kodu denermisiniz.

Kod:
Private Sub CommandButton4_Click()
    If ComboBox51.Value = "" Then
    MsgBox "LÜTFEN! ÖNCELİKLE YILIN AYINI SEÇİNİZ, LİSTEDEKİ İSME DAHA SONRA TIKLAYINIZ"
    Exit Sub
    End If
    If ComboBox51.Value = "OCAK" Then
    Sheets("OCAK").Select
    ActiveSheet.Unprotect "123"
    ElseIf ComboBox51.Value = "ŞUBAT" Then
    Sheets("ŞUBAT").Select
    ActiveSheet.Unprotect "123"
    ElseIf ComboBox51.Value = "MART" Then
    Sheets("MART").Select
    ActiveSheet.Unprotect "123"
    ElseIf ComboBox51.Value = "NİSAN" Then
    Sheets("NİSAN").Select
    ActiveSheet.Unprotect "123"
    ElseIf ComboBox51.Value = "MAYIS" Then
    Sheets("MAYIS").Select
    ActiveSheet.Unprotect "123"
    ElseIf ComboBox51.Value = "HAZİRAN" Then
    Sheets("HAZİRAN").Select
    ActiveSheet.Unprotect "123"
    ElseIf ComboBox51.Value = "TEMMUZ" Then
    Sheets("TEMMUZ").Select
    ActiveSheet.Unprotect "123"
    ElseIf ComboBox51.Value = "AĞUSTOS" Then
    Sheets("AĞUSTOS").Select
    ActiveSheet.Unprotect "123"
    ElseIf ComboBox51.Value = "EYLÜL" Then
    Sheets("EYLÜL").Select
    ActiveSheet.Unprotect "123"
    ElseIf ComboBox51.Value = "EKİM" Then
    Sheets("EKİM").Select
    ActiveSheet.Unprotect "123"
    ElseIf ComboBox51.Value = "KASIM" Then
    Sheets("KASIM").Select
    ActiveSheet.Unprotect "123"
    ElseIf ComboBox51.Value = "ARALIK" Then
    Sheets("ARALIK").Select
    ActiveSheet.Unprotect "123"
    Exit Sub
    End If
    Dim ALAN As Range
    If ComboBox51.Value = "OCAK" Then
    Set S1 = Sheets("OCAK")
    Set S2 = Sheets("CETVEL2")
    S1.Select
    [CO2:IV65536].ClearContents
    ElseIf ComboBox51.Value = "ŞUBAT" Then
    Set S1 = Sheets("ŞUBAT")
    Set S2 = Sheets("CETVEL2")
    S1.Select
    [CO2:IV65536].ClearContents
    ElseIf ComboBox51.Value = "MART" Then
    Set S1 = Sheets("MART")
    Set S2 = Sheets("CETVEL2")
    S1.Select
    [CO2:IV65536].ClearContents
    ElseIf ComboBox51.Value = "NİSAN" Then
    Set S1 = Sheets("NİSAN")
    Set S2 = Sheets("CETVEL2")
    S1.Select
    [CO2:IV65536].ClearContents
    ElseIf ComboBox51.Value = "MAYIS" Then
    Set S1 = Sheets("MAYIS")
    Set S2 = Sheets("CETVEL2")
    S1.Select
    [CO2:IV65536].ClearContents
    ElseIf ComboBox51.Value = "HAZİRAN" Then
    Set S1 = Sheets("HAZİRAN")
    Set S2 = Sheets("CETVEL2")
    S1.Select
    [CO2:IV65536].ClearContents
    ElseIf ComboBox51.Value = "TEMMUZ" Then
    Set S1 = Sheets("TEMMUZ")
    Set S2 = Sheets("CETVEL2")
    S1.Select
    [CO2:IV65536].ClearContents
    ElseIf ComboBox51.Value = "AĞUSTOS" Then
    Set S1 = Sheets("AĞUSTOS")
    Set S2 = Sheets("CETVEL2")
    S1.Select
    [CO2:IV65536].ClearContents
    ElseIf ComboBox51.Value = "EYLÜL" Then
    Set S1 = Sheets("EYLÜL")
    Set S2 = Sheets("CETVEL2")
    S1.Select
    [CO2:IV65536].ClearContents
    ElseIf ComboBox51.Value = "EKİM" Then
    Set S1 = Sheets("EKİM")
    Set S2 = Sheets("CETVEL2")
    S1.Select
    [CO2:IV65536].ClearContents
    ElseIf ComboBox51.Value = "KASIM" Then
    Set S1 = Sheets("KASIM")
    Set S2 = Sheets("CETVEL2")
    S1.Select
    [CO2:IV65536].ClearContents
    ElseIf ComboBox51.Value = "ARALIK" Then
    Set S1 = Sheets("ARALIK")
    Set S2 = Sheets("CETVEL2")
    S1.Select
    [CO2:IV65536].ClearContents
    End If
    If TextBox1 = "" Then
    MsgBox "LÜTFEN ARAMAK İSTEDİĞİNİZ VERİYİ GİRİNİZ VE AYI TEKRAR BELİRTİNİZ!", vbExclamation, "DİKKAT !"
    TextBox1.SetFocus
    Exit Sub
    End If
    Sheets("CETVEL2").Unprotect "123"
    SÜTUN = 93
    For Each ALAN In S2.Range("E7:FH40").SpecialCells(xlCellTypeConstants, 23)
    If Evaluate("=UPPER(""" & ALAN.Value & """)") = Evaluate("=UPPER(""" & TextBox1.Value & """)") Then
    SATIR = ALAN.Row
    S1.Cells(SATIR, SÜTUN) = S2.Cells(ALAN.Row, 3)
    S1.Cells(SATIR, SÜTUN + 1) = ALAN.Value
    S1.Cells(SATIR, SÜTUN + 2) = ALAN.Offset(0, 1).Value
    S1.Cells(SATIR, SÜTUN + 3) = ALAN.Offset(0, 2).Value
    S1.Cells(SATIR, SÜTUN + 4) = ALAN.Offset(0, 3).Value
    S1.Cells(SATIR, SÜTUN + 5) = ALAN.Offset(0, 4).Value
    SÜTUN = SÜTUN + 6
    Columns("CB:IA").EntireColumn.AutoFit
    End If
    Next
    If WorksheetFunction.CountA(Rows(2)) > 0 Then
    MsgBox "AKTARMA İŞLEMİ TAMAMLANMIŞTIR.", vbInformation
    Else
    MsgBox "ARANAN KAYIT BULUNAMAMIŞTIR.", vbCritical
    End If
End Sub
 

Erdinç FIRTINA

Altın Üye
Katılım
14 Şubat 2007
Mesajlar
400
Excel Vers. ve Dili
excel 2003 türkçe
Altın Üyelik Bitiş Tarihi
15-05-2026
Sayın Korhan AYHAN,
Her şey için çok teşekkür ederim. Ancak kodları uyguladığımda, ismin bulunduğu satırdan başlamasına rağmen sütunlara geçtikçe farklı sayılarda satırlar atlayarak aktarıyor.

Eğer yardımlarınız olursa çok mutlu olurum.

her şey için şimdiden çok teşekkürler!!!
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,745
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Siz eklemiş olduğunuz örnek dosyaya göre OCAK VE ŞUBAT aylarında verileri nasıl görmek istediğinizi belirtirseniz kodu ona göre düzenlemeye çalışırım.
 

Erdinç FIRTINA

Altın Üye
Katılım
14 Şubat 2007
Mesajlar
400
Excel Vers. ve Dili
excel 2003 türkçe
Altın Üyelik Bitiş Tarihi
15-05-2026
Yardımlarınız için çok teşekkürler!!!

Sayın Korhan AYHAN,
İlginiz ve yardımlarınız için çok teşekkür ederim. Yapmak istediğimi ek dosyadaki 'OCAK' sayfasında açıkladım.
Yardımlarınız için şimdiden çok teşekkürler!!
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,745
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Aşağıdaki kodu denermisiniz.

Kod:
Private Sub CommandButton4_Click()
    If ComboBox51.Value = "" Then
    MsgBox "LÜTFEN! ÖNCELİKLE YILIN AYINI SEÇİNİZ, LİSTEDEKİ İSME DAHA SONRA TIKLAYINIZ"
    ComboBox51.SetFocus
    Exit Sub
    End If
    Sheets(ComboBox51.Text).Select
    ActiveSheet.Unprotect "123"
    Dim ALAN As Range
    Set S1 = Sheets(ComboBox51.Text)
    Set S2 = Sheets("CETVEL2")
    S1.Select
    If TextBox1 = "" Then
    MsgBox "LÜTFEN ARAMAK İSTEDİĞİNİZ VERİYİ GİRİNİZ VE AYI TEKRAR BELİRTİNİZ!", vbExclamation, "DİKKAT !"
    TextBox1.SetFocus
    Exit Sub
    End If
    S2.Unprotect "123"
    SÜTUN = 93
    SATIR = Cells(65536, SÜTUN).End(3).Row + 1
    For Each ALAN In S2.Range("E7:FH40").SpecialCells(xlCellTypeConstants, 23)
    If Evaluate("=UPPER(""" & ALAN.Value & """)") = Evaluate("=UPPER(""" & TextBox1.Value & """)") Then
    S1.Cells(SATIR, SÜTUN) = S2.Cells(ALAN.Row, 3)
    S1.Cells(SATIR, SÜTUN + 1) = ALAN.Value
    S1.Cells(SATIR, SÜTUN + 2) = ALAN.Offset(0, 1).Value
    S1.Cells(SATIR, SÜTUN + 3) = ALAN.Offset(0, 2).Value
    S1.Cells(SATIR, SÜTUN + 4) = ALAN.Offset(0, 3).Value
    S1.Cells(SATIR, SÜTUN + 5) = ALAN.Offset(0, 4).Value
    SÜTUN = SÜTUN + 6
    Columns("CB:IA").EntireColumn.AutoFit
    End If
    Next
    SATIR = Cells(65536, SÜTUN).End(3).Row + 1
    If WorksheetFunction.CountA(Columns("CO:IV")) > 0 Then
    MsgBox "AKTARMA İŞLEMİ TAMAMLANMIŞTIR.", vbInformation
    Else
    MsgBox "ARANAN KAYIT BULUNAMAMIŞTIR.", vbCritical
    End If
End Sub
 

Erdinç FIRTINA

Altın Üye
Katılım
14 Şubat 2007
Mesajlar
400
Excel Vers. ve Dili
excel 2003 türkçe
Altın Üyelik Bitiş Tarihi
15-05-2026
Sayın Korhan AYHAN,
Yardımlarınız için çok teşekkür ederim.
Size çok yük oldum biliyorum ama kodlarda küçük bir problem var. Bu konuda da yardımlarınızı bekliyorum.

Aslında kodların mantığını çözemedim. Bu nedenle de düzeltmek için öncelikle uğraşmama rağmen çözemiyorum. Bu nedenle de kusura bakmayın.

1.ComboBox ile isim seçerken SON ismi seçmiyor. Problemin çözümünün kodun hangi satırında olduğunu işin doğrusu bulamadım.

2.Örneğin; Ali ismini bulduğum da ve verileri aktardığımda Ali adının bulunduğu satıra verileri alıyor ama tekrar Aliyi aktar dediğimde Ali isminin bulunduğu satır dışında alt satıra tekrar verileri aktarıyor. Diğer isimlere ait verileri de aktarıyor. Oysa benim istedğim Combo ile seçilen isme ait verileri sürekli olarak isme ait olan satıra aktarsın ve tekrar aktar komutu verildiğinde yeni bir satır oluşturmak yerine, isme denk olan satıra yeniden aktarsın.

Her şey için şimdiden çok teşekkürler!!!
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,745
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Birinci sorunuz için sizin yazdığınız kod yerine daha kısa olan aşağıdaki kodu kullanabilirsiniz.

Kod:
Private Sub ComboBox51_Click()
    If ComboBox51.Value = "" Then
    MsgBox "LÜTFEN! ÖNCELİKLE YILIN AYINI SEÇİNİZ, LİSTEDEKİ İSME DAHA SONRA TIKLAYINIZ"
    ComboBox51.SetFocus
    Exit Sub
    End If
    Sheets(ComboBox51.Text).Select
    Range("CA1").Select
    ActiveSheet.Unprotect "123"
End Sub
İkinci sorunuz için bazı sorularım var netleştiğinde cevabımı vereceğim.

Formu açtınız ayı seçtiniz ve aktar butonuna bastınız.
CB2 den itibaren verileri aktarmaya başladı. Daha sonra ADI SOYADI kutucuğuna ALİ yazıp AKTAR 2 butonuna bastığınızda bu veriyi hangi satıra aktaracak. İlk butonla yaptığınız aktarımdaki ALİ verisinin bulunduğu satıramı yoksa CO sütunundaki ilk boş satıra mı? Bu kısmı açıklarsanız sorunu daha çabuk çözebiliriz.
 

Erdinç FIRTINA

Altın Üye
Katılım
14 Şubat 2007
Mesajlar
400
Excel Vers. ve Dili
excel 2003 türkçe
Altın Üyelik Bitiş Tarihi
15-05-2026
Aktarılan veriler, isme ait sıraya aktarılsın

Sayın Korhan AYHAN,
Size çok yordum biliyorum. Gerçekten büyük bir özveriyle bizlere yardımcı oluyorsunuz.

Birinci sorum için kodlarda değişiklik yaptım. Ancak yine de isim arandığında son ismi almıyor.

İkinci soru için;

Aktar 1 buttonuna bastım ve aktarmaya başladı ve tamamladı.
Aktar 2 buttonuna bastığımda ise, İlk buttonla aktarılan verilerin bittiği satırdan başlayarak aktarmasını istiyorum. Yani aranan isme ait olan satıra yazmasını istiyorum. Veriyi aktardığımızda her zaman aranan isme ait olan satıra aktarılsın, bir başka satıra aktarılmasın istiyorum.

Yine de olmayacak gibi bir şey ise, lütfen fazla uğraşmayın. Çünkü, sizi çok yorduğumu biliyorum.

Her şey için yürekten teşekkürler!!!
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,745
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Kusura bakmayın ben birinci sorunuzu yanlış anladım sanırım.

1.ComboBox ile isim seçerken SON ismi seçmiyor. Problemin çözümünün kodun hangi satırında olduğunu işin doğrusu bulamadım.
Burada bahsettiğiniz hangi ComboBox ve hangi isim örneklermisiniz.
 

Erdinç FIRTINA

Altın Üye
Katılım
14 Şubat 2007
Mesajlar
400
Excel Vers. ve Dili
excel 2003 türkçe
Altın Üyelik Bitiş Tarihi
15-05-2026
Sayın Korhan AYHAN,

ComboBox52 ile isim seçiyoruz ya. İşte CB1:CB65536 arasında aranan isimlerden en son ismi listboxa almıyor.
Bizim dosyamızdaki Cengiz ismini almıyor. Ancak Cengiz isminin altına baştaca isimler eklediğimde ise Cengiz ismini alıyor ama yine eklenen son ismi almıyor.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,745
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Anladığım kadarıyla dosyanızda gerekli düzenlemeleri yaptım. İncelermisiniz.
 

Erdinç FIRTINA

Altın Üye
Katılım
14 Şubat 2007
Mesajlar
400
Excel Vers. ve Dili
excel 2003 türkçe
Altın Üyelik Bitiş Tarihi
15-05-2026
Selamlar,

Sayın Korhan AYHAN, size nasıl teşekkür edeceğimi bilemiyorum. Beni çok mutlu ettiniz.

Çok çok teşekkür ederim. Artık ben bu akşam bilgisayar başında kodların mantığını çözmeye çalışırım. Buradan hareketle de yeni bilgiler öğrenmiş olurum. Her şey için çok sağolun.
 
Üst