file tidak jalan bila didalam folder

  1. 6 tahun lalu

    saya punya file yang input foto di folder,namun masalahnya file tersebut harus berada di drive D sedangkan apabila file tersebut berada dalam sebuah folder, VBA nya tidak bisa jalan.mohon bantuannya bagaimana agar file tersebut bisa jalan walaupun berada di folder manapun

  2. Caton

    9 Agu 2018 Terverifikasi Indonesia + 20.101 Poin

    Mas @Farud ...

    Saya tidak paham benar yang mas maksudkan. Apakah maksudnya, script VBA yang mas susun mengalami error atau tidak sesuai?! Kalau semisalnya terjadi kesalahan karena folder photo dan folder Workbook-nya berbeda, khan bisa disesuaikan discriptnya. Misalkan dengan:

    [1] Melakukan pemeriksaan terlebih dahulu apakah folder photo ada pada variabel nama foldernya.
    [2] Bila tidak ditemukan, bisa ditampilkan pesan kepada pengguna agar menentukan folder gambar yang sebenarnya.
    [3] Lakukan penyimpan pengaturan (Settings) nama folder pada Worksheet atau Named Range.

    Contoh scriptnya:

    Option Explicit
    
    Sub LoadPhoto()
        Dim sPhotoPath As String
        Dim bFolderEksis As Boolean
        
        '+-- Ambil pengaturan nama folder photo dari Named Range!
        sPhotoPath = Replace$(ThisWorkbook.Names("Photo.Path").RefersTo, Chr$(34), "")
        sPhotoPath = Replace$(sPhotoPath, Chr$(61), "")
        
        '+-- Periksa eksistansi folder!
        On Error Resume Next
        
        bFolderEksis = True
        bFolderEksis = bFolderEksis And (sPhotoPath <> "")
        bFolderEksis = bFolderEksis And (Dir(sPhotoPath, vbDirectory) <> "")
        
        Err.Clear
        On Error GoTo 0
        
        If Not bFolderEksis Then
            Dim xlDialog As FileDialog
            Dim sFolder As String
        
            '+-- Jika folder tidak ada, pinta pengguna
            '+-- untuk menentukan folder photo!
            Set xlDialog = Application.FileDialog(msoFileDialogFolderPicker)
            With xlDialog
                .Title = "Select a Folder"
                .AllowMultiSelect = False
                .InitialFileName = Application.DefaultFilePath
                If .Show <> 1 Then
                    sPhotoPath = .SelectedItems(1)
                    ThisWorkbook.Names("Photo.Path").RefersTo = sPhotoPath
                    bFolderEksis = True
                End If
            End With
        End If
    
        If bFolderEksis Then
            '+-- Lakukan proses selanjutnya!
        End If
    End Sub

    Dengan melampirkan file yang bermasalah tersebut, saya yakin akan lebih mudah dimengerti oleh rekan-rekan di forum ini tentang apa masalah yang mas @Farud maksudkan...

  3. tadi saya lampirkan filenya apa tidak masuk mas..folder sudah ada dan ketika file dibuka didalam folder apapun tidak bisa jalan tapi ketika file saya taruh diluar folder file ini bisa jalan untuk mengubah fotonya

  4. Caton

    10 Agu 2018 Terverifikasi Indonesia + 20.101 Poin
    Di sunting 6 tahun lalu oleh Caton

    Mas @farud ...

    ... ketika file dibuka didalam folder apapun tidak bisa jalan ...

    Kurang tepat jika dikatakan tidak jalan. Scriptnya running kok. Kecuali macronya disabled, baru scriptnya gak bisa running... :D Inti masalah mengapa photo hanya bisa ditampilkan jika berada pada lokasi yang sama dengan folder photo adalah script berikut:

    Path = ThisWorkbook.Path & "\POTO" & "\" & Range("PICT") & ".jpg"

    Asumsikan saja, folder photo ada pada lokasi D:\POTO dan file (Workbook) ada pada lokasi D:\EXCELKU, dan Range("PICT") berisi nilai ORG_CTV. Maka ketika script tersebut dieksekusi, nilai dari variabel Path akan berisi:

    Path = ThisWorkbook.Path & "\POTO" & "\" & Range("PICT") & ".jpg"
    Path = "D:\EXCELKU" & "\POTO" & "\" & Range("PICT") & ".jpg"
    Path = "D:\EXCELKU\POTO\" & "ORG_CTV" & ".jpg"
    Path = "D:\EXCELKU\POTO\ORG_CTV.jpg"

    Oleh karena variabel Path berisi nilai D:\EXCELKU\POTO\ORG_CTV.jpg, sedangkan (dengan asumsi di atas) photo aktualnya berada pada lokasi D:\POTO\ORG_CTV.jpg, maka hasilnya file photo tersebut gagal diloading, dan VBA menghasilkan Error...

    Demikian sedikit penjelasan agar mas @Farud dapat memahami masalahnya. Terlampir modifikasi script punya mas @Farud dengan mengadaptasi alur proses yang sudah saya sarankan di atas. Intinya, parameter atau pengaturan nama folder disimpan, bisa pada Worksheet khusus atau pada Named Range (atau kalau paham, bisa juga disimpan di Windows Registry).

    Semoga sesuai...

  5. Alhamdulillah sudah bisa mas caton...terimakasih banyak,semoga ilmunya berkah dan mas caton panjang umur agar bisa membagikan ilmunya pada kami.

  6. Caton

    10 Agu 2018 Terverifikasi Indonesia + 20.101 Poin

    Alhamdulillah. Allahumma Aamiin. Semoga kebaikan dan keberkahan juga kepada mas @Farud ...

 

atau Mendaftar untuk ikut berdiskusi!