Telefondan Saat Çekme

ÆSir

Dora
Altın Üye
Katılım
15 Ocak 2018
Mesajlar
225
Excel Vers. ve Dili
2015 TR
Altın Üyelik Bitiş Tarihi
20-05-2025
Mesai maaş hesaplama için net maaşı yazacaksın tarihi telefonun sisteminden alacak hangi gün kaç saat çalışıldıysa yazılacak excel otomatik olarak hesaplayacak. Böyle bir şey nasıl yaparız?

Her gün bir hücreye telefondan tarihi otomatik çekecek. Günlük çalışma saatini manuel yazacağız. Farklı hücrede ise o ay toplam kaç saat fazla mesai varmış onu hesaplayacak. Nasıl çıkartırız bunu?
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,356
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Böyle birşey mümkünse bile, Excelin telefon ile konuşabilmesi için yazılım gerektirecektir. Sistem saatine güvensizlik varsa; internetten kolayca güncel saati almak varken neden telefon?
 

ÆSir

Dora
Altın Üye
Katılım
15 Ocak 2018
Mesajlar
225
Excel Vers. ve Dili
2015 TR
Altın Üyelik Bitiş Tarihi
20-05-2025
Peki internet saati ile bunu nasıl mümkün kılabiliriz?
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,356
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Bunun için çok alternatif var. Örneğin;

C#:
Sub Test()
    Dim req As Object, doc As Object
    
    Set req = CreateObject("MSXML2.XMLHTTP.6.0")
    
    req.Open "GET", "https://saatkac.info.tr/", False
    req.send
    
    Set doc = CreateObject("HTMLFile")
    
    doc.body.innerhtml = req.responseText
    
    MsgBox doc.getelementbyid("twd").innertext
End Sub
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Eğer Zeki Beyin önerisindeki "twd" id ile sonuç alamazsanız, "clock0" veya "favt5" id'lerini deneyebilirsiniz.

.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
@beab05 tarafından önerilen siteden "JSon" tipindeki verilerin içinden saat bilgisini almak için de, ya alınan "JSon" verilerini ayrıştıracak bir Class kullanmanız lazım, ya da eğer 32 bit Excel kullanıyorsanız, VBA içinde "JavaScript" kullanarak "UnixTime" verisini alıp, bunu "GMT" verisine dönüştürmeniz lazım.

Gördüğüm kadarıyla, 64 Bit Excel versiyonlarında "JavaScript" kullanmak genellikle problemli oluyor. O zaman, en iyisi ekli dosyada belirtildiği gibi "Regular Expressions" kullanarak, söz konusu UnixTime olarak alınan "DateTime" bilgisini, +3 saat saat farkını ilave ederek, anlık saat bilgisini alabiliriz. Bu teknikle, hem 32 Bit hem de 64 Bit Excel'de sorun çıkacağını sanmıyorum.

Bu işlerle ilgili kodlar, ekli dosyadadır...

.
 

Ekli dosyalar

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,419
Excel Vers. ve Dili
Office 2013
Selam;

"Unixtime" key value yerine direkt "dateTime" key value alınsa?? Çünkü zaten direkt +3 olarak veriyor ve convert etmeye de gerek kalmaz.

Ya da regexp yerine instr, mid vs.vs ile responseText içinden ilgili kısım alınsa? Regexpten daha ekonomik olabilir sanki???
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Merhaba @beab05 ;

Sonuçta JSon olarak dönen ResponseText'ten işe yarayan ilgili veriyi herhangibir yöntemle alarak, işledikten sonra "Time" verisini elde edebiliriz tabii. Dosyada, UnixTime verisinden GMT verisine dönüşümü göstermek için tercih ettim.

"Time" verisini elde etmek için RegEx yerine bahsettiğiniz türden string manipulasyonları da kullanılabilir ama, bu tür işlerde RegEx kullanmak bana daha kolay geliyor sadece, özel bir nedeni yok.

.
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,419
Excel Vers. ve Dili
Office 2013
Tabii ki Regexp de sizin tercihinizdir.. Elinize sağlık...
 
Üst