Sürüm Numarası Vererek Sayfada İşlem Yapmak

  • Konuyu başlatan Konuyu başlatan merakli
  • Başlangıç tarihi Başlangıç tarihi

Kısa Açıklama

Sürüm Numarası Vererek Sayfada İşlem Yapmak isimli başlıkta, ilgili işlemlere dair detaylar yer almaktadır.
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
SurumKontrol Sub'ı ile Google E-Tablodaki $K$1 de bulunan değeri alıyoruz ve bu sayfadaki Veri!$K$1 hücresine yazdırıyoruz.
IlkIslem ve DigerIslem isimli iki tane örnek Sub'ımız var.
Yapılmaya çalışılan ise şu şekildedir.
Excel dosyası her açıldığında
SurumKontrol Sub'ı ile Google E-Tablodaki $K$1 de bulunan değeri Veri!$K$1 hücresindeki değer ile karşılaştırıp, bu değer
AYNI ise
IlkIslem Sub'ını
FARKLI ise
DigerIslem Sub'ını
çalıştırmak istiyorum.
Bu işlemi nasıl bir mantık örgüsü ile yapacağım konusunda önceden bir tecrüben yok
diğer bir problem Veri!$K$1 hücresinde veri varsa SurumKontrol Sub'ı $K$1 hücresinin sağına yazdırıyor.

Kafamdaki model şu şekilde
Google E-Tablodaki $K$1 de bulunan değeri alıp Veri!$K$1 hücresindeki değerle karşılaştırıp bu değerden küçük ya da eşit değilse FALSE eşitse TRUE ya da tam tersi bir değeri döndürüp bu değere göre IlkIslem ya da DigerIslem Sub'ını çalıştırırabilmek...

soru.webp
 
Ekli dosyalar
Moderatörün son düzenlenenleri:
@merakli

Yanlış düşünmüyorsam aşağıdaki şekilde işlem yaparsanız istenilen sonuç elde edilir.
-- BuÇalışmaKitabı bölümündeki kodda Run... satırının hemen üstüne versiyon = Sheets("Veri").[K1].Value şeklinde bir satır ekleyin.
-- Module1'de en tepeye (mevcut kodların içerisine değil) Public versiyon diye bir satır ekleyin.
-- SurumKontrol isimli makro kodunda, End With ...... End Sub arasını şöyle değiştirin.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(10 satır)
 
@merakli
Yanlış düşünmüyorsam aşağıdaki şekilde işlem yaparsanız istenilen sonuç elde edilir.
-- BuÇalışmaKitabı bölümündeki kodda Run... satırının hemen üstüne versiyon = Sheets("Veri").[K1].Value şeklinde bir satır ekleyin.
-- Module1'de en tepeye (mevcut kodların içerisine değil) Public versiyon diye bir satır ekleyin.
-- SurumKontrol isimli makro kodunda, End With ...... End Sub arasını şöyle değiştirin.


Teşekkür ederim @Ömer BARAN Bey,
Şöyle bir durum var zaten mantığını ilerletemediğim bölümde oydu.
Excel dosyasını açtık E-Tablodaki $K$1 de bulunan değeri aldı ve Veri!$K$1 deki değere baktı E-Tablodaki $K$1 de bulunan değer büyük ya da farklı ise gerekli Sub'ı çağırıp Veri!$K$1 deki değeri E-Tablodaki değerle eşitlemesi gerekiyor.
işte bu durumu tam olarak nerede nasıl yapabileceğimi kurgulayamadım

birde ilginçtir ki şuan eklediğim dosyada değer 111 e-tabloda 112 olmasına rağmen "Sürüm numaraları AYNI olduğu için bu işlem gerçekleştirildi" diyor.

Birde [L1].ClearContents yaptığımız için olsa gerek sürekli bir satır artıyor gibi o içeriği sarı renkli hücre sürekli sağa gidiyor :)
 
Ekli dosyalar
Onun farkında olduğum için L1 hücresini sildirmeyi düşünmüştüm.
Bu QUERY işlemini kendi dosyalarımda hiç kullanmış değilim (yani çok hakim olduğum konular değil).

Benim anladığım; mevcut kod, her tetiklendiğinde YENİ BİR BAĞLANTI kuruyor.
Zaten mevcut kodun en sonundaki silConnections satırı veri alma sonrasında, BAĞLANTILARI SİLİYOR.

Yani işlem BAĞLANTININ YENİLENMESİ DEĞİL, SIFIRDAN BAĞLANTI oluşturma diye anlıyorum.
Muhtemelen bir sağa kaymanın sebebi de bu olsa gerek.

Bence asıl konu e-tablodaki hücre değerinin OKUNMASI (alana yazılmadan) sonrasında versiyon karşılaştırması yapmak
ancak bu konuda pek tecrübe sahibi değilim.

Konu hakkında bilgi sahibi diğer arkadaşlarımız ilgilenirlerse sevinirim.
Umarım konuyu fark eden olur.
 
@merakli .
Art arda ikinci mesajım oluyor.

Malum, olaylara pratik yaklaşırım ve basit düşünürüm.
Bence çözüm; e-tablo bağlantısını, mevcut Veri sayfasına değil, kod tarafından belgeye eklenip,
veri alma sonrasında tekrar silinecek olan yeni bir sayfada yapmak, versiyon kontrolüne göre de
Veri sayfası K1 hücresini güncellemek veya aynı bırakmak.

Şayet versiyon numarası yeniyse, yeni veriler üzerindeki işlemlerin kod tarafından oluşturulan yeni sayfa üzerinden yapılması gerekir.
Mevcut İlkIslem makrosunun içerisine yazılacak asıl veri güncelleme işlemlerinde bu yeni sayfanın kullanılmasına dikkat edeceksiniz.
Bu Çalışma Kitabı bölümüne ve Modul1'in en üstüne eklemenizi önerdiğim önceki cevabımı yok saymak (değişiklikleri kaldırmak) lazım.

Buna göre mevcut kodun şöyle güncellenmesi yeterli olur gibi görünüyor (denemeniz lazım).

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(39 satır)
 
@merakli .
Art arda ikinci mesajım oluyor.

Malum, olaylara pratik yaklaşırım ve basit düşünürüm.
Bence çözüm; e-tablo bağlantısını, mevcut Veri sayfasına değil, kod tarafından belgeye eklenip,
veri alma sonrasında tekrar silinecek olan yeni bir sayfada yapmak, versiyon kontrolüne göre de
Veri sayfası K1 hücresini güncellemek veya aynı bırakmak.

Şayet versiyon numarası yeniyse, yeni veriler üzerindeki işlemlerin kod tarafından oluşturulan yeni sayfa üzerinden yapılması gerekir.
Mevcut İlkIslem makrosunun içerisine yazılacak asıl veri güncelleme işlemlerinde bu yeni sayfanın kullanılmasına dikkat edeceksiniz.
Bu Çalışma Kitabı bölümüne ve Modul1'in en üstüne eklemenizi önerdiğim önceki cevabımı yok saymak (değişiklikleri kaldırmak) lazım.

Buna göre mevcut kodun şöyle güncellenmesi yeterli olur gibi görünüyor (denemeniz lazım).

@Ömer BARAN Bey Teşekkür ederim bu mantıkla şuan bir problem görünmüyor gibi
 
Geri
Üst