Düşey Ara Özelliği

Ekteki dosyada sayfa1 alanında “kuyu” bölümüne numarayı yazdığımda (örneğin 2006) mayıs sayfasına gidip, 2006 nolu kuyunun ilk endeksini alarak sayfa1 deki ilk endeks bölümüne yazacak. Sayfa 1 de son endeksi manuel olarak biz gireceğiz. Entere bastığımızda elle yazdığımız “son endeks” değerini mayıs sayfasındaki 2006 nolu kuyunun son endeksine yazacak. Bu konuya ilişkin makro çalışmasını yapıp, ekli dosya olarak gönderirseniz çok sevinirim. Kolay gelsin.

Ek:nisan.ods

Asıl soru: http://forum.libreoffice.org.tr/viewtopic.php?f=6&t=617

Merhaba,

Aslında bu tip ihtiyacımı çözün gönderin tarzı sorulara cevap yapmıyoruz.

Ancak benzer problemi olan arkadaşlarda görsün diye hem sizin dosyanızı hazırladım hemde kullandığım formülleri aşağıdaki resimlerde gösterdim.

İlk olarak Sayfa isimlerinde üğışçöÜĞİŞÇÖ harflerini kullanmayın.

Siz 2. sayfaya mayıs ismini vermişsiniz. mayıs kelimesindeki ı harfi ingiliz alfabesinde yoktur ve genelde problem çıkartır. Bu yüzden sayfa adını MAYIS olarak değiştirdim.

Sayfa1’de KUYU alanına yazdığınız numarayı, MAYIS sayfasındaki ilk 4 kolonda arıyor ve bulduğunda aradığı bölgenin 4. kolonundaki değeri veriyor. Sizin örneğinizde bu İLK ENDEKS oluyor.

Sonrasında SON ENDEKS’e yazdığınız değeri MAYIS sayfasındaki ilgili kolona eğer KUYU numaraları aynı ise yazıyor aksi halde 0 yazıyor.

nisan.ods

Devam sorusu:

İlginiz için teşekküeler. size
bahsettiğim herşeyi yapmışsınız. Lakin
şöyle bir sorun var. Örneğin 2006
yazdığımda 1. sayfaya 2006 nın ilk
endeksini getiriyor. Elle son endeksi
yazıyorum. Entere bastığımda son
endeksi de 2. sayfada 2006 nolu
kuyunun son endeksine yazıyor. Daha
sonra sıradaki 6215 nolu kuyuyu
çağırıyorum. Yine ilk endeksi
getiriyor. Yine elle son endeksi yazıp
enter tuşuna bastığımda 2006 nolu
kuyunun son endeksini siliyor. Bunu
engellemenin yolunu da belirtireniz
sevinirim. Teşekkürler.

Merhaba,

Gecikme için kusura bakmayın ancak haftasonu veya tatil gecelerinde fırsat buluyorum.

Sizin tablonuzdaki daha önce Microsoft Excel ile yazdığınız makroların tamamını iptal ettim ve LibreOffice’te aşağıdaki basit makroyu yazdım.

Sub SonEndeksiYaz

  Dim Kitap
  Dim Sayfa1, Mayis
  Dim KuyuNo, Kuyular
  Dim Satir

  Kitap=ThisComponent
  Sayfa1=Kitap.Sheets(0)
  Mayis=Kitap.Sheets(1)
  KuyuNo=Sayfa1.getCellRangeByName("C3").Value
 
  For Satir=17 To 106
    Kuyular=Mayis.getCellByPosition(0,Satir).Value
    If KuyuNo=Kuyular Then
      SonEndeks=Mayis.getCellByPosition(4,Satir)
      SonEndeks=Sayfa1.getCellRangeByName("B3").Value
    End If
  Next Satir   
 
End Sub

Sonrasında Sayfa1’de yeni bir buton oluşturdum ve adını TAMAM yaptım.

Sonrasında yukarıda yazdığım makroyu bu butona bağladım.

Dosyanın son halini mesaja ekliyorum.

Umarım merak eden tüm arkadaşların işine yarar.

Kolay gelsin.

Adsız 2.ods

Asıl cevaplayan: Hamurcu