• FORUMU MOBİL UYGULAMADAN TAKİP EDİN

    Forumu isteyen üyelerimiz Tapatalk (Harici bir hizmet) üzerinden mobil uygulamadan takip edebilirler.
    iOS için : https://itunes.apple.com/app/id307880732?mt=8
    Android için : https://play.google.com/store/apps/details?id=com.quoord.tapatalkpro.activity
    adreslerinden indirebilirsiniz.

    Bir iki haftaya da foruma özel kendi uygulamamız yayında olacak.
ALTIN ÜYELİK Hakkında Bilgi
-----------------------

Çözüldü Özel Liste yi makro oluşturmada hata

Katılım
9 Eylül 2010
Mesajlar
372
Beğeniler
1
Excel Vers. ve Dili
2016 TR
#1
İyi akşamlar değerli hocalarım. Ekteki dosyada makro doğru çalışıyor ancak bu makroyu oluşturduktan sonra çalışma kitabı bozuluyor. Linkte verdiğim konudaki hataların aynısını alıyorum. Nette çözümüne baktım ancak sadece veri kurtarmayla ilgili kısıtlı sayıda bilgi buldum. Yeterli yabancı dilim de olmadığı için yabancı forumları okuyamadım. Forumda da özel sıralamayla ilgili çözümler var ancak orada yazılan kodları anlayıp kendi dosyama uyarlayacak seviyede değilim. Dosyadaki hatanın kaynağı özel liste karakter sayısının 256 olması mıdır? Eğer böyle ise farklı çözüm yolları var mıdır? Hiç bir çözüm yolu yoksa kodla bu sıralamayı yapabilir misiniz. Saygılarımla.
https://www.excel.web.tr/threads/istenilen-ruetbe-sinifina-goere-siralama.174555/
 
Katılım
8 Mart 2011
Mesajlar
12,052
Beğeniler
340
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
#2
Merhaba.

Aşağıdaki kod işinizi görüyor mudur?
Farklı durumlara göre deneyiniz. "Dosyanın yapısı bozuluyor" cümlesini biraz açar mısınız?
Rich (BB code):
Sub OZEL_SIRALAMA_BARAN()
    sonsat = Sheets("list").Cells(Rows.Count, 1).End(3).Row
    ActiveWorkbook.Worksheets("list").Sort.SortFields.Clear
    With ActiveWorkbook.Worksheets("list").Sort
        .SortFields.Add Key:=Range("I3:I" & sonsat), Order:=1, CustomOrder:= _
            "Şube Müdürü,Şube Müdür Yardımcısı,...................gibi uzayan listeniz................"
        .SortFields.Add Key:=Range("H3:H" & sonsat), Order:=1, CustomOrder:= _
            "İç Hizmetler,İaşe Sorumlusu,...................gibi uzayan listeniz................"
        .SortFields.Add Key:=Range("D3:D" & sonsat), Order:=1, CustomOrder:= _
            "Komiser,Kom. Yrd.,...................gibi uzayan listeniz................"
        .SortFields.Add Key:=Range("C2:C" & sonsat), Order:=1

        .SetRange Range("A2:Z" & sonsat): .Header = xlYes: .Apply
    End With
    ActiveWorkbook.Worksheets("list").Sort.SortFields.Clear
End Sub
 
Son düzenleme:
Katılım
9 Eylül 2010
Mesajlar
372
Beğeniler
1
Excel Vers. ve Dili
2016 TR
#3
Sıralama hata ve farklı kaydet e zorlama olayları çözüldü. Tekrar tekrar teşekkürler.
Cevap düzeltildi.
 
Son düzenleme:
Katılım
8 Mart 2011
Mesajlar
12,052
Beğeniler
340
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
#5
Ben olsam; ....... "biraz abarttım galiba"......
Cevabımı değiştirdim.
 
Son düzenleme:
Katılım
9 Eylül 2010
Mesajlar
372
Beğeniler
1
Excel Vers. ve Dili
2016 TR
#6
#2
Merhaba.
Aşağıdaki kod işinizi görüyor mudur?
Farklı durumlara göre deneyiniz. "Dosyanın yapısı bozuluyor" cümlesini biraz açar mısınız?


aynı hatayı bende alıyorum ve ekli dosyadaki örnekteki gibi dosyayı kaydet dediğimde sürekli farklı kaydet e zorluyor.
 

Ekli dosyalar

Katılım
9 Eylül 2010
Mesajlar
372
Beğeniler
1
Excel Vers. ve Dili
2016 TR
#8
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<recoveryLog xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><logFileName>error119160_01.xml</logFileName><summary>'C:\Users\tuncer ÅŸow\Desktop\Åube List 2.xlsm' dosyasında hata algılandı</summary><removedRecords><removedRecord>Kaldırılan Kayıtlar: /xl/worksheets/sheet1.xml parçasından Sıralama</removedRecord></removedRecords></recoveryLog>

Hata bu hocam. Word de açtı chrome de açtırıp tekrar yükleyeyim. Türkçe karakterler hatalı gelmiş.
 
Katılım
8 Mart 2011
Mesajlar
12,052
Beğeniler
340
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
#9
Belgenizdeki formülleri DEĞERe dönüştürerek dener misiniz?
Bu arada liste dışında sağ tarafta =EĞER(I11<>"";EĞER(SAĞDAN(KÜÇÜKHARF(G11);9)="tim amiri";MAK(W$2:W10)+1;"");"") gibi formüller var onları da SİLİN veya DEĞERe dönüştürün.
 
Katılım
8 Mart 2011
Mesajlar
12,052
Beğeniler
340
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
#10
Ayrıca bir de kod'da aşağıdaki mavi kısmı eklemekte yarar var sanırım.
.SetRange Range("A2:Z" & sonsat): .Header = xlYes: .Apply
Zira üst tarafta alanları 3'üncü satırdan başlatırken alan olarak A2:Z & sonsat SET ediliyor. Ama başlığın olduğunu söylemiyoruz.
 
Katılım
9 Eylül 2010
Mesajlar
372
Beğeniler
1
Excel Vers. ve Dili
2016 TR
#11
Hocam bu da çözüm olmadı. Ancak koda şunu ilave edebilir miyiz. Gene bulunduğu dizinde aynı dosya adıyla kaydetsin. Hatta aynı dosya ile değiştirsin. Değiştirilsin mi dediğinde otomatik evet desin mümkün müdür. Yoksa kodlarda sorun yok. Gayet düzgün çalışıyorlar. Sadece farklı kaydete zorlaması can sıkıyor. Bunu yapsak bile açılışta gene hata verip dosya onarma ve kurtarma uyarısı verecek bu nedenle bu yol da çıkmaz a girdi. Çok teşekkürler Sn. Hocam.
 
Son düzenleme:
Katılım
8 Mart 2011
Mesajlar
12,052
Beğeniler
340
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
#12
Ben FARKLI KAYDET'e zorlama rastlamadım, kod çalıştırılıp belge kapatıldıktan sonraki ilk açılışta ONARMA uyarısı geliyordu sadece.

Kod'daki End Sub satırının hemen üstüne aşağıdaki satır eklenince bu hata da kalmıyor, deneyiniz.
İlk cevabımdaki kodu da buna göre güncelledim.
ActiveWorkbook.Worksheets("list").Sort.SortFields.Clear
 
Katılım
8 Mart 2011
Mesajlar
12,052
Beğeniler
340
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
#14
Önce bir hatırlatma;
belgenizde çalıştırdığınız kod varsa orada yapılmış olabilir, belgeniz açıldığında HESAPLAMA YÖNTEMİ ELLE şeklinde idi.
O şekilde bırakmanızı önermem.

Sorun ile ilgili olarak olayın mantığını anlatmaya çalışayım.
Excel, bir listeye sıralama uygulandığında, listenin sıralamaya tabi tutulduğunu ve buradaki sıralama kriterlerini bir anlamda aklında tutuyor
(sıralama öncesinde alanda filtre varsa, sıralamadan sonra filtrenin küçük ok işaretinin solunda sıralamaya ilişkin yine küçük bir ok işareti görünüyor).

Sizin belgeye gelince;
-- Diyelim ki elle sıralama yapıyoruz (bu durumda özel listenin önceden tanımlanmış olması gerekir),
kriter olarak da sütunlardan biri için bu özel listeyi seçiyoruz veya makro ile sıralama yapıyorsak yine bu özel listeyi kullanabiliyoruz. => sorun yok.
-- Elle sıralama yapılıyorsa ve özel liste kayıtlı değilse zaten kriter olarak özel listeyi kullanamıyoruz.
-- Sıralamayı makro ile yaparken, özel listeyi kod üzerinden verdiğimizde (bizim uygulamamız) sıralama yapılıyor ama excel bu sıralamayı hatırlamaya çalıştığında özel liste kayıtlı olmadığından bunu bulamıyor ve belirttiğiniz uyarı/hata oluşuyor.

İşte belge kapatılıp tekrar açıldığında. veriler "sıralamaya tabi tutulmuş mu, tutulmuşsa kriterleri ney" kontrolünü yaparken bu işlemin hata vermemesi için; sıralama makrosunun sonunda SIRALAMA YAPILDIĞINI UNUT anlamında olmak üzere, koda o satırı ekledik.
Umarım yanlış ifade etmedim.

Kolay gelsin.
 
Katılım
9 Eylül 2010
Mesajlar
372
Beğeniler
1
Excel Vers. ve Dili
2016 TR
#15
Çözümü verdiğiniz gibi sorunu da açıklamanız çok yerinde oldu hocam. Hala sorunu aramaya devam ediyor olacaktık. Ne kadar teşekkür etsem azdır. Allah gönlünüze göre versin.
 
Üst