• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Application.inputbox

Katılım
8 Eylül 2008
Mesajlar
950
Excel Vers. ve Dili
2016 İngilizce
Merhaba

elimde işlem yapılmadığı zaman otomatik kapanan makro kod düzeneği var.

bu kod düzeneğinin bir parçası olan excel dosyası açılırken çalışan kod düzeneği aşağıdaki gibi olup karşıma çıkan İnputbox a 00:00:10 gibi bir değer giriyorum ve 10 saniye exceli kullanmazsam kaydedip kapanıyor.

ben istiyorum ki bu inputbox a ben manuel veri girmek yerine bir hücremde hazır yazılı olan bir değeri yansıtmış olsa

Örneğin sheet1 de A1 hücresinde 00:00:15 verisi olsa dosyayı açtığımda inputbox ın içeriğine bu veri yansımış olsa olabilir mi böyle bir şey bir kaç şey denedim ama bir türlü bir hücredeki veriyi getirtemedim. bilgi ve yardımlarınızı rica ederim

Kod:
Private Sub Workbook_Open()

    Do

        Süre = Application.InputBox("Varsayılan zaman önerilmektedir " & Onerilen_Zaman & ". " & _
        "Girdi formatı '00:00:00'" & vbCrLf & vbCrLf & _
        "Kalan süre yukarıda gösterilecektir. " & vbCrLf, _
        "Saati ayarlayın", Type:=2)
    Loop Until (Süre = False) Or IsDate(Süre)
    Süre = IIf(IsDate(Süre), Süre, Onerilen_Zaman)
    TimeSlot True

End Sub
 
Aşağıdaki gibi dener misiniz?

PHP:
Private Sub Workbook_Open()

    Do

        Süre = Sheets("Sheet1").[A1].Value
    Loop Until (Süre = False) Or IsDate(Süre)
    Süre = IIf(IsDate(Süre), Süre, Onerilen_Zaman)
    TimeSlot True

End Sub
 
bu dediğinizi denemiştim fakat dosyayı açınca excel sanki bir döngüye giriyor. mouse kursörü dönüyor. excelde hiç bir işlem yapamıyorsunuz.
 
Süreli işlemlerde tecrübem yok maalesef, isterseniz excel dosyası paylaşın.
 
örnek dosya aşağıdaki linkte mevcut

thisworkbook vba düzeneğinde tüm kodlar var. dosyayı açtığınızda zaten karşınıza inputbox gelecek oraya format süre olarak 00:00:00 şeklinde veri girmeniz gerekiyor. örneğin 00:00:10 girip ok lersek 10 snye kullanmazsam excel sayfam kapanıyor.

işte ben burada şunu istiyorum her seferinde bu manuel girişi yapmak yerine bir hücrede bu süre değeri olsun ya o hücreden alsın o süreyi. ya da o hücredeki değeri inputbox a yansıtsın. sadece inputbox a ok demek kalsın bana.

https://dosya.co/vrgf779un2vz/ornek.rar.html
 
Aşağıdaki kodu kendinize göre revize ediniz.

CreateObject("WScript.Shell").Popup "İşlem Devam Ediyor" & vbLf & _
"Biraz Bekleyiniz", [A1]
MsgBox "Test"
 
Aşağıdaki kodu kendinize göre revize ediniz.

CreateObject("WScript.Shell").Popup "İşlem Devam Ediyor" & vbLf & _
"Biraz Bekleyiniz", [A1]
MsgBox "Test"

Merhaba Seyit Bey

Bu kod düzeneğini tam olarak nereye yerleştirmem gerekiyor ?

bendeki tüm kod düzeneği aşağıdaki gibi.

Kod:
Option Explicit

Private Const Gecikme As Date = 5 / 86400
Private Const Onerilen_Zaman As Date = 10 * 60 / 86400
Private Süre As Variant
Private Temps As Date
Private Zaman As Date

Private Sub TimeSlot(Optional Reset As Boolean)
    On Error Resume Next
    Application.OnTime Temps, Procedure:="ThisWorkbook.TimeSlot", Schedule:=False
    If IsMissing(Reset) Or (Reset = False) Then
        If (Zaman <= Gecikme) Then
            ThisWorkbook.Close True
        End If
        Zaman = Zaman - Gecikme
    Else
        Zaman = Süre
    End If
    Temps = Now + Gecikme
    Application.OnTime Temps, Procedure:="ThisWorkbook.TimeSlot"
    ActiveWindow.Caption = Split(ActiveWindow.Caption, " [")(0) & " [" & Zaman & "]"
End Sub

Private Sub Workbook_Open()

    Do
        Süre = Application.InputBox("Varsayılan zaman önerilmektedir " & Onerilen_Zaman & ". " & _
        "Girdi formatı '00:00:00'" & vbCrLf & vbCrLf & _
        "Kalan süre yukarıda gösterilecektir. " & vbCrLf, _
        "Saati ayarlayın", Type:=2)
    Loop Until (Süre = False) Or IsDate(Süre)
    Süre = IIf(IsDate(Süre), Süre, Onerilen_Zaman)
    TimeSlot True
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    TimeSlot True
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.OnTime Temps, Procedure:="ThisWorkbook.TimeSlot", Schedule:=False
End Sub
 
Önerdiğim kodu, sizin kod bloğunuza nasıl entegre edileceğini bilmiyorum, benim bildiğim : kodtaki MsgBox "Test" satırı yerine, yapmak istediğiniz kodları(eylemleri) yazıp deneyiniz.
 
Geri
Üst