Visualizzazione dei risultati da 1 a 8 su 8

Discussione: maschere con vba

  1. #1

    maschere con vba

    ciao a tutti

    avrei bisogno di creare un tasto che mi apri la finestra di ricerca directory ovvero che visualmente mi chieda il percorso di una cartella(o comunque qualcosa di simile a quello che avviene quando faccio "salva con nome"da qualsiasi programma).
    Una volta trovata la directory, vorrei, quindi, mandare la path in una textBox della maschera in cui c'era il pulsante che ho cliccato.


    grazie!

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Quindi devi selezionare un percorso (non un file).
    Nell'evento Click del pulsante metti questo codice:

    codice:
    Dim sMyDir As String
    Const ssfPERSONAL = 5
    On Error Resume Next
    sMyDir = CreateObject("Shell.Application").BrowseForFolder(0, "Messaggio nella finestra", 0, ssfPERSONAL).Self.Path
    If sMyDir <> "" Then MsgBox "Hai selezionato la cartella: " & sMyDir

  3. #3
    Sei un grande!!!...è esattamente ciò che volevo grazie ciao

  4. #4
    magari sai anche come faccio tramite sempre un pulsante ad aprire il percorso memorizzato nella textBox precedentemente modificata???
    Cioè tramite il comando shell posso far partire Explorer.exe ma non riesco a passargli il percorso indirettamente cioè tramite variabile (appunto textBox).
    Riesco solo a fare un percorso tipo: shell("explorer.exe c:\nuova",..) "c:\nuova" dovrebbe essere in una variabile stringa

  5. #5

  6. #6
    No vabbè non mi sono spiegato bene, explorer.exe non è in vba quindi devi passare il percorso direttamente, non puoi mettere una variabile come parametro perchè il file explorer.exe non lo prevede, (infatti il comando vba shell() fa solo una chiamata ad un file nulla di più. Girando in rete, se a qualcuno serve, ho trovato questo codice e funziona:


    Sub EseguiComando(ByVal Comando As String)

    Dim WshShell As Object
    Set WshShell = CreateObject("WScript.Shell")
    WshShell.Run Comando
    Set WshShell = Nothing

    End Sub

    chiamata cosi: call eseguicomando me.path (dove me.path è il nome del
    controllo contenente il path)
    Se il percorso, poi , contiene spazi (maledetti spazi XD) bisogna modificare un attimino il codice inserendo i delimitatori chr(34) perchè con alcune versioni di access non funza. Se non avete cartelle che hanno spazi nel nome non c'è comunque problema e funziona sempre

    esempio
    WshShell.Run Chr(34) & "C:\Documents and
    Settings\Ospite\Documenti\nomeFile.txt" & Chr(34)

    ciaoooo, finalmente un forum tecnico con delle risposte sensate XD

  7. #7
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da kenny_it_it
    No vabbè non mi sono spiegato bene, explorer.exe non è in vba quindi devi passare il percorso direttamente, non puoi mettere una variabile come parametro perchè il file explorer.exe non lo prevede,
    Sei proprio sicuro?

    Io invece dico che accetta anche le variabili, dato che il primo parametro della funzione Shell (pathname) è una stringa, per cui puoi metterci tutto quello che vuoi, purchè abbia un senso.

    Il tuo errore semmai è usare le parentesi tonde senza includere la parola chiave Call , che infatti in questi casi diventa obbligatoria.
    Per cui o le usi insieme a Call, oppure non le usi:

    codice:
    Shell "explorer.exe " & Chr(34)  & Text1.Text & Chr(34), vbNormalFocus
    
    Call Shell("explorer.exe " & Chr(34)  & Text1.Text & Chr(34), vbNormalFocus)
    Riguardo ai delimitatori Chr(34) è necessario metterli sempre perchè se il Path indicato contiene degli spazi la funzione Shell interpreta le stringhe successive come parametri, cosa che ovviamente non è.



    EDIT:
    Mi sorge il dubbio se VBA abbia la parola chiave Call, verifica caso mai!

  8. #8
    buono a sapersi!!!! grazie ciao!!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.