Salam kenal pak Tio...Ternyata ad org SSB di group ini hehe... saya iman di TMT 
1 lantai 9 hehe


Sent from Yahoo Mail for iPhone


On Sunday, March 17, 2019, 6:44 PM, Tio Adi Bayu Adjie tio.ad...@ptssb.co.id 
[belajar-excel] <belajar-excel@yahoogroups.com> wrote:

    


Terima kasih Mr. Kid atas jawabannya. Semoga amal baiknya diterima disisiNya. 
Amiin.
 
  
 
No. 2
 
Saya sudah buat function berikut untuk menentukan apakah file di server dibuka 
di network atau di computer sendiri.Tapi belum dicoba. Tolong tanggapannya.
 
  
 
Public Function FileTerbuka() As Boolean
 
Dim alamatfilemaster As String
 
alamatfilemaster = "\\AlamatServer\FolderServer\Subfolder\NamaFilenya.xlsx"
 
  
 
FileTerbuka = False
 
  
 
On Error GoTo not_open
 
  
 
Workbooks(alamatfilemaster).Activate
 
  
 
Exit Function
 
not_open:
 
    MsgBox "File master terbuka di computer anda" & vbNewLine & vbNewLine & _
 
    "Silahkan tutup file master dulu", vbInformation, "Info"
 
    FileTerbuka = True
 
    Err.Clear
 
    Resume Next
 
End Function
 
  
 
5. Berarti kesimpulannya, setiap variable local maka akan dihancurkan VBA 
setelah keluar procedure. Berarti juga kalau set range di local procedure yg 
diperlukan hanya di local procedure, maka tidak perlu set range=nothing. 
Begitukah ?
 
                Contoh :
 
                Private sub contohsaja()
 
                Dim myrange as range
 
  
 
                Set myrange=Cells(1,1)
 
                ‘’Code lain…..
 
               Set myrange=nothing ‘’’------à Karena myrange tidak diperlukan 
oleh procedure lain, ini tidak perlu. Benarkah ?
 
  
 
               End sub
 
  
 
Nomor lain sudah puas jawabannya. Terima kasih atas jawabannya.
 
  
 
Tambahan pertanyaan :
 
1.      Apakah public variable juga harus di clear kan memory nya ?
 
ContohPublic rangesaya as range
 
Maka karena public variable juga dibutuhkan oleh procedure lain, maka di clear 
kan setelah form ditutup yakni denganset rangesaya=nothing. Benarkah ?
 
  
 
Terima kasih . Mohon jawabannya.
 
Tio
 
From: belajar-excel@yahoogroups.com [mailto:belajar-excel@yahoogroups.com]
Sent: 17 Maret 2019 18:31
To: BeExcel
Subject: Re: [belajar-excel] Cek file open di server apakah dibuka dikomputer 
sendiri atau di komputer orang lain
 
  
 
  
 
No.. 2
 
Yup, pasti.
 
Hanya cara bukanya bermacam-macam tergantung media yang digunakan.
 
Kalau pakai workbooks.open berarti pakai cara excel melalui menu file open.
 
Kalau pakai select * from namaLinkedServer...[nama_sheet$] berarti pakai linked 
server memanfaatkan data provider tertentu via sql server
Kalau pakai objectConnection.open connectionstring berarti pakai ado object
 
Kalau pakai Open filefullname for blbla (open statement) berarti pakai io file
 
dan masih banyak lagi cara lain.
 
Semua itu diawali dengan membuka si file. Ada yang tampak tampil dimata user, 
ada yang tidak. Semua juga bisa dipakai untuk cek apakah file tersebut sedang 
digunakan secara ekslusif di tempat lain atau tidak. Kalau dari dalam Excel 
(misal melalui VBA), ingin tahu file sedang terbuka atau tidak, lalu kalau 
tidak terbuka maka dilakukan proses buka file, yang paling aman adalah pakai 
Workbooks.Open, karena lebih mudah diatur dan mudah diprediksi hasilnya, 
apalagi untuk yang awam dengan programming.
 
  
 
Tentang : "file yang dibuka ukurannya besar, jadi kalau buka file dulu, maka 
akan lama"
 
> tergantung apa tujuan pemeriksaan terbuka dan tidaknya file.
 
> kalau sekadar tahu saja dan tidak perlu melakukan sesuatu di dalam file 
> tersebut, bisa pakai cara lain, seperti open statement misalnya.
 
> tapi kalau tujuan akhirnya, yaitu ketika tahu bahwa file tidak dibuka di 
> tempat lain, lalu ingin membuka dan melakukan sesuatu terhadapnya, ya tetap 
> pakai workbooks.open yang aman. Karena pada kondisi ingin membuka dan 
> melakukan sesuatu terhadap file itu, tidak akan ada bedanya antara cepat atau 
> lambatnya membuka file, karena hasil akhirnya ingin membuka file dan 
> melakukan sesuatu.
 
  
 
No. 3
 
Sebelum diubah dengan memberi error handler :
 
> bisa jadi ada pengubah error handler di bunyi baris kode di bagian Code lain 
> milik Anda 
 
  
 
Setelah diubah :
 
> mestinya sudah tidak muncul error
 
  
 
No. 4
 
Yang mana saja sesuai kebutuhan proses yang Anda buat.
 
  
 
No. 5
 
Begitulah kira-kira.
 
Prinsipnya, variabel dengan scope local akan dihancurkan oleh VB/VBA begitu 
proses sudah sampai diluar scope.
 
Sedang untuk variabel dengan scope module atau yang lebih luas,
 
tergantung alur proses utuhnya membutuhkan hal tersebut atau tidak.
 
  
 
No. 6
 
Saya tidak tahu apa itu public events.
 
Biasanya events itu diusahakan dengan scope modular.
 
  
 
Regards,
 
Kid
Sent from my smart enough phone
 

On Mar 17, 2019, at 01:27, Tio Adi Bayu Adjie tio.ad...@ptssb.co.id 
[belajar-excel] <belajar-excel@yahoogroups.com> wrote:
 

  
 
Terima kasih banyak Mr. Kid atas jawabannya semoga amal baiknya diterima Allah 
SWT. Amiin.
 
Pertanyaan lanjutan :
 
1.     Mr. Kid menulis wbkF.Close False dimana wbkF adalah workbook yang isinya 
adalah nama file beserta path nya. Tapi yang saya baca di referensi lain adalah 
kalau menutup workbook, maka cukup dengan nama filenya saja tanpa path seperti 
workbooks(“namafilenya.xlsx”).close true. Mohon bimbingannya lagi, kapan saya 
harus menutup workbook dengan path dan kapan tanpa path ?
 
 
 
2.     Berarti kalau mau tahu apakah file itu terbuka di computer saya atau di 
computer orang lain, saya harus buka file  itu dulu ya ? Adakah code VBA yang 
bisa mengetahui itu tanpa harus buka file dulu ? Maaf karena file yang dibuka 
ukurannya besar, jadi kalau buka file dulu, maka akan lama .
 
 
 
 
 
3.     Kalau ada kasus dengan code VBA seperti ini..
 
Dim Alamatfile as string
 
Dim Mywb as workbook,Wbbaru as workbook
 
Dim wbbaruSh as worksheet,MywbSh as worksheet
 
 
 
On error goto Keluar
 
Alamatfile=”D:\\myfolder\mysubfolder\namafilesaya.xlsx”
 
‘’‘Buka file dari server
 
BukaFile Alamatfile,"PasswordSaya"
 
Set Mywb=ThisWorkbook
 
Set Wbbaru=workbooks(“namafilesaya.xlsx”)
 
Wbbaru.activate
 
Set WbbaruSh=Wbbaru.worksheets(“mySheet”)
 
With WbbaruSh
 
      .Cells(1,1).value=”XXX”
 
      ‘’‘Code lain…..….
 
End with 
 
Mywb.activate
 
Set MywbSh=Mywb.worksheets(“mySheetJuga”)
 
With MywbSh
 
      .Cells(1,1).value=”YYY”
 
      ‘’‘Code lain…
 
End with
 
Wbbaru.close true -------------à Saya selalu error disini. Adakah yang salah 
dari coding saya ?padahal saya sudah modif dengan
 
 
 
On error resume next   ‘modif saya
 
Wbbaru..Close true     ‘modif saya
 
Err.clear         ‘modif saya
 
On error goto 0     ‘modif saya
 
 
 
Set mywb=nothing
 
Set wbbaru=nothing
 
Set wbbaruSh=nothing
 
Set MywbSh=nothing
 
 
 
Keluar:
 
    Application.Calculation = xlCalculationAutomatic
 
    Application.ScreenUpdating = True
 
    Application.DisplayAlerts = True
 
    Err.Clear
 
    On Error GoTo 0
 
 
 
End sub
 
 
 
4.     Bagaimana urutan penulisan yang benar seperti contoh dibawah ini : Label 
dulu atau clear memory (set rg=nothing misalnya ) ?
 
Private sub contohsaja()
 
On error goto Keluar
 
            Set myrange=range(Cells(1,1),Cells(1,100))
 
 
 
 
 
Set myrange=nothing
 
Keluar:
 
    Application.Calculation = xlCalculationAutomatic
 
    Application.ScreenUpdating = True
 
End sub
 
 
 
Atau….
 
 
 
Private sub contohsaja()
 
On error goto Keluar
 
            Set myrange=range(Cells(1,1),Cells(1,100))
 
 
 
 
 
Keluar:
 
    Application.Calculation = xlCalculationAutomatic
 
    Application.ScreenUpdating = True
 
 
 
Set myrange=nothing
 
End sub
 
 
 
Mana urutan penulisan yang benar. Label dulu atau clear memory (dengan set 
myrange=nothing) ?
 
    
 
 
 
5.     Kalau mengurangi memory untuk range, dengan menulis diakhirnya set 
myRange=nothing. Bagaimana dengan worksheet apakah harus set mySheet=nothing ?
 
Bagaimana juga dengan ukuran variable seperti Dim L as long dan ditulis di 
akhirnya L=empty  atau variable byte, string apakah juga ditulis 
myString=vbnullstring ?
 
 
 
6.     Bagaimana clear memory untuk Public Events ? Tolong diberi contoh clear 
memory untuk Public Events..
 
 
 
Terima kasih atas bimbingannya, semoga amal baiknya diterima Allah SWT. Amiin
 
 
 
Tio
 
 
 
 
 
From:belajar-excel@yahoogroups.com [mailto:belajar-excel@yahoogroups.com]
Sent: 15 Maret 2019 9:03
To: BeExcel
Subject: Re: [belajar-excel] Cek file open di server apakah dibuka dikomputer 
sendiri atau di komputer orang lain
 
 
 
 
 
Public Sub BukaFile(Optional sFile As String, Optional sPwdOpen As String = 
vbNullString)
 
    Dim sMsgTxt As String, sMsgTitle As String, lMsg As Long, lTry As Long, 
wbkF As Workbook
 
    
 
    sMsgTxt = "Pembukaan ke-"
 
    sMsgTitle = "Buka File"
 
    lMsg = 20
 
    If Len(sFile) * Len(Dir(sFile, vbNormal)) = 0 Then
 
        MsgBox "File tidak ada atau tidak dapat di akses.", vbExclamation, 
sMsgTitle
 
        Exit Sub
 
    End If
 
    Application.Calculation = xlCalculationManual
 
    Application.ScreenUpdating = False
 
    Application.DisplayAlerts = False
 
    On Error GoTo Keluar
 
    
 
Ulangi:
 
    lTry = lTry + 1
 
    Set wbkF = Workbooks.Open(sFile, 0, True, Password:=sPwdOpen, 
IgnoreReadOnlyRecommended:=True, Notify:=False)
 
    wbkF.ChangeFileAccess xlReadWrite, Notify:=False
 
    If wbkF.ReadOnly Then
 
        wbkF.Close False
 
        If lTry Mod lMsg > 0 Then GoTo Ulangi
 
        If MsgBox(sMsgTxt & lTry, vbExclamation + vbRetryCancel + 
vbDefaultButton2, sMsgTitle & " : Read Only") = vbRetry Then GoTo Ulangi
 
    End If
 
    
 
Keluar:
 
    Application.Calculation = xlCalculationAutomatic
 
    Application.ScreenUpdating = True
 
    Application.DisplayAlerts = True
 
    Err.Clear
 
    On Error GoTo 0
 
End Sub
 
 
 
Cara pakai :
 
BukaFile "path\file.extension","Pwd"
 
 
 
On Thu, Mar 14, 2019 at 5:46 AM Tio Adi Bayu adjietio.ad...@ptssb.co.id 
[belajar-excel] <belajar-excel@yahoogroups.com> wrote:
 

  
 
Dear Be-Exceller,
 
Saya mau cek apakah file di server dibuka oleh orang lain atau dibuka 
dikomputer sendiri. File itu ada di server. Saya sudah bikin code nya tapi kok 
gak bisa ya ? Mohon bimbingannya.
 
 
 
Ini code saya :
 
 
 
Public function sFileAdaAccess(fname) as Boolean
 
   sFileAdaAccess = True
 
If IsFileOpen(fname) = True Then
 
Set wbbook = Workbooks(fname)
 
  
 
If Not wbbook.ReadOnly = True Then
 
                MsgBox "Silahkan  ditutup dulu File Master", vbExclamation, 
"File master terbuka"
 
sFileAdaAccess = false
 
                 Exit Function
 
Else
 
                 sFileAdaAccess = True
 
End If
 
  Set wbbook = Nothing
 
'End If
 
 
 
Public Function IsFileOpen(filename As String) As Boolean
 
Dim filenum As Integer
 
Dim errnum As Integer
 
 
 
On Error Resume Next   ' Turn error checking off..
 
 
 
'''''''''''''''''''''''''''''''''''''''''''
 
' If we were passed in an empty string,
 
' there is no file to test so return FALSE.
 
'''''''''''''''''''''''''''''''''''''''''''
 
If filename = vbNullString Then
 
    IsFileOpen = False
 
    Exit Function
 
End If
 
 
 
'''''''''''''''''''''''''''''''
 
' If the file doesn't exist,
 
' it isn't open so get out now.
 
'''''''''''''''''''''''''''''''
 
If Dir(filename) = vbNullString Then
 
    IsFileOpen = False
 
    Exit Function
 
End If
 
''''''''''''''''''''''''''
 
' Get a free file number.
 
''''''''''''''''''''''''''
 
filenum = FreeFile()
 
'''''''''''''''''''''''''''
 
' Attempt to open the file
 
' and lock it.
 
'''''''''''''''''''''''''''
 
Err.Clear
 
Open filename For Input Lock Read As #filenum
 
''''''''''''''''''''''''''''''''''''''
 
' Save the error number that occurred.
 
''''''''''''''''''''''''''''''''''''''
 
errnum = Err.Number
 
On Error GoTo 0        ' Turn error checking back on.
 
Close #filenum       ' Close the file.
 
''''''''''''''''''''''''''''''''''''
 
' Check to see which error occurred.
 
''''''''''''''''''''''''''''''''''''
 
Select Case errnum
 
    Case 0
 
    '''''''''''''''''''''''''''''''''''''''''''
 
    ' No error occurred.
 
    ' File is NOT already open by another user.
 
    '''''''''''''''''''''''''''''''''''''''''''
 
        IsFileOpen = False
 
 
 
    Case 70
 
    '''''''''''''''''''''''''''''''''''''''''''
 
    ' Error number for "Permission Denied."
 
    ' File is already opened by another user.
 
    '''''''''''''''''''''''''''''''''''''''''''
 
        IsFileOpen = True
 
    
 
    '''''''''''''''''''''''''''''''''''''''''''
 
    ' Another error occurred. Assume the file
 
    ' cannot be accessed.
 
    '''''''''''''''''''''''''''''''''''''''''''
 
    Case Else
 
        IsFileOpen = True
 
        
 
End Select
 
 
 
End Function
 
 
 
Kenapa tidak berhasil ? Mohon bimbingannya.
 
Terima kasih.
 
Tio
 



   #yiv7950884092 #yiv7950884092 -- #yiv7950884092ygrp-mkp {border:1px solid 
#d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv7950884092 
#yiv7950884092ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv7950884092 
#yiv7950884092ygrp-mkp #yiv7950884092hd 
{color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 
0;}#yiv7950884092 #yiv7950884092ygrp-mkp #yiv7950884092ads 
{margin-bottom:10px;}#yiv7950884092 #yiv7950884092ygrp-mkp .yiv7950884092ad 
{padding:0 0;}#yiv7950884092 #yiv7950884092ygrp-mkp .yiv7950884092ad p 
{margin:0;}#yiv7950884092 #yiv7950884092ygrp-mkp .yiv7950884092ad a 
{color:#0000ff;text-decoration:none;}#yiv7950884092 #yiv7950884092ygrp-sponsor 
#yiv7950884092ygrp-lc {font-family:Arial;}#yiv7950884092 
#yiv7950884092ygrp-sponsor #yiv7950884092ygrp-lc #yiv7950884092hd {margin:10px 
0px;font-weight:700;font-size:78%;line-height:122%;}#yiv7950884092 
#yiv7950884092ygrp-sponsor #yiv7950884092ygrp-lc .yiv7950884092ad 
{margin-bottom:10px;padding:0 0;}#yiv7950884092 #yiv7950884092actions 
{font-family:Verdana;font-size:11px;padding:10px 0;}#yiv7950884092 
#yiv7950884092activity 
{background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv7950884092
 #yiv7950884092activity span {font-weight:700;}#yiv7950884092 
#yiv7950884092activity span:first-child 
{text-transform:uppercase;}#yiv7950884092 #yiv7950884092activity span a 
{color:#5085b6;text-decoration:none;}#yiv7950884092 #yiv7950884092activity span 
span {color:#ff7900;}#yiv7950884092 #yiv7950884092activity span 
.yiv7950884092underline {text-decoration:underline;}#yiv7950884092 
.yiv7950884092attach 
{clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 
0;width:400px;}#yiv7950884092 .yiv7950884092attach div a 
{text-decoration:none;}#yiv7950884092 .yiv7950884092attach img 
{border:none;padding-right:5px;}#yiv7950884092 .yiv7950884092attach label 
{display:block;margin-bottom:5px;}#yiv7950884092 .yiv7950884092attach label a 
{text-decoration:none;}#yiv7950884092 blockquote {margin:0 0 0 
4px;}#yiv7950884092 .yiv7950884092bold 
{font-family:Arial;font-size:13px;font-weight:700;}#yiv7950884092 
.yiv7950884092bold a {text-decoration:none;}#yiv7950884092 dd.yiv7950884092last 
p a {font-family:Verdana;font-weight:700;}#yiv7950884092 dd.yiv7950884092last p 
span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv7950884092 
dd.yiv7950884092last p span.yiv7950884092yshortcuts 
{margin-right:0;}#yiv7950884092 div.yiv7950884092attach-table div div a 
{text-decoration:none;}#yiv7950884092 div.yiv7950884092attach-table 
{width:400px;}#yiv7950884092 div.yiv7950884092file-title a, #yiv7950884092 
div.yiv7950884092file-title a:active, #yiv7950884092 
div.yiv7950884092file-title a:hover, #yiv7950884092 div.yiv7950884092file-title 
a:visited {text-decoration:none;}#yiv7950884092 div.yiv7950884092photo-title a, 
#yiv7950884092 div.yiv7950884092photo-title a:active, #yiv7950884092 
div.yiv7950884092photo-title a:hover, #yiv7950884092 
div.yiv7950884092photo-title a:visited {text-decoration:none;}#yiv7950884092 
div#yiv7950884092ygrp-mlmsg #yiv7950884092ygrp-msg p a 
span.yiv7950884092yshortcuts 
{font-family:Verdana;font-size:10px;font-weight:normal;}#yiv7950884092 
.yiv7950884092green {color:#628c2a;}#yiv7950884092 .yiv7950884092MsoNormal 
{margin:0 0 0 0;}#yiv7950884092 o {font-size:0;}#yiv7950884092 
#yiv7950884092photos div {float:left;width:72px;}#yiv7950884092 
#yiv7950884092photos div div {border:1px solid 
#666666;min-height:62px;overflow:hidden;width:62px;}#yiv7950884092 
#yiv7950884092photos div label 
{color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv7950884092
 #yiv7950884092reco-category {font-size:77%;}#yiv7950884092 
#yiv7950884092reco-desc {font-size:77%;}#yiv7950884092 .yiv7950884092replbq 
{margin:4px;}#yiv7950884092 #yiv7950884092ygrp-actbar div a:first-child 
{margin-right:2px;padding-right:5px;}#yiv7950884092 #yiv7950884092ygrp-mlmsg 
{font-size:13px;font-family:Arial, helvetica, clean, sans-serif;}#yiv7950884092 
#yiv7950884092ygrp-mlmsg table {font-size:inherit;font:100%;}#yiv7950884092 
#yiv7950884092ygrp-mlmsg select, #yiv7950884092 input, #yiv7950884092 textarea 
{font:99% Arial, Helvetica, clean, sans-serif;}#yiv7950884092 
#yiv7950884092ygrp-mlmsg pre, #yiv7950884092 code {font:115% 
monospace;}#yiv7950884092 #yiv7950884092ygrp-mlmsg * 
{line-height:1.22em;}#yiv7950884092 #yiv7950884092ygrp-mlmsg #yiv7950884092logo 
{padding-bottom:10px;}#yiv7950884092 #yiv7950884092ygrp-msg p a 
{font-family:Verdana;}#yiv7950884092 #yiv7950884092ygrp-msg 
p#yiv7950884092attach-count span {color:#1E66AE;font-weight:700;}#yiv7950884092 
#yiv7950884092ygrp-reco #yiv7950884092reco-head 
{color:#ff7900;font-weight:700;}#yiv7950884092 #yiv7950884092ygrp-reco 
{margin-bottom:20px;padding:0px;}#yiv7950884092 #yiv7950884092ygrp-sponsor 
#yiv7950884092ov li a {font-size:130%;text-decoration:none;}#yiv7950884092 
#yiv7950884092ygrp-sponsor #yiv7950884092ov li 
{font-size:77%;list-style-type:square;padding:6px 0;}#yiv7950884092 
#yiv7950884092ygrp-sponsor #yiv7950884092ov ul {margin:0;padding:0 0 0 
8px;}#yiv7950884092 #yiv7950884092ygrp-text 
{font-family:Georgia;}#yiv7950884092 #yiv7950884092ygrp-text p {margin:0 0 1em 
0;}#yiv7950884092 #yiv7950884092ygrp-text tt {font-size:120%;}#yiv7950884092 
#yiv7950884092ygrp-vital ul li:last-child {border-right:none 
!important;}#yiv7950884092 


  • [belajar-excel] C... Tio Adi Bayu Adjie tio.ad...@ptssb.co.id [belajar-excel]
    • Re: [belajar... 'Mr. Kid' mr.nm...@gmail.com [belajar-excel]
      • RE: [bel... Tio Adi Bayu Adjie tio.ad...@ptssb.co.id [belajar-excel]
        • Re: ... 'Mr. Kid' mr.nm...@gmail.com [belajar-excel]
        • Re: ... 'Mr. Kid' mr.nm...@gmail.com [belajar-excel]
          • ... Tio Adi Bayu Adjie tio.ad...@ptssb.co.id [belajar-excel]
            • ... Iman Darusman idz.i...@yahoo.com [belajar-excel]
            • ... 'Mr. Kid' mr.nm...@gmail.com [belajar-excel]
            • ... Agus nanga...@gmail.com [belajar-excel]
              • ... 'Mr. Kid' mr.nm...@gmail.com [belajar-excel]

Kirim email ke