Soru Vba internet bağlantısı

Cengizhantr06

Altın Üye
Katılım
16 Mayıs 2020
Mesajlar
319
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
18-05-2025
Merhaba iyi aksamlar herkese
Vba da açılış da internet bağlantısı yoksa dosya açılmasın
Böyle bir kod varmı acaba yardımcı olur musunuz?
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,397
Excel Vers. ve Dili
2007 Türkçe
Merhaba,
Boş bir modüle kopyaladıktan sonra kaydedip kapatınız.
Kod:
Private Declare Function InternetGetConnectedState Lib "wininet.dll" _
(ByRef dwflags As Long, ByVal dwReserved As Long) As Long

Public Function GetInternetConnectedState() As Boolean
  GetInternetConnectedState = InternetGetConnectedState(0&, 0&)
End Function

Sub Auto_Open()
If GetInternetConnectedState = False Then
    ThisWorkbook.Close 0
End If
End Sub
Kaynak:
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,397
Excel Vers. ve Dili
2007 Türkçe
64 bit hata olmaması için sanırım şöyle olacak:
Kod:
#If VBA7 Then
    Private Declare PtrSafe Function InternetGetConnectedState Lib "wininet.dll" _
    (ByRef dwflags As LongPtr, ByVal dwReserved As LongPtr) As LongPtr
#Else
    Private Declare Function InternetGetConnectedState Lib "wininet.dll" _
    (ByRef dwflags As Long, ByVal dwReserved As Long) As Long
#End If
 

Cengizhantr06

Altın Üye
Katılım
16 Mayıs 2020
Mesajlar
319
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
18-05-2025
Merhaba,
Boş bir modüle kopyaladıktan sonra kaydedip kapatınız.
Kod:
Private Declare Function InternetGetConnectedState Lib "wininet.dll" _
(ByRef dwflags As Long, ByVal dwReserved As Long) As Long

Public Function GetInternetConnectedState() As Boolean
  GetInternetConnectedState = InternetGetConnectedState(0&, 0&)
End Function

Sub Auto_Open()
If GetInternetConnectedState = False Then
    ThisWorkbook.Close 0
End If
End Sub
Kaynak:
Çok teşekkür ederim Ömer bey
 

Cengizhantr06

Altın Üye
Katılım
16 Mayıs 2020
Mesajlar
319
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
18-05-2025
64 bit için sanırım şöyle olacak:
Kod:
Private Declare PtrSafe Function InternetGetConnectedState Lib "wininet.dll" _
(ByRef dwflags As LongPtr, ByVal dwReserved As LongPtr) As LongPtr
Excel 32 bit ama Windows 64 bit hangisini kullanacağız Ömer bey ?
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,397
Excel Vers. ve Dili
2007 Türkçe
Önemli olan Excel versiyonu.
3 nolu mesajdaki kodu değiştirdim. Her ikisi için de kullanılabilir. (Tabi hata yapmadıysam. 64 bitte denemedim)
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,397
Excel Vers. ve Dili
2007 Türkçe
Rica ederim,
İyi dilekleriniz için de ben teşekkür ederim.
Hayırlı akşamlar, hayırlı çalışmalar...
 

Cengizhantr06

Altın Üye
Katılım
16 Mayıs 2020
Mesajlar
319
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
18-05-2025
@ÖmerBey şöyle bişey yapabilirmiyiz
Kod:
Sub demo()

Dim saat1 As Date

Dim saat2 As Date

saat1 = "15/10/2005"

saat2 = Date

If saat2 > saat1 Then

MsgBox ("Süreniz dolmuş üzgünüm.")

ActiveWorkbook.Close

End If

MsgBox ("Kullanım için " & saat1 - saat2 & " gününüz kalmıştır.") If sure1 = sure2 Then

MsgBox "Bu gün SON GÜN"

End If

End Sub
Bu kod tarihi sorgusunu internet tarihine göre baz alabilirmi mesala internet bağlantısı yoksa yine kapansın bilgisayar tarihi değilde internet tarihi baz alsın olurmu böyle bir kod
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,397
Excel Vers. ve Dili
2007 Türkçe
Bu kod tarihi sorgusunu internet tarihine göre baz alabilirmi mesala internet bağlantısı yoksa yine kapansın bilgisayar tarihi değilde internet tarihi baz alsın olurmu böyle bir kod
Olur ama ne kadar kullanışlı olur bilemem.
Örnek olarak aşağıdaki kodu paylaşıyorum, siz denersiniz.
Yeni bir dosya açıp ThisWorkbook kod kısmına kopyalayıp kaydedip kapatınız...
PHP:
Private Sub Workbook_Open()
    Dim trh1 As Date
    Dim trh2 As Date
  
    On Error GoTo hata:
    trh1 = DateValue("25/12/2024")
  
    Set xmlHTTPReq = CreateObject("MSXML2.XMLHTTP")
    Set htmlDoc = CreateObject("HTMLFILE")

    strURL = "https://www.timeanddate.com/"
    With xmlHTTPReq
            .Open "GET", strURL, False
            .Send
        If .Status = 200 Then
            htmlDoc.body.innerHTML = .responsetext
            trh2 = DateValue(htmlDoc.getelementbyId("ij2").innertext)
            If trh2 > trh1 Then
                MsgBox ("Süreniz dolmuş üzgünüm.")
                ThisWorkbook.Close 0
            ElseIf trh2 = trh1 Then
                MsgBox "Bu gün son gün"
            Else
                MsgBox ("Kullanım için " & trh1 - trh2 & " gününüz kalmıştır.")
            End If
        Else
            ThisWorkbook.Close 0
        End If
    End With
Exit Sub
hata:
ThisWorkbook.Close 0
End Sub
Not: Bu tür uygulamalar çok kararlı çalışmaz. Bu yüzden sadece örnek olması açısından paylaşıyorum, herhangi bir hata oluşması durumunda yardımcı olamam.
İyi çalışmalar...
 

Cengizhantr06

Altın Üye
Katılım
16 Mayıs 2020
Mesajlar
319
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
18-05-2025
Olur ama ne kadar kullanışlı olur bilemem.
Örnek olarak aşağıdaki kodu paylaşıyorum, siz denersiniz.
Yeni bir dosya açıp ThisWorkbook kod kısmına kopyalayıp kaydedip kapatınız...
PHP:
Private Sub Workbook_Open()
    Dim trh1 As Date
    Dim trh2 As Date
 
    On Error GoTo hata:
    trh1 = DateValue("25/12/2024")
 
    Set xmlHTTPReq = CreateObject("MSXML2.XMLHTTP")
    Set htmlDoc = CreateObject("HTMLFILE")

    strURL = "https://www.timeanddate.com/"
    With xmlHTTPReq
            .Open "GET", strURL, False
            .Send
        If .Status = 200 Then
            htmlDoc.body.innerHTML = .responsetext
            trh2 = DateValue(htmlDoc.getelementbyId("ij2").innertext)
            If trh2 > trh1 Then
                MsgBox ("Süreniz dolmuş üzgünüm.")
                ThisWorkbook.Close 0
            ElseIf trh2 = trh1 Then
                MsgBox "Bu gün son gün"
            Else
                MsgBox ("Kullanım için " & trh1 - trh2 & " gününüz kalmıştır.")
            End If
        Else
            ThisWorkbook.Close 0
        End If
    End With
Exit Sub
hata:
ThisWorkbook.Close 0
End Sub
Not: Bu tür uygulamalar çok kararlı çalışmaz. Bu yüzden sadece örnek olması açısından paylaşıyorum, herhangi bir hata oluşması durumunda yardımcı olamam.
İyi çalışmalar...
Olsun Ömer bir deneyelim 🙂 emeğinize sağlık çok çok teşekkür ederim
 

Cengizhantr06

Altın Üye
Katılım
16 Mayıs 2020
Mesajlar
319
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
18-05-2025
@ÖmerBey kod güzel çalıştı süper lakin sizden son ricam şu iki kodu ekleyebilirmiyiz uğraştım yapamadım
son gün olunca aşağıdaki gibi kutu acılıp şifre girince dosya çalışmaya devam etsin

sifre = InputBox("Giriş için Şifre Girmelisiniz.", _
"Yetkili Kişi", "Proğrama girmek İçin Şifre giriniz.")
If sifre = "123" Then
MsgBox "Şifre doğru"



ondan sonrada şu kodlar çalışma kitabı içindeki work open içindeki kodu siliyor ve dosya lisanslanmış gibi normal kullanıma devam edecek


On Error Resume Next
i = 0

For Each moduller In ActiveWorkbook.VBProject.VBComponents
i = i + 1

If ActiveWorkbook.VBProject.VBComponents(i).Name = "BuÇalışmaKitabı" Then
ThisWorkbook.VBProject.VBComponents("BuÇalışmaKitabı").CodeModule.DeleteLines 1, _
ThisWorkbook.VBProject.VBComponents("BuÇalışmaKitabı").CodeModule.CountOfLines
End If


Next moduller

 
Son düzenleme:
Üst