Soru Sayfaları Sırala Makro Yardım

hasanyaprak

Altın Üye
Katılım
9 Aralık 2010
Mesajlar
69
Excel Vers. ve Dili
İş office 2021 / Ev ofis 2016 64 bit
Altın Üyelik Bitiş Tarihi
13-10-2025
Arkadaşlar merhaba,

"Sipariş Formu" adında bir safya var bu safya makro ile çoğaltılıyor. Çoğalma ile oluşan safya isimleri aşağıdaki gibi.


Sipariş Formu / Sipariş Formu (1) / Sipariş Formu (2) / Sipariş Formu (3) / Sipariş Formu (4) / Sipariş Formu (5) / Sipariş Formu (6) / Sipariş Formu (7) / Sipariş Formu (8) / Sipariş Formu (9) / Sipariş Formu (10) / Sipariş Formu (111)


Sıralama için çeşitli makrolar gördüm. Genelde 1-9 arasını doğru sıralıyor ve 10 ve 11 bunların önüne geçiyor. Nasıl düzeltirim bu surunu yardımınıza ihtiyacım var.



Örnek Makro

Sayfalari sirala ()
Dim Sort_Mode_Descending As Boolean
Dim No_of_Sheets As Integer
Dim Outer_Loop As Integer
Dim Inner_Loop As Integer
No_of_Sheets = Sheets.Count

Sort_Mode_Descending = False
For Outer_Loop = 1 To No_of_Sheets
For Inner_Loop = 1 To Outer_Loop
If Sort_Mode_Descending = True Then
If UCase(Sheets(Outer_Loop).Name) > UCase(Sheets(Inner_Loop).Name) Then
Sheets(Outer_Loop).Move Before:=Sheets(Inner_Loop)
End If
End If
If Sort_Mode_Descending = False Then
If UCase(Sheets(Outer_Loop).Name) < UCase(Sheets(Inner_Loop).Name) Then
Sheets(Outer_Loop).Move Before:=Sheets(Inner_Loop)
End If
End If

Next Inner_Loop
Next Outer_Loop

End Sub
 

Ekli dosyalar

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,418
Excel Vers. ve Dili
2019 Türkçe
Merhaba.
Eğer sayfa isimlerindeki rakamlar örnekteki gibi ardışıksa aşağıdaki kodu kullanabilirsiniz.
Kod:
Sub Sirala()
    Dim Syf As Integer
    Worksheets("Sipariş Formu").Move Before:=Worksheets(1)
    For Syf = 1 To Worksheets.Count - 1
        Worksheets("Sipariş Formu (" & Syf & ")").Move Before:=Worksheets(Syf + 1)
    Next
End Sub
 

hasanyaprak

Altın Üye
Katılım
9 Aralık 2010
Mesajlar
69
Excel Vers. ve Dili
İş office 2021 / Ev ofis 2016 64 bit
Altın Üyelik Bitiş Tarihi
13-10-2025
Merhaba.
Eğer sayfa isimlerindeki rakamlar örnekteki gibi ardışıksa aşağıdaki kodu kullanabilirsiniz.
Kod:
Sub Sirala()
    Dim Syf As Integer
    Worksheets("Sipariş Formu").Move Before:=Worksheets(1)
    For Syf = 1 To Worksheets.Count - 1
        Worksheets("Sipariş Formu (" & Syf & ")").Move Before:=Worksheets(Syf + 1)
    Next
End Sub


Doğru sıralıyor hocam teşekkür ederim.
 

hasanyaprak

Altın Üye
Katılım
9 Aralık 2010
Mesajlar
69
Excel Vers. ve Dili
İş office 2021 / Ev ofis 2016 64 bit
Altın Üyelik Bitiş Tarihi
13-10-2025
Hocam bir soru daha sorsam çok olmam umarım. Formülleri ile başka excelden değer alıyor aşağıdaki kod. Bir türlü değerleri yapıştır yapamadım. Kaynaktaki exceldeki değerleri alsın istiyorum. Hücreyi formülleri ile alıyor.


kaynak.Worksheets("Sipariş Formu").Range("A9:C35").Copy ThisWorkbook.Sheets("anasayfa").Range("A2")
kaynak.Worksheets("Sipariş Formu (2)").Range("A9:C35").Copy ThisWorkbook.Sheets("anasayfa").Range("E2")
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,418
Excel Vers. ve Dili
2019 Türkçe
Deneyiniz.
Kod:
ThisWorkbook.Sheets("anasayfa").Range("A2:C28").Value = kaynak.Worksheets("Sipariş Formu").Range("A9:C35").Value
ThisWorkbook.Sheets("anasayfa").Range("E2:G28").Value = kaynak.Worksheets("Sipariş Formu (2)").Range("A9:C35").Value
 

hasanyaprak

Altın Üye
Katılım
9 Aralık 2010
Mesajlar
69
Excel Vers. ve Dili
İş office 2021 / Ev ofis 2016 64 bit
Altın Üyelik Bitiş Tarihi
13-10-2025
Deneyiniz.
Kod:
ThisWorkbook.Sheets("anasayfa").Range("A2:C28").Value = kaynak.Worksheets("Sipariş Formu").Range("A9:C35").Value
ThisWorkbook.Sheets("anasayfa").Range("E2:G28").Value = kaynak.Worksheets("Sipariş Formu (2)").Range("A9:C35").Value
Teşekkür ettim. Sorunsuz çalıştı.

Bendeki kodun sonuna ".Value" yazdım ama çalışmamıştı.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,418
Excel Vers. ve Dili
2019 Türkçe
Sizin kodlarınızla bunları karşılaştırın. İkisi birbirinden çok farklı.
 
Üst