• DİKKAT

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

excel tarih sayfaları sıralama

Katılım
2 Ekim 2011
Mesajlar
356
Excel Vers. ve Dili
excel 360 TR 64bit
01.01.2012
02.01.2012
03.01.2012

diye, tarih rakamlı sayfaları sıralamak istiyorum
 

Ekli dosyalar

Son düzenleme:
bunlar sayfa ismi midir? sayfadaki veriler midir?
Hiç bir şey anlaşılmıyor. Örnek dosya ekleyin bakalım.
 
bunlar sayfa ismi midir? sayfadaki veriler midir?
Hiç bir şey anlaşılmıyor. Örnek dosya ekleyin bakalım.



aynen bunlar sayfa isimleri yani 01.01.2010 dan bugünun tarihine kadar tarih isimli sayfalarım var karışık sırada.bunları eski tarihten yeni tarihe sıralamk istiyorum..
 
Aşağıdaki kodu bir modüle yapıştırarak deneyiniz.
Kod:
Sub sayfa_sirala()
Dim intI As Integer, intJ As Integer
 For intI = 1 To Sheets.Count
   For intJ = 1 To Sheets.Count - 1
     If UCase(Sheets(intJ).Name) > UCase(Sheets(intJ + 1).Name) Then
        Sheets(intJ).Move after:=Sheets(intJ + 1)
     End If
   Next
 Next
End Sub
 
sitede veya arama motorunda arama yapmamışsınız anlaşılan, örnekler var.

aşağıdaki kodu bir deneyin bakalım inşallah yanılmıyorum.

Sub Auto_Open()
Dim i As Integer
Dim j As Integer

If Worksheets.Count = 1 Then Exit Sub
For i = 1 To Worksheets.Count - 1
For j = i + 1 To Worksheets.Count
If Worksheets(j).Name < Worksheets(i).Name Then
Worksheets(j).Move before:=Worksheets(i)
End If
Next j
Next i
End Sub
 
arkadaşlar şimdi sitedeki kodlarıda denedim şimdi sizin verdiklerinizide denedim.ama tarihe göre sıralama yapmıyor. günleri sıralıyor ayları yılları dikkate almıyor
 
Aşağıdaki kodu bir modüle yapıştırarak deneyiniz.
Kod:
Sub sayfa_sirala()
Dim intI As Integer, intJ As Integer
 For intI = 1 To Sheets.Count
   For intJ = 1 To Sheets.Count - 1
     If UCase(Sheets(intJ).Name) > UCase(Sheets(intJ + 1).Name) Then
        Sheets(intJ).Move after:=Sheets(intJ + 1)
     End If
   Next
 Next
End Sub


günü .ayı . yılı dikkate alaraktan işlem yapmıyor.sadece güne bakıyor.
bu şekilde örnek
01.01.2010
02.01.2011
03.01.2012
gibi
 
sitede veya arama motorunda arama yapmamışsınız anlaşılan, örnekler var.

aşağıdaki kodu bir deneyin bakalım inşallah yanılmıyorum.

Sub Auto_Open()
Dim i As Integer
Dim j As Integer

If Worksheets.Count = 1 Then Exit Sub
For i = 1 To Worksheets.Count - 1
For j = i + 1 To Worksheets.Count
If Worksheets(j).Name < Worksheets(i).Name Then
Worksheets(j).Move before:=Worksheets(i)
End If
Next j
Next i
End Sub



bir yardım
 

Ekli dosyalar

şu şekilde deneyiniz.

Sub sırala()
Application.ScreenUpdating = False
For x = 1 To Sheets.Count
For Y = x + 1 To Sheets.Count
c = CDate(Sheets(x).Name)
d = CDate(Sheets(Y).Name)
If c < d Then
GoTo gel
Else
Sheets(Y).Move before:=Sheets(x)
gel:
End If
Next Y
Next x
Application.ScreenUpdating = True
MsgBox "İşleminiz bitmiştir", vbInformation
End Sub
 
Merhaba,
ben şimdi gene denedim..bi problem vermiyo..
 
şu şekilde deneyiniz.

Sub sırala()
Application.ScreenUpdating = False
For x = 1 To Sheets.Count
For Y = x + 1 To Sheets.Count
c = CDate(Sheets(x).Name)
d = CDate(Sheets(Y).Name)
If c < d Then
GoTo gel
Else
Sheets(Y).Move before:=Sheets(x)
gel:
End If
Next Y
Next x
Application.ScreenUpdating = True
MsgBox "İşleminiz bitmiştir", vbInformation
End Sub





hata veriyor
debug a bastığımda şurayı sarı gösteriyor

Sub sırala()
Application.ScreenUpdating = False
For x = 1 To Sheets.Count
For Y = x + 1 To Sheets.Count
c = CDate(Sheets(x).Name)
d = CDate(Sheets(Y).Name)
If c < d Then
GoTo gel
Else
Sheets(Y).Move before:=Sheets(x)
gel:
End If
Next Y
Next x
Application.ScreenUpdating = True
MsgBox "İşleminiz bitmiştir", vbInformation
End Sub
 
evet excel dosyasındaki bütün sayfalar tarih rakamlı sayfa ismi olunca düzgün çalışıyor..
.bendeki excel dosyamda sayfaların bir kısmı 20 tane kadar sayfa isimleri harf ve değişik rakamlar içeriyor.bunlardan dolayı sanırsam hata veriyor. bunlarıda göz önüne alırsak nasıl yaparız formülü
 
Son düzenleme:
aynen o yüzden hata veriyor..ben hepsini tarih olarak düşünmüştüm..
 
şu şekilde deneyin..

Sub sırala()
Application.ScreenUpdating = False
For x = 1 To Sheets.Count
For y = x + 1 To Sheets.Count
If IsDate(Sheets(x).Name) Then
c = CDate(Sheets(x).Name)
Else
Exit For
End If
If IsDate(Sheets(y).Name) Then
d = CDate(Sheets(y).Name)
Else
GoTo gel
End If
If c < d Then
GoTo gel
Else
Sheets(y).Move before:=Sheets(x)
gel:
End If
Next y
Next x
Application.ScreenUpdating = True
MsgBox "İşleminiz bitmiştir", vbInformation
End Sub
 
şu şekilde deneyin..

Sub sırala()
Application.ScreenUpdating = False
For x = 1 To Sheets.Count
For y = x + 1 To Sheets.Count
If IsDate(Sheets(x).Name) Then
c = CDate(Sheets(x).Name)
Else
Exit For
End If
If IsDate(Sheets(y).Name) Then
d = CDate(Sheets(y).Name)
Else
GoTo gel
End If
If c < d Then
GoTo gel
Else
Sheets(y).Move before:=Sheets(x)
gel:
End If
Next y
Next x
Application.ScreenUpdating = True
MsgBox "İşleminiz bitmiştir", vbInformation
End Sub


çok teşekkur ederim hocam.eline sağlık
şimdiye kadar sitede olan tarih sıralamalı sayfa formülleri "konuları" hep hatalıydı.en doğru formül bu .
 
Geri
Üst