Üzerinde çalıştığım *.xla uzantılı bir dosya, çalışması sırasında başka bir adresteki (*.xls uzantılı) müşteri listesini çağırıyor ve bu liste üzerinde bir userform vasıtasıyla müşteri ekleme-silme gibi düzenlemeler yapılmasını sağlıyordu. Yaptığı işlemden sonra da listeyi alfabetik olarak düzenleyip öyle bırakıyordu.
Daha sonra yaptığım bir değişiklik gereği, bu başka adresten çağırılan *.xls uzantılı çalışma kitabının içindeki bu listenin bulunduğu çalışma sayfasını *.xla uzantılı eklentinin içine gömmek zorunda kaldım. Bu durumda da müşteri ekleme-çıkarma işlemini yapabilmeme rağmen, listeyi alfabetik olarak sıralayamaz oldum. Sitede biraz araştırma yapmama rağmen benzer bir durum için çözüme rastlayamadım. Aslında çözümün ne kadar basit olduğunu görünce kendime kızmadım da değil. İki farklı durumda kullandığım kodları aşağıya not olarak düşüyorum.
Çalışma sayfasındaki listeyi düzenlerken kullandığım kodlar:
Private Sub CommandButton1_Click()
On Error Resume Next
If UserForm6.TextBox3.Text = "" Then
Set mesaj = CreateObject("WScript.Shell")
mesaj.popup "Hayalet Müşteri!", 1
Exit Sub
End If
Sayfa2.[ba65536].End(3).Offset(1, 0) = UserForm6.TextBox3.Text
Sayfa2.[ba65536].End(3).Offset(0, 1) = UserForm6.TextBox4.Text
Sayfa2.[ba65536].End(3).Offset(0, 2) = UserForm6.TextBox18.Text
Sayfa2.[ba65536].End(3).Offset(0, 3) = UserForm6.TextBox11.Text
Sayfa2.[ba65536].End(3).Offset(0, 4) = TextBox1.Text
Sayfa2.Select
[ba201:be260].Sort Key1:=[ba201], Order1:=xlAscending
Sayfa3.Select
End Sub
eklenti içindeki (*.xla) çalışma sayfasındaki listeyi düzenlerken kullandığım kodlar:
Private Sub CommandButton1_Click()
On Error Resume Next
If UserForm6.TextBox3.Text = "" Then
Set mesaj = CreateObject("WScript.Shell")
mesaj.popup "Hayalet Müşteri!", 1
Exit Sub
End If
Sayfa2.[ba65536].End(3).Offset(1, 0) = UserForm6.TextBox3.Text
Sayfa2.[ba65536].End(3).Offset(0, 1) = UserForm6.TextBox4.Text
Sayfa2.[ba65536].End(3).Offset(0, 2) = UserForm6.TextBox18.Text
Sayfa2.[ba65536].End(3).Offset(0, 3) = UserForm6.TextBox11.Text
Sayfa2.[ba65536].End(3).Offset(0, 4) = TextBox1.Text
Sayfa2.Activate
[ba201:be260].Sort Key1:=[ba201], Order1:=xlAscending
Sayfa3.Activate
End Sub
Görüldüğü üzere tek değişiklik "Select" yerine "Activate" ifadesinin kulanılmasından ibaret
Daha sonra yaptığım bir değişiklik gereği, bu başka adresten çağırılan *.xls uzantılı çalışma kitabının içindeki bu listenin bulunduğu çalışma sayfasını *.xla uzantılı eklentinin içine gömmek zorunda kaldım. Bu durumda da müşteri ekleme-çıkarma işlemini yapabilmeme rağmen, listeyi alfabetik olarak sıralayamaz oldum. Sitede biraz araştırma yapmama rağmen benzer bir durum için çözüme rastlayamadım. Aslında çözümün ne kadar basit olduğunu görünce kendime kızmadım da değil. İki farklı durumda kullandığım kodları aşağıya not olarak düşüyorum.
Çalışma sayfasındaki listeyi düzenlerken kullandığım kodlar:
Private Sub CommandButton1_Click()
On Error Resume Next
If UserForm6.TextBox3.Text = "" Then
Set mesaj = CreateObject("WScript.Shell")
mesaj.popup "Hayalet Müşteri!", 1
Exit Sub
End If
Sayfa2.[ba65536].End(3).Offset(1, 0) = UserForm6.TextBox3.Text
Sayfa2.[ba65536].End(3).Offset(0, 1) = UserForm6.TextBox4.Text
Sayfa2.[ba65536].End(3).Offset(0, 2) = UserForm6.TextBox18.Text
Sayfa2.[ba65536].End(3).Offset(0, 3) = UserForm6.TextBox11.Text
Sayfa2.[ba65536].End(3).Offset(0, 4) = TextBox1.Text
Sayfa2.Select
[ba201:be260].Sort Key1:=[ba201], Order1:=xlAscending
Sayfa3.Select
End Sub
eklenti içindeki (*.xla) çalışma sayfasındaki listeyi düzenlerken kullandığım kodlar:
Private Sub CommandButton1_Click()
On Error Resume Next
If UserForm6.TextBox3.Text = "" Then
Set mesaj = CreateObject("WScript.Shell")
mesaj.popup "Hayalet Müşteri!", 1
Exit Sub
End If
Sayfa2.[ba65536].End(3).Offset(1, 0) = UserForm6.TextBox3.Text
Sayfa2.[ba65536].End(3).Offset(0, 1) = UserForm6.TextBox4.Text
Sayfa2.[ba65536].End(3).Offset(0, 2) = UserForm6.TextBox18.Text
Sayfa2.[ba65536].End(3).Offset(0, 3) = UserForm6.TextBox11.Text
Sayfa2.[ba65536].End(3).Offset(0, 4) = TextBox1.Text
Sayfa2.Activate
[ba201:be260].Sort Key1:=[ba201], Order1:=xlAscending
Sayfa3.Activate
End Sub
Görüldüğü üzere tek değişiklik "Select" yerine "Activate" ifadesinin kulanılmasından ibaret