Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207

    Selezionare percorso file Vba

    Ciao a tutti
    con questo codice riesco a selezionare il percorso di una cartella.

    codice:
    sMyDir = CreateObject("Shell.Application").BrowseForFolder(0, "Messaggio nella finestra", 0, ssfPERSONAL).Self.Path
    Come faccio a fare la stessa cosa per un file, cosi da avere poi in sMyDir il percorso del file ? tipo excel...
    Grazie

  2. #2
    Utente di HTML.it L'avatar di Mychy
    Registrato dal
    Oct 2000
    Messaggi
    794
    utilizza il controllo openFileDialog

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207
    Intendi nel mio codice ? o in generale?
    Riesci ad indicarmi un esempio valido ? la mia prima scelta era OpenFileDialog ma sinceramente ho faticato parecchio ad orientarmi e non ho trovato nulla di chiaro...
    Grazie mille

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Crea un modulo BAS, ed innserisci questo codice:

    codice:
    Option Explicit
    
    Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _
        "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
    
    Private Type OPENFILENAME
        lStructSize As Long
        hwndOwner As Long
        hInstance As Long
        lpstrFilter As String
        lpstrCustomFilter As String
        nMaxCustFilter As Long
        nFilterIndex As Long
        lpstrFile As String
        nMaxFile As Long
        lpstrFileTitle As String
        nMaxFileTitle As Long
        lpstrInitialDir As String
        lpstrTitle As String
        flags As Long
        nFileOffset As Integer
        nFileExtension As Integer
        lpstrDefExt As String
        lCustData As Long
        lpfnHook As Long
        lpTemplateName As String
    End Type
    
    Public Function GetFilename() As String
        Dim OpenFile As OPENFILENAME
        Dim lReturn As Long
        Dim sFilter As String
        OpenFile.lStructSize = Len(OpenFile)
        OpenFile.hwndOwner = Form1.hWnd
        OpenFile.hInstance = App.hInstance
        OpenFile.lpstrFilter = "File Excel" & vbNullChar & "*.XLS" & vbNullChar & vbNullChar
        OpenFile.nFilterIndex = 1
        OpenFile.lpstrFile = String(257, 0)
        OpenFile.nMaxFile = Len(OpenFile.lpstrFile) - 1
        OpenFile.lpstrFileTitle = OpenFile.lpstrFile
        OpenFile.nMaxFileTitle = OpenFile.nMaxFile
        OpenFile.lpstrTitle = "Select an image"
        OpenFile.flags = 0
        lReturn = GetOpenFileName(OpenFile)
        If lReturn <> 0 Then
            GetFilename = Trim$(OpenFile.lpstrFile)
        End If
    End Function
    poi per aprire un file:
    codice:
    sFileName = GetFilename()

  5. #5
    Utente di HTML.it L'avatar di Mychy
    Registrato dal
    Oct 2000
    Messaggi
    794
    scusa, avevo capito che dovevi creare un collegamento ad un file vba da un progetto VB.NET e non un sistema per recuperare un file da un progetto in VBA

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207
    Grazie mille gibra
    Buona giornata

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207
    Gibra sto provando ora il codice, non riesco a capire e far funzionare la parte relativa al form1

    Form1.Hwnd

    Non riesco a capire cosa deve restituire .. ? grazie mille ancora

  8. #8
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Non deve restituire nulla, solo che quel codice lo uso in VB6, in cui c'è il Form1.
    Se non usi un Form, in VBA metti

    codice:
    OpenFile.hwndOwner = 0
    fammi sapere.


  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207
    Cerco di disturbarti l'ultima volta, cosi non ti rompo più :P
    Ho provato, ed ora mi dice che la variabile App non è definita...
    Ascolta io ho intenzione di inserire il codice in un form già creato, che deve andare ad importare dei valori da un file... e questo codice mi serve solo per identificare il file...

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207
    Ho impostato anche quello a zero ed ora funziona... non so come ringraziarti gibra

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.