ouvrir un .doc d'excel avec un chemin composé de variables

ouvrir un .doc d'excel avec un chemin composé de variables - VB/VBA/VBS - Programmation

Marsh Posté le 07-04-2005 à 11:14:43    

Bonjour à tous,
 
Voici mon souci.
 
Sous windows 2000, j’ai un classeur excel qui reprend les références de documents word sous forme d’index.
 
Ce classeur contient environ 10 000 références (donc impossible de faire des liens).
 
Je voudrais, lorsque je me trouve sur une cellule reprenant le nom d’un document que celui-ci s’ouvre dans word par une macro VBA.
 
Là où ça se complique, c’est que la référence est constituée ainsi :
 
Les deux premiers chiffres représentent l’année d’établissement du document (exemple 05 pour 2005)
Les deux chiffres suivants représentent le mois (exemple 04 pour avril)
Les deux ou trois lettres suivantes représentent les initiales de la personne à l’origine du document (exemple XX)
Les deux derniers chiffres représentent le numéro de chrono du document (exemple 01)
Le nom du document est donc par exemple 0504XX01.doc
 
Pour faciliter le classement de ces documents, nous avons des répertoires constitués de la manière suivante :
 
w:\Groupe\Filiales\123\
 
puis un répertoire pour l’année de 2001 à 2005 (exemple 2005)
puis un répertoire pour le mois de janvier à décembre reprenant l’année (exemple 05.04 pour avril 2005)
 
Je souhaite donc que la macro permette d’aller ouvrir le fichier word en retrouvant le chemin par rapport à la cellule active d’excel.
 
D’autre part, les fichiers antérieurs à 2001 sont stockés sur un CDROM toujours en place dans mon lecteur. Je souhaiterai que pour les fichiers ayant une référence commençant par une année inférieure à 01, la macro aille chercher sur le CDROM.
 
Je me suis déjà attelée au premier problème (fichiers présents sur W:\) et voilà ma macro. Seulement, le programme ne reconnaît pas ma variable comme un chemin de fichier. Comment faire ?
 
Sub essaisof()
 
Dim annéedudoc As String
Dim moisdudoc As String
Dim refdudoc As String
Dim annéecompletedudoc As String
Dim annéemoisdudoc As String
Dim cheminouverture1  
Dim cheminouverture2
 
annéedudoc = Mid(ActiveCell.Value, 1, 2)
moisdudoc = "." & Mid(ActiveCell.Value, 3, 2)
refdudoc = ActiveCell.Value & ".doc"
annéecompletedudoc = "20" & annéedudoc
annéemoisdudoc = "\" & annéedudoc & moisdudoc
refdudoc = "\" & ActiveCell.Value & ".doc"
cheminouverture1 = "W:\Groupe\Filiales\123\"
cheminouverture2 = cheminouverture1 & annéecompletedudoc & annéemoisdudoc & refdudoc
 
MsgBox cheminouverture2
'Cette MsgBox me permet de constater que le chemin est correct.
 
On Error Resume Next
Set objWord = GetObject(, "Word.Application" )
If objWord Is Nothing Then
Set objWord = CreateObject("Word.Application" )
End If
On Error GoTo 0
objWord.Visible = True
 
objWord.Documents.Open Filename = cheminouverture2
'et c’est là que ça plante ! ! !
 
End Sub
 
J’ai essayé plusieurs autres choses (shell, déclarer une fonction Dir ect…) mais rien ne marche.
 
Merci de votre aide.
 
PS : je débute en VBA


Message édité par sof112 le 07-04-2005 à 13:38:21
Reply

Marsh Posté le 07-04-2005 à 11:14:43   

Reply

Marsh Posté le 07-04-2005 à 11:16:32    

Quel interêt de faire ça sous Excel :??: Ca ressemble grave à du Access, ça aurait été mieux de le faire sous Access, surtout que t'as un type de champs qui te permet de lier un fichier à un enregistrement

Reply

Marsh Posté le 07-04-2005 à 11:17:34    

Peut-être mais j'ai pas Access au boulot.

Reply

Marsh Posté le 07-04-2005 à 11:18:58    

T'as mis des espions sur tes variables, histoire de voir quelle gueule elles ont ? :)

Reply

Marsh Posté le 07-04-2005 à 11:22:01    

Comme je débute en VBA, je ne sais pas ce que c'est que des espions... ça sert à quoi ?

Reply

Marsh Posté le 07-04-2005 à 11:23:50    

Tu met des points d'arrêt sur les lignes interessantes, puis en mettant des espions, tu peux voir la valeur qu'ils ont. Consulte l'aide de VBA sur le debugging

Reply

Marsh Posté le 07-04-2005 à 11:32:25    

Okay je vais aller voir.
 
Et tu crois qu'il y a une solution pour mon problème ?

Reply

Marsh Posté le 07-04-2005 à 11:35:40    

Petit, il y a toujours une solution :D

Reply

Marsh Posté le 07-04-2005 à 13:24:40    

Génial.
 
Pour situer un peu le contexte de ma demande, voici quelques infos supplémentaires. Le fichier excel sur lequel je travaille, et qui est renseigné au jour le jour depuis 1998 (et que j'ai donc récupéré à ma prise de poste ici) est constamment ouvert sur mon PC. Des personnes me font des requêtes et à partir des éléments qu'ils me donnent, je fais une recherche par filtre sur ce fichier qui comporte un max d'infos pour retrouver le document qui les concerne. Après ça, je dois ouvrir le document word correspondant pour vérifier que c'est bien le dossier à sortir. Mais quelquefois, il faut faire plusieurs tentatives pour trouver le bon. Aussi ça me simplifierait la vie si à partir d'excel, je pouvais ouvrir directement mes fichiers .doc au lieu de devoir passer sur word, retrouver le chemin, ouvrir le fichier, le fermer, retourner sous excel ect....

Reply

Sujets relatifs:

Leave a Replay

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