"gAbbonizio" <gAbbo...@discussions.microsoft.com> wrote in message
news:181827F6-EE15-4790...@microsoft.com:
In Visual Basic Apri la Guida (F1) e digita:
errori intercettabili
Segui i collegamenti, quindi in corrispondenza dell'errore 70 troverai:
Autorizzazione negata (errore 70)
Si è cercato di scrivere su un disco protetto da scrittura o di
accedere ad un file bloccato. Cause e soluzioni dell'errore:
[ecc.]
Credo che per dire qualcosa di piu' bisognerebbe vedere il tuo codice.
(Facci sapere se e eventualmente come hai risolto. Grazie!)
--
Maurizio Borrelli [Microsoft MVP Office System]
http://www.riolab.org/
[...]
> > Excel2007 - VBA
> > Ho un programma simile all'esplora risorse che mi permette su un form di
> > selezionare i vari device e quindi le directory e sub con l'elenco dei file
> > per la loro selezione. Il programma l'ho sviluppato sotto Windows XP -
> > Excel2000.
> > Ora l'ho installato su un altro pc con Windows Vista Home Basic - Excel 2007
> > e mi da il seguente problema:
> > mi elenca le directory del disco che seleziono, mi apre la dir Utenti
> > se tento di aprire la subdir dell'utente mi da Errore di Runtime 70 -
> > Autorizzazione negata.
> > se apro la subdir Pubblica va bene, ma quando seleziono la successiva
> > subdir mi da anche lì lo stesso errore.
> > Problema di autorizzazioni?
> In Visual Basic Apri la Guida (F1) e digita:
> errori intercettabili
> Segui i collegamenti, quindi in corrispondenza dell'errore 70 troverai:
> Autorizzazione negata (errore 70)
> Si è cercato di scrivere su un disco protetto da scrittura o di
> accedere ad un file bloccato. Cause e soluzioni dell'errore:
> [ecc.]
> Credo che per dire qualcosa di piu' bisognerebbe vedere il tuo codice.
Ho dimenticato di scriverlo ma con "dire qualcosa di piu'" intendevo
riferirmi alla tua gestione degli errori.
"Maurizio Borrelli" ha scritto:
> Ho capito a che cosa è dovuto l'errore!
Nel mio programma, quando faccio il display della lista delle directory, per
alcune me ne riporta 2; una in inglese ed una in italiano. Ad esempio mi
visualizza Programmi, e sotto Program Files. Documenti e sotto Documents.
Selezionando Documenti mi da errore di runtime 70 mentre se seleziono
Documents la apre regolarmente. Ritengo che Documenti in realtà non sia una
directory ma solo un link alla Documents e usata per l'interfaccia utente.
Difatti se apro tramite Vista la dir Documents non viene visualizzata e c'è
solo la dir Documenti rappresentata come cartella di colore azzurro.
Anche la dir Program Files non viene visualizzata da Vista, ma solo la dir
Programmi, ma questa volta in giallo (?).
Non sono pratico di Vista, ho iniziato ad usarlo adesso. Sai come posso
identificare in VBA qual'è una dir vera e quale un semplice link a quella?
Per adesso ho risolto implementando on error con il 70.
Ciao e grazie.
>
>
>
>
=============
Nel mio programma, quando faccio il display della lista delle directory, per
alcune me ne riporta 2; una in inglese ed una in italiano. Ad esempio mi
visualizza Programmi, e sotto Program Files. Documenti e sotto Documents.
Selezionando Documenti mi da errore di runtime 70 mentre se seleziono
Documents la apre regolarmente. Ritengo che Documenti in realtà non sia una
directory ma solo un link alla Documents e usata per l'interfaccia utente.
Difatti se apro tramite Vista la dir Documents non viene visualizzata e c'è
solo la dir Documenti rappresentata come cartella di colore azzurro.
Anche la dir Program Files non viene visualizzata da Vista, ma solo la dir
Programmi, ma questa volta in giallo (?).
Non sono pratico di Vista, ho iniziato ad usarlo adesso. Sai come posso
identificare in VBA qual'è una dir vera e quale un semplice link a quella?
Per adesso ho risolto implementando on error con il 70.
=============
Non ho seguito il thread e, pertanto,
risponderei unicamente alla tua domanda:
=============
Non sono pratico di Vista, ho iniziato ad usarlo adesso. Sai come posso
identificare in VBA qual'è una dir vera e quale un semplice link a quella?
Per adesso ho risolto implementando on error con il 70.
=============
Potresti utilizzare la seguente funzione utente:
'==========>>
Public Function IsValidFolder(sPath As String)
Dim FSO As Object
Dim oFolder As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
On Error Resume Next
Set oFolder = FSO.GetFolder(sPath)
On Error GoTo 0
IsValidFolder = Not oFolder Is Nothing
End Function
'<<==========
La funzione potrebbe essere utilizzato cosi':
'==========>>
Public Sub TestIt()
Const sPath As String = "C:\Users\"
If IsValidFolder(sPath) Then
'tuo codice
Else
MsgBox Prompt:="il percorso non e' " _
& "stato risconosciuto", _
Buttons:=vbCritical, _
Title:="Problema!"
End Sub
'<<==========
La funzione dovrebbe essere incollata in
un modulo standard:
Alt-F11 per aprire l'Editor di VBA
Menu | Inserisci | Modulo
Incolla il suddetto codice
Alt-F11 per tornare in Excel
---
Regards.
Norman
[...]
> > > > Excel2007 - VBA
> > > > Ho un programma simile all'esplora risorse che mi permette su un form di
> > > > selezionare i vari device e quindi le directory e sub con l'elenco dei file
> > > > per la loro selezione. Il programma l'ho sviluppato sotto Windows XP -
> > > > Excel2000.
> > > > Ora l'ho installato su un altro pc con Windows Vista Home Basic - Excel 2007
> > > > e mi da il seguente problema:
> > > > mi elenca le directory del disco che seleziono, mi apre la dir Utenti
> > > > se tento di aprire la subdir dell'utente mi da Errore di Runtime 70 -
> > > > Autorizzazione negata.
> > > > se apro la subdir Pubblica va bene, ma quando seleziono la successiva
> > > > subdir mi da anche lì lo stesso errore.
> > > > Problema di autorizzazioni?
> > > In Visual Basic Apri la Guida (F1) e digita:
> > > errori intercettabili
> > > Segui i collegamenti, quindi in corrispondenza dell'errore 70 troverai:
> > > Autorizzazione negata (errore 70)
> > > Si è cercato di scrivere su un disco protetto da scrittura o di
> > > accedere ad un file bloccato. Cause e soluzioni dell'errore:
> > > [ecc.]
> > > Credo che per dire qualcosa di piu' bisognerebbe vedere il tuo codice.
> > Ho dimenticato di scriverlo ma con "dire qualcosa di piu'" intendevo
> > riferirmi alla tua gestione degli errori.
> Ho capito a che cosa è dovuto l'errore!
> Nel mio programma, quando faccio il display della lista delle directory, per
> alcune me ne riporta 2; una in inglese ed una in italiano. Ad esempio mi
> visualizza Programmi, e sotto Program Files. Documenti e sotto Documents.
> Selezionando Documenti mi da errore di runtime 70 mentre se seleziono
> Documents la apre regolarmente. Ritengo che Documenti in realtà non sia una
> directory ma solo un link alla Documents e usata per l'interfaccia utente.
> Difatti se apro tramite Vista la dir Documents non viene visualizzata e c'è
> solo la dir Documenti rappresentata come cartella di colore azzurro.
> Anche la dir Program Files non viene visualizzata da Vista, ma solo la dir
> Programmi, ma questa volta in giallo (?).
> Non sono pratico di Vista, ho iniziato ad usarlo adesso. Sai come posso
> identificare in VBA qual'è una dir vera e quale un semplice link a quella?
> Per adesso ho risolto implementando on error con il 70.
Ciao gAbbonizio.
E questo e' ok per quanto riguarda la gestione dell'errore. Ti resta da
chiarirci il modo che usi per ottenere "il display della lista delle
directory". Forse questo potrebbe essere migliorato.
"Maurizio Borrelli" ha scritto:
> Per trovare le Subdirectory uso:
Sub TrovaSubDirectory(Path, NrDir)
On Error Resume Next
Dim Oggetto, OggettoMetodo, FilDir, TrovaSubDir
Set Oggetto = CreateObject("Scripting.FileSystemObject")
Set OggettoMetodo = Oggetto.GetFolder(Path)
Set TrovaSubDir = OggettoMetodo.SubFolders
NrDir = OggettoMetodo.SubFolders.Count
ReDim ArraySort(NrDir)
NrDir = 0
For Each FilDir In TrovaSubDir
NrDir = NrDir + 1
ArraySort(NrDir) = FilDir.Name 'Array per ordine alfabetico delle
directory
Next
Set Oggetto = Nothing
Set OggettoMetodo = Nothing
Set TrovaSubDir = Nothing
If Err.Number = 70 . . . . . . . . . . . . .
Resume
End Sub
>
>
>
>
[...]
> > E questo e' ok per quanto riguarda la gestione dell'errore. Ti resta da
> > chiarirci il modo che usi per ottenere "il display della lista delle
> > directory". Forse questo potrebbe essere migliorato.
> > Per trovare le Subdirectory uso:
> Sub TrovaSubDirectory(Path, NrDir)
> On Error Resume Next
> Dim Oggetto, OggettoMetodo, FilDir, TrovaSubDir
> Set Oggetto = CreateObject("Scripting.FileSystemObject")
> Set OggettoMetodo = Oggetto.GetFolder(Path)
> Set TrovaSubDir = OggettoMetodo.SubFolders
> NrDir = OggettoMetodo.SubFolders.Count
> ReDim ArraySort(NrDir)
> NrDir = 0
> For Each FilDir In TrovaSubDir
> NrDir = NrDir + 1
> ArraySort(NrDir) = FilDir.Name 'Array per ordine alfabetico delle
> directory
> Next
> Set Oggetto = Nothing
> Set OggettoMetodo = Nothing
> Set TrovaSubDir = Nothing
> If Err.Number = 70 . . . . . . . . . . . . .
> Resume
> End Sub
Ciao gAbbonizio.
Scusa, ma perche' non usi:
Function GetOpenFilename([FileFilter] _
, [FilterIndex] _
, [Title] _
, [ButtonText] _
, [MultiSelect])
Membro di Excel.Application
-oppure-
Function BrowseForFolder(Hwnd As Long _
, Title As String _
, Options As Long _
, [RootFolder] _
) As Folder
Membro di Shell32.Shell
?
"Maurizio Borrelli" ha scritto:
> Dimmi pure stupido, ma credevo che questi fossero disponibili per il VB e non nell VBA. (e ci ho pure persa più di mezza giornata per crearmi una struttura analoga).
Ciao e grazie a te e Norman
>
>
>
>