Mettre la main à la Path

Mettre la main à la Path - VB/VBA/VBS - Programmation

Marsh Posté le 23-12-2005 à 22:21:15    

Bonjour,  :hello:  
 
Je voudrais utiliser la commande Path, pour trouver l' emplacement de fichiers. Voilà ce que j' ai fait :  
 
Workbook("XXX" ).Path
 
Est -ce que l' on pourrait me dire ce qui ne vas pas, ou me donner la commande approprié.
 
Merci  :)

Reply

Marsh Posté le 23-12-2005 à 22:21:15   

Reply

Marsh Posté le 24-12-2005 à 08:09:42    

Bonjour,
C'est une erreur de syntaxe :
Chemin =Workbooks("XXX" ).Path
 
@+

Reply

Marsh Posté le 26-12-2005 à 21:39:45    

Bonjour,  
 
Merci d' avoir répondu, mais le problème reste entier, sur la phrase ci -dessous :  
 
MsgBox Workbooks("XXX" ).Path
 
Le débogueur me signale que "L' indice n' appartient pas à la séléction".
 
Qu 'est ce qui ne vas pas ?
 
Merci

Reply

Marsh Posté le 26-12-2005 à 22:57:05    

Boujour
Je ne comprend pas car Workbooks("perso.xls" ).Path donne le chemin du classeur perso.xls. "XXX" existe-t-il ?
Est-ce le chemin par défaut des classeurs qui est recherché :
Chemin =Application.DefaultFilePath
J'espère avoir fait avancé le problème.

Reply

Marsh Posté le 29-12-2005 à 23:58:01    

Bonjour,  
 
Pour mon classeur, il existe bel et bien. Et que le chemin soit par défault ou pas, le programme trouve toujours une erreur à cet commande. Pourtant, il n' y a aucun problème pour trouver le chemin de l' object ActiveWorkbook (?)
 
Est -ce que vous auriez d' autre idée de se qui ne pourrait pas marcher ?
 
Merci

Reply

Marsh Posté le 30-12-2005 à 07:30:16    

Bonjour,
 
Si Workbooks("XXX" ).Path renvoit une erreur, c'est que le classeur n'est pas ouvert. Dans ce cas, il faut rechercher le fichier.
 
Soit, il est dans le répertoire courant et alors, le fichier peut être ouvert sans chemin de fichier :  

Code :
  1. Dim NomFichier As String
  2. NomFichier = "Classeur1.xls"
  3. Workbooks.Open FileName:=NomFichier
  4. Chemin = Workbooks(NomFichier).Path
  5. Workbooks(NomFichier).Close
  6. 'Cela revient à écrire'
  7. Chemin = CurDir
  8. If Dir(Chemin & "\" & NomFichier) <> "" Then MsgBox Chemin


Dans le cas contraire, il faut rechercher le fichier par FileSearch avec recherche dans les sous-répertoires ou Dir(). C'est une opération beaucoup plus longue:

Code :
  1. Sub Test()
  2. Dim NomFichier As String
  3. NomFichier = "Classeur1.xls"
  4. With Application.FileSearch
  5.     .NewSearch
  6.     .LookIn = "C:\Documents and Settings"
  7.     .SearchSubFolders = True
  8.     .FileName = NomFichier
  9.     .MatchTextExactly = True
  10.     '.FileType = msoFileTypeExcelWorkbooks'
  11.         If .Execute() > 0 Then
  12.         For i = 1 To .FoundFiles.Count
  13.             While InStr(pos + 1, .FoundFiles(i), "\" ) <> 0
  14.                 pos = InStr(pos + 1, .FoundFiles(i), "\" )
  15.             Wend
  16.                 Dossier = Left(.FoundFiles(i), pos)
  17.             MsgBox "NomFichier : " & .FoundFiles(i) & vbLf & "Dossier : " & Dossier
  18.         Next i
  19.     Else
  20.         MsgBox "Aucun fichier n'a été trouvé."
  21.     End If
  22. End With
  23. End Sub


Cordialement
 
Epéna

Reply

Marsh Posté le 30-12-2005 à 19:51:01    

Bonjour,  
 
Merci Epéna, il me manquait juste un petit rien.
 
PGrég
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed