Ouvrir un fichier avec macro

Nashou

XLDnaute Junior
Bonjour,

Voilà, j'ai par exemple un nom de fichier Excel dans une feuille excel
Ex : essai.xls

Je souhaiterai obtenir une macro qui lit le nom du fichier dans la feuille excel et qui l'ouvre en allant dans le répertoire où le fichier est stocké.

mc
 

bbmarcus

XLDnaute Occasionnel
Bonjour Nashou, le forum,

ca ressemble à un lien hypertexte ce que tu recherche....
Au cas ou, son utilisation:
Dans ta cellule, tu clique droit et tu fais lien hypertexte
Là, tu choisi le dossier à relier....et that's all!

En VBA, tu peux utiliser le code:
Workbooks('dossiernashou.XLS').Activate
sous un commandbutton par exemple...

@+

bbmarcus
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Nashou, bbMarcus, le Forum


En fait pour faire ce que tu souhaites, tu dois renseigner le Chemin Complet de ton Fichier 'essai.xls'

Par Exemple : (les anti slashs ne passent pas sur ce Forum, je les remplace par #)
C:#Documents and Settings#UserName#My Documents#essaixls

Donc c'est la base, que ce soit avec une instruction 'WorkBook.Open', ou encore le plus simple 'ThisWorkbook.FollowHyperlink'...

Pour avoir cette base, je te propose ce code :

Sub TheSearcher()
Dim ThisBookPath As String, TabFilePathName() As Variant
Dim FileSearcher As FileSearch
Dim ThePath As String
Dim i As Integer

Set FileSearcher = Application.FileSearch
ThisBookPath = ThisWorkbook.Path
ThePath = ThisBookPath

With FileSearcher
  .NewSearch
  .Filename = '*.xls*'
  .LookIn = ThePath
  .SearchSubFolders =
True
  .Execute msoSortByFileName, msoSortOrderAscending
   
If .Execute > 0 Then
       
With .FoundFiles
           
For i = 1 To .Count
           
ReDim Preserve TabFilePathName(2, 0 To .Count - 1)
                TabFilePathName(0, i - 1) = .Item(i)
                TabFilePathName(1, i - 1) = Dir(.Item(i))
           
Next i
       
End With
   
Else
        MsgBox 'Pas de Fichier trouvé dans ' & ThePath
       
Exit Sub
   
End If
End With
Set FileSearcher = Nothing

Range('A2').Resize(UBound(TabFilePathName, 2) + 1, UBound(TabFilePathName, 1)) = Application.Transpose(TabFilePathName)
End Sub


Si tu sauve un classeur contenant ce code dans le répertoire où sont situé tes Fichiers, tu auras la Liste sur deux Colonnes
1) Avec le Chemin Complet
2) Avec le Nom Seul

Ensuite, il te suffira de faire tourner un code tout simple comme ceci :
Sub TheOpener()
Dim Ligne As Integer

    Ligne = ActiveCell.Row
    ThisWorkbook.FollowHyperlink Cells(Ligne, 1).Text
End Sub

Bon Appétit
[ol]@+Thierry[/ol]
 

Nashou

XLDnaute Junior
Bonjour Thierry

Le 1er code que tu me proposes, je l'utilise déjà.
Je l'ai trouvé (grâce à un membre) sur ce forum.
Ca tourne sans probleme.
Maintenant, je vais utiliser le 2eme code que tu me proposes.

merci

PS : je posterai pour vous dire si ça fonctionne !
 

Nashou

XLDnaute Junior
Un petit probleme est apparue

J'ai mis le code opener et j'ai un pb au niveau de cette ligne :

ThisWorkbook.FollowHyperlink Cells(Ligne, 1).Text

Il me met que c'est un pb d'execution

Une idée ?

Message édité par: Nashou, à: 28/07/2005 13:44
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir Nashou

Ah tu utilises déjà ce code, pourtant dans l'état actuel je ne l'ai écrit il n'y a que quelques jours !! lol ;)

Au fait c'était ici Lien supprimé

Et pour ta question, dans ce fil, pour nettoyer tu nn'as qu'à faire 'Cells.Clear'

Pour ce qui est de ton problème today, c'est bien simple, il faut que le Chemin Complet se trouve bien dans la Colonne 1

Sub TheOpener()
Dim Ligne As Integer
Ligne = ActiveCell.Row
ThisWorkbook.FollowHyperlink Cells(Ligne, 1).Text
End Sub

En Conformité avec ce que 'TheSearcher' est sensé faire. Sinon il faut modifier en conséquence.

Bonne Soirée
@+Thierry
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Nashou, le Forum

Huum erreur d'exécution 5, je ne vois pas ce qui pourrait la causer.

Au pire moi en tapant n'importe quoi dans la colonne 1 et en lançant 'TheOpener' j'ai une erreur '-2147221014(800401ea)' (Cannot Open the Specified File)...

As-tu bien un chemin comme ceci dans la Colonne 1 :
C:\Documents and Settings\Thierry\My Documents\XLD-Rudiments-Facturation-GestionStock.xls

La Feuille qui contient les chemins est-elle bien la Feuille Active ? car dans l'état TheOpener travaille sur la Feuille Active

Sub TheOpener()
Dim Ligne As Integer

    Ligne = ActiveCell.Row
    ThisWorkbook.FollowHyperlink Cells(Ligne, 1).Text
End Sub


Sinon je ne vois pas...

Bon Appétit
[ol]@+Thierry[/ol]
 

Nashou

XLDnaute Junior
J'ai compris THIERRY !!!

En fait quand je récupérais mes fichiers, le chemin apparaissait bien mais il fallait se positionner sur la cellule pour ouvrir le fichier grace au chemin d'acces.
Moi je ne positionnais jamais sur le chemin ... d'où le probleme !!!
 

Discussions similaires